返回首页

显卡GPU负载高?

300 2024-01-01 14:10 admin   手机版

遇见这样的问题,首先要看瓶颈在哪里,看是CPU、GPU还是硬盘。

DataLoader 瓶颈(CPU和硬盘的瓶颈)

根据你的描述,8个线程去读,CPU占用率只有10%,除非你有40核80线程,不然CPU是没有到瓶颈的,因为在80线程的情况下,8个进程跑满才能到10%。这种情况下应该猜测是否是硬盘限制了图片读取速度。

检测方法:取所有 CPU 空跑 dataloader,测速,代码如下:

如果CPU能跑到100%,说明硬盘没毛病,CPU瓶颈,可以检查dataset里面是否有耗时长的预处理代码,当然也可以买更好的CPU来解决这个问题。如果CPU跑不到100%,那么就是硬盘瓶颈,你需要换一个更快的SSD。一般来说使用NVME的SSD就已经够用了。(除了 num_workers 以外,还可以试试 pin_memory)

GPU 瓶颈(GPU算力、带宽瓶颈)

如果这个速度远大于实际训练时的速度,那么瓶颈就在GPU上了。如果GPU利用率是100%,这说明可能是GPU算力的瓶颈,比如使用1060去跑VGG就可能卡算力。瓶颈如果在显卡算力上,除非买更好的GPU,不然法提高CPU利用率。

还有一种可能就是GPU利用率忽上忽下,一会100%,一会0%,这种情况一般是GPU带宽不够,比如主板PCIE插槽速度不是x16的,或者多卡训练的时候没有使用ring allreduce去同步梯度。我一般喜欢用horovod去做多卡训练。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片
上一篇:返回栏目