개발 창고/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 활용 상황을 실시간으로 파악하고 최적화하는 데 필수적인 도구입니다.
딥러닝, 렌더링, 고속 연산 작업을 하는 개발자라면 이 도구를 익혀두는 것이 리소스 관리와 문제 해결에 큰 도움이 됩니다.

반응형