GPU利用率低的可能原因:

CPU数据读取更不上:
CPU作为中央控制器,它有时钟概念,也有多线程,它的多任务同时运作机制 与 GPU
这样只负责计算的元件不同,CPU可能同时有其他任务,导致速度变慢
显存没有充分利用,
Batch_size不够大

提高 GPU 占用率的几个思路:

提高 Batch Size(直到显存爆掉);
提高单层计算量(如增大 channels、kernel_size,减小 stride、group);
使用 cuDNN;
算法运算优化:
优化网络图,优化单位batchsize的显存占用量,这样就可以装下更多的batchsize,来更充分的利用GPU core等
减少CPU其他任务的占用:减少其他读写任务等。
 

提高GPU利用率一定要小心日志还有训练模型保存的频次,太高会显著拉低GPU的利用率。

batch size太小,导致模型的并行化程度太低。还有cpu、内存/显存带宽性能不足等。