GPU很空闲总是提示GPU out of memeory

nvidia-smi 和watch -n 1 nvidia-smi命令显示GPU占用为0,没有进程使用

GPU0上有11G空闲,但是训练模型时报错:

提示:

CUDA out of memory. Tried to allocate 1.12 GiB (GPU 0; 11.17 GiB total capacity; 9.99 GiB already allocated; 877.75 MiB free; 1.25 MiB cached)

需要1.12G内存,但是不够。明明有11.17G啊!

再次命令查看GPU占用,确认没有进程在跑。那为什么分配了9.99G?纳闷!!!

网上找了各种解决GPU内存泄漏,减少变量存储的方法,依然不管用。

关键是这句话:

Tried to allocate 1.12 GiB (GPU 0; 11.17 GiB total capacity; 9.99 GiB already allocated; 877.75 MiB free; 1.25 MiB cached)

我理解错误了!我以为自己程序一共需要1.12G内存,9.99G是被别人占用了(然而并没有其他进程)。

原来是报错里面提到allocated 9.99G的内存其实就是已经分配给我的进程的内存,但是我还需要1.12G内存,剩下的内存不够,所以报错!!!!

最后把图片尺寸调小,batchsize调小,程序可以正常运行!特别是没调图像尺寸前,GPU内存占用真的太大!

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值