개발 창고/AI
NVIDIA-SMI 완전 정복: GPU 상태 확인 및 리소스 모니터링 가이드
로이제로
2025. 6. 14. 22:00
반응형
1. NVIDIA-SMI란?
nvidia-smi
는 NVIDIA에서 제공하는 GPU 관리 및 모니터링 CLI 도구입니다.
주로 다음 목적에 사용됩니다:
- GPU 사용률 확인
- VRAM(메모리) 사용량 확인
- 실행 중인 프로세스 확인
- GPU 드라이버 및 CUDA 버전 확인
- GPU 온도 및 전력 소비 확인
대부분의 딥러닝/AI 개발 환경에서 필수적으로 활용되는 명령어입니다.
2. 기본 명령어와 출력 해석
nvidia-smi
실행 시 다음과 같은 형식의 출력이 나타납니다:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 545.23.08 Driver Version: 545.23.08 CUDA Version: 12.3 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 RTX 3090 Off | 00000000:01:00.0 Off | N/A |
| 30% 48C P2 200W / 350W | 10240MiB / 24576MiB | 75% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
3. 출력 항목 설명
항목 | 설명 |
---|---|
Driver Version | 현재 설치된 NVIDIA 드라이버 버전 |
CUDA Version | 드라이버가 지원하는 CUDA의 최대 버전 |
GPU | GPU 번호 (0부터 시작) |
Name | GPU 모델명 (예: RTX 3090) |
Persistence-M | Persistence 모드 (On/Off) |
Bus-Id | GPU의 시스템 내 PCI 주소 |
Fan | 팬 속도 (비율) |
Temp | GPU 온도 (섭씨) |
Perf (P-State) | 성능 상태 (P0:최대 성능, P8:최저 전력 등) |
Pwr:Usage/Cap | 현재 소비 전력 / 최대 전력 허용치 |
Memory-Usage | 사용 중 VRAM / 총 VRAM 용량 |
GPU-Util | GPU 연산 사용률 (%) |
Compute M. | 연산 모드 상태 (Default, Exclusive 등) |
MIG M. | MIG(Multi-Instance GPU) 모드 상태 (서버용 A100에서 주로 사용됨) |
4. 실행 중 프로세스 보기
출력 하단에는 GPU를 사용하는 프로세스 정보가 표시됩니다:
+-----------------------------------------------------------------------------+
| Processes: |
| GPU PID Type Process name GPU Memory |
|=============================================================================|
| 0 12345 C python 10240MiB |
+-----------------------------------------------------------------------------+
항목 | 설명 |
---|---|
GPU | GPU 번호 |
PID | 프로세스 ID |
Type | C: Compute, G: Graphics |
Process name | 실행 중인 프로그램 이름 |
GPU Memory | 해당 프로세스가 점유한 VRAM 용량 |
5. 자주 사용하는 옵션
명령어 | 설명 |
---|---|
nvidia-smi -L |
설치된 GPU 목록 출력 (간단히) |
nvidia-smi -q |
상세 정보 전체 출력 (온도, 전압, 오류 등 포함) |
nvidia-smi -i 0 |
특정 GPU 정보만 조회 (예: 0번 GPU) |
nvidia-smi dmon |
실시간 GPU 상태 모니터링 |
nvidia-smi --query-gpu=... |
특정 항목만 추출 (스크립트 연동 시 유용) |
nvidia-smi --format=csv |
CSV 형식 출력 (데이터 파싱용) |
예:
nvidia-smi --query-gpu=memory.used,memory.total,utilization.gpu --format=csv
6. GPU 자원 점유 해제 방법
만약 특정 프로세스가 GPU 자원을 과도하게 사용하고 있다면, 해당 PID를 찾아 종료할 수 있습니다:
kill -9 <PID>
주의: 이 명령은 해당 프로세스를 강제 종료하며, 저장되지 않은 데이터는 손실될 수 있습니다.
7. 실무 활용 팁
- 모델 학습 시 메모리 모니터링: VRAM 부족이 잦다면
nvidia-smi -l 1
로 주기적 모니터링 가능 - 여러 프로세스가 공유하는 환경: GPU 사용률이 낮은 모델을 다른 사용자와 병렬 실행 가능
- 스크립트 자동화: GPU 상태를 자동 수집하여 모니터링 시스템 구축 시
--query-gpu
옵션 적극 활용
8. 결론
nvidia-smi
는 GPU 활용 상황을 실시간으로 파악하고 최적화하는 데 필수적인 도구입니다.
딥러닝, 렌더링, 고속 연산 작업을 하는 개발자라면 이 도구를 익혀두는 것이 리소스 관리와 문제 해결에 큰 도움이 됩니다.
반응형