1. 问题描述
Pytorch,GPU显存明明够用,为什么还报错呢?
首先,可能真的是显存不够用,可以减小batch_size解决
还有一种就是,减小batch_size 是没用的。
根本原因是代码指定的GPU与实际使用的GPU不一致。你以为代码在1上跑,实际上是在已经有代码运行的其他gpu跑,因此显示显存不足。
比如我遇到的报错:
报错信息已经提示了,30.47 GiB already allocated,说明是代码指定的GPU与实际使用的GPU不一致

2. 解决办法
让自己指定的gpu与实际使用的对应一致即可。

比如,现在0,2,3号GPU已经在使用,想利用1号GPU,执行以下代码即可。
在服务器端,执行python代码之前,运行:
export CUDA_VISIBLE_DEVICE
当PyTorch在GPU上运行时,即使显存充足也可能出现CUDA out of memory错误。这可能是由于代码指定的GPU与实际运行的GPU不匹配。解决方案是确保代码中指定的GPU与实际使用的一致,通过设置CUDA_VISIBLE_DEVICES环境变量来指定使用特定的GPU。
最低0.47元/天 解锁文章
5577

被折叠的 条评论
为什么被折叠?



