当有足够可用内存时 CUDA 内存不足

Jef*_*hen 14 python nvidia pytorch

我在使用 Pytorch 和 CUDA 时遇到问题。有时它工作正常,有时它告诉我RuntimeError: CUDA out of memory.但是,我很困惑,因为检查nvidia-smi显示我的卡的已用内存为563MiB / 6144 MiB,理论上应该留下超过 5GiB 的可用空间。\nnvidia-smi 的输出

\n

但是,在运行我的程序时,我收到以下消息:\nRuntimeError: CUDA out of memory. Tried to allocate 578.00 MiB (GPU 0; 5.81 GiB total capacity; 670.69 MiB already allocated; 624.31 MiB free; 898.00 MiB reserved in total by PyTorch)

\n

看起来 Pytorch 正在保留 1GiB,知道分配了 ~700MiB,并尝试将 ~600MiB 分配给程序\xe2\x80\x94,但声称 GPU 内存不足。怎么会这样?考虑到这些数字,应该还有足够的 GPU 内存。

\n

小智 2

在某种方法之后你需要清空火炬缓存(在错误之前)

torch.cuda.empty_cache()
Run Code Online (Sandbox Code Playgroud)