我想知道如何记录 GPU 负载。我使用带有 CUDA 的 Nvidia 显卡。
不重复:我想记录。
答案1
使用
nvidia-smi dmon -i 0 -s mu -d 5 -o TD
然后您可以轻松地将其转储到日志文件中。这是设备 0 的 GPU 使用情况,每隔 5 秒采样一次
#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
一切都在那里。您只是没有仔细阅读:) 使用以下 python 脚本,该脚本使用可选的延迟和重复,如 iostat 和 vmstat:
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 内存”'