(原创、不是重复文章)GPU Memory Usage占满而GPU-Util却为0的情况

一句话:在你的一个batch的数据都没加载进GPU内存前,你的GPU可能已经被占用了好几个G了,这几个G的数据就是你的model本身所需要的内存。

在你代码启动的那一刻,pytorch开始加载model,你的模型的复杂程度导致所需要的参数数量不一致,而这些参数所占用的内存不是用的系统内存,而是用你的GPU内存(即显存)。

先不讲其它文章提到的batch_size 、num_workers等等参数的调整。如果你的model够复杂,可能根本等不到加载到batch的那一刻内存就已经所剩无几了。所以为什么GPU Memory Usage都快满了,但是GPU-Util一点没反应,就是因为你可能一个batch的数据都没传进来,传进来的都是model本身需要的参数,GPU当然不用去计算喽。

参考文章:(20条消息) 深度学习中GPU和显存分析_LoveMIss-Y的博客-CSDN博客

额外补充:GPU Memory Usage占满而GPU-Util却为0的调试 - wowarsenal - 博客园

该博主说不能用numpy.float64类型的数据而要用numpy.float32的数据,要引起注意!

(该说不说,现在找篇文章真的难的想yue,都是一样的文章,我是来解决问题的,不是来看你们谁把封面做的更好看的,内容真的就一摸一样。就这么简单的一句话愣是查一两个小时甚至更久。)

 

你可能感兴趣的:(pytorch,深度学习)