RuntimeError: CUDA out of memory. Tried to allocate 600.00 MiB (GPU 0; 23.69 GiB total capacity)

RuntimeError: CUDA out of memory. Tried to allocate 600.00 MiB (GPU 0; 23.69 GiB total capacity; 21.82 GiB already allocated; 115.25 MiB free; 21.87 GiB reserved in total by PyTorch)

运行时错误:CUDA 内存不足。 尝试分配 600.00 MiB(GPU 0;23.69 GiB 总容量;21.82 GiB 已分配;115.25 MiB 空闲;PyTorch 总共保留 21.87 GiB)

原因

出现类似bug的原因是显存不足

解决方法1:释放显存

首先 fuser -v /dev/nvidia*sudo fuser -v /dev/nvidia*, 查看最近在GPU上运行的进程, 然后sudo kill相关进程号。

其中:

  • fuser:可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息
  • -v:详细模式
  • /dev/nvidia*:所有和英伟达相关的接口(如GPU)

解决方法2:调小batch size

如果释放了部分显存之后还是不够用的话,可以调小batch size


参考:
nvidia gpu kill进程后,显存仍未清

你可能感兴趣的:(debug,dl,pytorch)