티스토리 뷰

nvidia-smi dmon -s u — GPU 사용률을 실시간 모니터링하는 방법

개요

딥러닝 학습이나 GPU 연산 작업을 돌릴 때, GPU가 제대로 활용되고 있는지 확인하고 싶을 때가 있습니다. nvidia-smi는 한 번의 스냅샷만 보여주기 때문에 시간에 따른 변화를 추적하기 어렵습니다.

nvidia-smi dmon -s uGPU 사용률(Utilization)을 1초 간격으로 실시간 스트리밍해주는 명령어입니다. 별도 설치 없이 NVIDIA 드라이버만 있으면 바로 사용할 수 있습니다.


명령어 구조

nvidia-smi dmon -s u
구성 요소 설명
nvidia-smi NVIDIA System Management Interface
dmon Device Monitoring — 지정한 메트릭을 스크롤 형태로 반복 출력
-s u Select: Utilization — 사용률 관련 지표만 선택

출력 결과 해석

실행하면 아래와 같은 출력이 1초마다 갱신됩니다.

# gpu     sm    mem    enc    dec    jpg    ofa
# Idx      %      %      %      %      %      %
    0     45      4      0      0      0      0
    0     96     14      0      0      0      0
    0     85     13      0      0      0      0

각 컬럼의 의미는 다음과 같습니다.

컬럼 의미 설명
gpu GPU 인덱스 멀티 GPU 환경에서 어떤 GPU인지 구분 (0부터 시작)
sm SM (Streaming Multiprocessor) 사용률 GPU 연산 코어의 활용도. 이 값이 높을수록 GPU를 잘 쓰고 있다는 의미
mem 메모리 컨트롤러 사용률 GPU 메모리 읽기/쓰기 대역폭 활용도. VRAM 사용량(GB)이 아님에 주의
enc 인코더 사용률 NVENC (하드웨어 비디오 인코딩) 사용률
dec 디코더 사용률 NVDEC (하드웨어 비디오 디코딩) 사용률
jpg JPEG 엔진 사용률 하드웨어 JPEG 디코딩 엔진 사용률
ofa OFA 엔진 사용률 Optical Flow Accelerator 사용률

핵심 포인트: 딥러닝 학습 시에는 smmem 두 값만 주로 확인하면 됩니다. sm이 낮으면 데이터 로딩 병목, 배치 사이즈 부족 등을 의심해 볼 수 있습니다.


자주 쓰는 옵션 조합

1. 수집 횟수 지정 (-c)

nvidia-smi dmon -s u -c 10

10번만 측정하고 자동 종료합니다. 스크립트에서 사용할 때 유용합니다.

2. 수집 간격 변경 (-d)

nvidia-smi dmon -s u -d 5

5초 간격으로 수집합니다. 기본값은 1초입니다.

3. 날짜/시간 포함 (-o DT)

nvidia-smi dmon -s u -o DT

출력에 날짜와 시간이 추가됩니다.

#Date        Time         gpu     sm    mem    enc    dec    jpg    ofa
#YYYYMMDD    HH:MM:SS     Idx      %      %      %      %      %      %
 20260318    17:45:40       0     67      4      0      0      0      0
 20260318    17:45:42       0     93     15      0      0      0      0

로그를 남길 때 언제 발생한 값인지 추적할 수 있어 실용적입니다.

4. 전력 + 사용률 동시 확인 (-s pu)

nvidia-smi dmon -s pu
# gpu    pwr  gtemp  mtemp     sm    mem    enc    dec    jpg    ofa
# Idx      W      C      C      %      %      %      %      %      %
    0    111     79      -     80     14      0      0      0      0
    0    113     79      -     92     11      0      0      0      0

전력 소비(W)와 GPU 온도(°C)까지 함께 확인할 수 있어, 발열이나 전력 제한(Power Throttling) 여부를 파악하기 좋습니다.

5. 파일로 저장 (-f)

nvidia-smi dmon -s u -o DT -f gpu_log.txt

장시간 모니터링 결과를 파일로 저장합니다. 나중에 분석할 때 유용합니다.

6. CSV 포맷 출력 (--format csv)

nvidia-smi dmon -s u --format csv
#gpu, sm, mem, enc, dec, jpg, ofa
#Idx, %, %, %, %, %, %
 0, 66, 4, 0, 0, 0, 0
 0, 61, 5, 0, 0, 0, 0

pandas 등으로 후처리할 때 파싱이 간편합니다.


-s 옵션에서 선택 가능한 전체 메트릭

옵션 메트릭 포함 항목
p Power & Temperature 전력(W), GPU 온도, 메모리 온도
u Utilization SM, 메모리 컨트롤러, 인코더, 디코더, JPEG, OFA 사용률
c Clocks GPU 클럭, 메모리 클럭 (MHz)
v Violations 전력/온도 스로틀링 위반 횟수
m Memory Framebuffer, BAR1 메모리 사용량
e ECC Errors ECC 에러 수, PCIe 재전송 에러 수
t PCIe Throughput PCIe 송수신 처리량

조합 사용이 가능합니다. 예: -s puc → 전력 + 사용률 + 클럭 동시 모니터링.


실전 활용 팁

딥러닝 학습 중 GPU 병목 진단:

nvidia-smi dmon -s pu -d 2 -o T
  • sm이 지속적으로 30% 이하라면 → DataLoader 병목 의심 (num_workers 증가, pin_memory=True 시도)
  • sm들쭉날쭉(0% ↔ 90%)하다면 → 배치 간 CPU 전처리 병목 또는 I/O 대기
  • gtemp85°C 이상이면 → 쿨링 확인, 필요시 nvidia-smi -pl 으로 전력 제한 설정

학습 로그와 함께 기록:

nvidia-smi dmon -s puc -o DT --format csv -f gpu_monitor.csv &
python train.py
kill %1

백그라운드로 GPU 로그를 수집하면서 학습을 돌리고, 학습 종료 후 로그를 분석할 수 있습니다.


nvidia-smi vs nvidia-smi dmon 차이

nvidia-smi nvidia-smi dmon -s u
출력 방식 한 번 스냅샷 1초 간격 스트리밍
정보량 전체 정보 (프로세스 포함) 선택한 메트릭만 간결하게
용도 현재 상태 확인 시간 추이 모니터링
스크립트 연동 파싱 복잡 CSV 지원으로 파싱 간편

마무리

nvidia-smi dmon -s u는 GPU 활용도를 실시간으로 추적할 수 있는 가볍고 실용적인 명령어입니다. 딥러닝 학습, 영상 처리, 렌더링 등 GPU 작업의 효율을 확인하고 병목을 진단하는 데 바로 활용할 수 있습니다.

특히 -s pu 조합과 -o DT -f 옵션을 함께 사용하면, 장시간 작업의 GPU 사용 패턴을 파일로 기록하고 사후 분석할 수 있어 매우 유용합니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/03   »
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 31
글 보관함