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