CUDA 内存不足运行时错误,无论如何要删除 pytorch "reserved memory"



像许多其他人一样,我收到了一个Cuda的运行时错误,内存不足,但由于某种原因,pytorch保留了大量。

运行时错误:CUDA内存不足。尝试分配2.00 MiB(GPU 0;6.00 GiB总容量;已分配4.31 GiB;844.80 KiB可用;PyTorch总共保留4.71 GiB(

我试过torch.cuda.empy_cached((,但这也不起作用,其他cuda内存不足的帖子也没有帮助我。

当我在运行python程序之前检查了我的gpu使用情况(nvidia-smi(时,它是免费的。

从给定的描述来看,问题似乎不是Pytorch在执行前分配的内存,而是cuda在分配数据时耗尽了内存,这意味着4.31GB已经分配(未缓存(,但未能分配2MB的最后一个块。可能的解决方案对我来说已经奏效了,就是减少批量,希望能有所帮助!

您应该通过键入来查找进程

!ps -aux|grep python

然后当你发现这个过程时,你应该通过键入来杀死它

!kill -9 652

这将终止进程编号652。在你的情况下,这将是你想要摆脱的其他东西。

注意:记住,如果您杀死了一些不应该结束的进程,那么您必须重新开始您的代码。但这是最简单和手动的方法

另一个注意事项:或者,如果在成功清空gpu缓存后再次出现问题,您可以始终减小批处理大小。

相关内容

  • 没有找到相关文章