GPU利用率
广义的GPU利用是指对GPU利用率效率,包括GPU空间和时间上的利用效率。 狭义的GPU利用率是指GPU时间片上的利用率;
GPU可用的物理资源有哪些?
GPU可利用资源:SM (计算单元)MEM(存储) Encoder(编码) Decoder (解码)
CPU利用率计算方法
GPU利用不高的原因?
GPU资源利用不高的原因大致如下:
- CPU计算阻塞了GPU的计算
- 应用程序大多数解决业务问题,但是忽略了对GPU利用方面的问题。程序需要优化,比如使用多stream,大多数业务只用了default stream。
- 对nvidia产品了解不深入,比如DALI。一些GPU资源Encoder和Decoder 没用起来。
1、在需要监控GPU利用率机器上执行命令:
nvidia-smi --format=csv,noheader,nounits --query-gpu=timestamp,index,memory.total,memory.used,memory.free,utilization.gpu,utilization.memory -lms 500 -f smi-1-90s-instance.log
该命令生成GPU利用率文件smi-1-90s-instance.log
待压测结束后,在服务器结束该命令。
2、计算gpu利用率
cat smi-1-90s-instance.log | awk '{sum7+=$7;count++}END{print sum7/count}'
计算文件中GPU利用率一列平均值,即为压测时间段内的GPU利用率
单个GPU,比如计算GPU0的利用率
awk -F"," '{ if($2==0){print $0} } ' smi-1-90s-instance.log >> test.log
先导出GPU0的全部数据
再cat smi-1-90s-instance.log | awk '{sum7+=$7;count++}END{print sum7/count}'