GPU 로드를 기록하는 방법은 무엇입니까? [복사]

GPU 로드를 기록하는 방법은 무엇입니까? [복사]

GPU 부하를 기록하는 방법을 알고 싶습니다. CUDA와 함께 Nvidia 그래픽 카드를 사용합니다.

반복하지 마세요. 녹음하고 싶습니다.

답변1

사용

nvidia-smi dmon -i 0 -s mu -d 5 -o TD

그런 다음 이를 로그 파일에 쉽게 덤프할 수 있습니다. 5초마다 샘플링된 장치 0의 GPU 사용량입니다.

 #Date       Time        gpu    fb  bar1    sm   mem   enc   dec   pwr  temp
#YYYYMMDD   HH:MM:SS    Idx    MB    MB     %     %     %     %     W     C
 20170212   14:23:15      0   144     4     0     0     0     0    62    36
 20170212   14:23:20      0   144     4     0     0     0     0    62    36
 20170212   14:23:25      0   144     4     0     0     0     0    62    36

플래그에 대한 자세한 내용은 매뉴얼 페이지를 참조하십시오.

멀티 GPU 환경인 경우 -i 0위 명령어로 삭제하면 모든 GPU를 로그할 수 있습니다.

답변2

다음을 사용할 수 있습니다(테스트됨 nvidia-smi 352.63).

while true; 
do nvidia-smi --query-gpu=utilization.gpu --format=csv >> gpu_utillization.log; sleep 1; 
done. 

출력은 다음과 같습니다(3개의 GPU가 머신에 연결된 경우).

utilization.gpu [%]
96 %
97 %
92 %
utilization.gpu [%]
97 %
98 %
93 %
utilization.gpu [%]
87 %
96 %
89 %
utilization.gpu [%]
93 %
91 %
93 %
utilization.gpu [%]
95 %
95 %
93 %

이론적으로, 간단히 사용할 수 있지만 nvidia-smi --query-gpu=utilization.gpu --format=csv --loop=1 --filename=gpu_utillization.csv나에게는 작동하지 않는 것 같습니다. (지정된 파일에 대한 플래그 -f또는 --filename로그 출력)

추가 정보를 기록하려면:

while true; 
do nvidia-smi --query-gpu=utilization.gpu,utilization.memory,memory.total,memory.free,memory.used --format=csv >> gpu_utillization.log; sleep 1; 
done

산출:

utilization.gpu [%], utilization.memory [%], memory.total [MiB], memory.free [MiB], memory.used [MiB]
98 %, 15 %, 12287 MiB, 10840 MiB, 1447 MiB
98 %, 16 %, 12287 MiB, 10872 MiB, 1415 MiB
92 %, 5 %, 12287 MiB, 11919 MiB, 368 MiB
utilization.gpu [%], utilization.memory [%], memory.total [MiB], memory.free [MiB], memory.used [MiB]
90 %, 2 %, 12287 MiB, 11502 MiB, 785 MiB
92 %, 4 %, 12287 MiB, 11180 MiB, 1107 MiB
92 %, 6 %, 12287 MiB, 11919 MiB, 368 MiB
utilization.gpu [%], utilization.memory [%], memory.total [MiB], memory.free [MiB], memory.used [MiB]
97 %, 15 %, 12287 MiB, 11705 MiB, 582 MiB
94 %, 7 %, 12287 MiB, 11540 MiB, 747 MiB
93 %, 5 %, 12287 MiB, 11920 MiB, 367 MiB

답변3

모든 것이 거기에 있습니다. 주의 깊게 읽지 않으셨습니다 :) iostat 및 vmstat와 같은 선택적 지연 및 반복을 사용하는 다음 Python 스크립트를 사용하십시오.

https://gist.github.com/matpalm/9c0c7c6a6f3681a0d39d

NVIDIA 설정을 사용할 수도 있습니다.

nvidia-settings -q GPUUtilization -q 전용 GPU 메모리 사용

...그런 다음 간단한 bash 루프를 사용하거나 cron 작업을 설정하거나 watch를 사용하여 종료합니다.

watch -n0.1 "nvidia-settings -q GPUUtilization -q 전용 GPU 메모리 사용"'

관련 정보