일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- c언어
- #프로젝트
- tokenizing
- python __init__
- #English
- opencv SURF
- 이미지 생성
- #opencv
- #Android
- text2img
- #실생활 영어
- findContours
- #실생활영어
- python list
- keras
- Convolution Neural Network
- 완전탐색
- #영어
- TensorFlow
- tensorflow update
- object detection
- #1일1영어
- 영어
- #영어 명언
- word embedding
- convexhull
- #일상영어
- python 알고리즘
- 딥러닝
- 영어명언
Archives
- Today
- Total
When will you grow up?
[Ubuntu] GPU 사용량 확인하는 다양한 방법 본문
딥러닝 등 다양하게 Nvidia GPU를 사용하다보면, GPU를 모니터링을 해야할 경우가 많은데, 여기서 다양한 방법을 소개합니다.
1. Python을 사용한 pynvml 라이브러리
pynvml은 NVIDIA Management Library (NVML) 인터페이스를 Python에서 사용할 수 있도록 하는 라이브러리입니다. 이를 통해 GPU 사용량을 코드로 확인할 수 있습니다.
# 설치
pip install nvidia-ml-py3
1.1 사용 예시
import pynvml
# NVML 초기화
pynvml.nvmlInit()
# GPU 장치 개수 확인
device_count = pynvml.nvmlDeviceGetCount()
for i in range(device_count):
handle = pynvml.nvmlDeviceGetHandleByIndex(i)
name = pynvml.nvmlDeviceGetName(handle)
memory_info = pynvml.nvmlDeviceGetMemoryInfo(handle)
utilization = pynvml.nvmlDeviceGetUtilizationRates(handle)
print(f"GPU {i}: {name.decode('utf-8')}")
print(f"Memory Total: {memory_info.total / 1024**2:.2f} MB")
print(f"Memory Used: {memory_info.used / 1024**2:.2f} MB")
print(f"Memory Free: {memory_info.free / 1024**2:.2f} MB")
print(f"GPU Utilization: {utilization.gpu}%")
print(f"Memory Utilization: {utilization.memory}%")
print()
# NVML 종료
pynvml.nvmlShutdown()
2. gpustat CLI 툴
gpustat은 nvidia-smi 명령을 보다 보기 좋게 표시하는 도구입니다.
# 설치
pip install gpustat
2.2 사용 예시
gpustat -cp
위 결과 ref : https://github.com/wookayin/gpustat
3. DCGM (Data Center GPU Manager)
DCGM은 NVIDIA에서 제공하는 GPU 모니터링 툴로, 특히 데이터 센터 환경에서 GPU를 관리하는 데 유용합니다.
설치 :
# 설치
sudo apt-get update \
&& sudo apt-get install -y datacenter-gpu-manager
4. TensorFlow 및 PyTorch를 통한 GPU 사용량 모니터링
TensorFlow 예시:
import tensorflow as tf
gpus = tf.config.experimental.list_physical_devices('GPU')
for gpu in gpus:
print(f"GPU: {gpu}")
details = tf.config.experimental.get_memory_info(gpu)
print(f"Memory Free: {details['current']} bytes")
print(f"Memory Allocated: {details['peak']} bytes")
PyTorch 예시:
import torch
if torch.cuda.is_available():
print(f"Current GPU Memory Usage: {torch.cuda.memory_allocated()} bytes")
print(f"Max GPU Memory Usage: {torch.cuda.max_memory_allocated()} bytes")
print(f"Memory Reserved: {torch.cuda.memory_reserved()} bytes")
5. nvtop (NVIDIA GPU Top)
nvtop은 GPU 사용량을 실시간으로 모니터링할 수 있는 유틸리티입니다. CPU의 htop과 비슷하게 동작합니다.
설치:
# 설치
sudo apt install nvtop
사용:
nvtop
결론:
이 중에서 pynvml은 Python 코드로 GPU 상태를 직접 확인하고 싶을 때 유용하며, CLI 환경에서는 gpustat이나 nvtop을 추천드립니다.
'05. Tip > Etc' 카테고리의 다른 글
졸업생 감동시킨 필즈상 허준이 교수님의 서울대 졸업식 축사 (0) | 2022.09.01 |
---|---|
[마감]티스토리 블로그 초대권 6장을 배포합니다 (19) | 2017.06.16 |
Comments