服务器跑pytorch代码,GPU显存正常但是利用率为0?

在这里插入图片描述


根本问题:num_workers=32,可能是过高
解决方法:将num_workers调整至8,一切恢复正常


导致 GPU 利用率为 0 的情况可能有几个原因:

CPU 瓶颈:设置过高的 num_workers 可能导致 CPU 资源过度竞争,尤其是在数据加载和预处理过程中。这可能会使 CPU 无法及时处理数据并将其发送到 GPU,从而造成 GPU 空闲等待数据,导致 GPU 利用率为 0。

IO 瓶颈:过多的 num_workers 也可能导致 IO 资源的竞争,尤其是在从磁盘读取数据时。如果系统 IO 能力有限,设置过多的 num_workers 可能会导致数据读取速度受限,进而影响到 GPU 的数据获取速度。

系统资源竞争:除了 CPU 和 IO,过高的 num_workers 还可能导致系统内存和其他资源的竞争,从而影响整体系统的稳定性和性能


更新

只改变num_workers问题没有解决,还需要将pin_memory设置为False