Webui 显卡有显存,会报错:CUDA out of memory
Webui 显卡明明有显存,会报错:CUDA out of memory
网上找了很多资料,都没有能解决这个问题 ,后来发现和电脑虚拟内存设置有关,这里记录一下具体的解决方法:
什么是 CUDA Out of Memory 错误?
基本定义
CUDA内存不足是指,当你在深度学习或GPU编程中分配了超过GPU显存容量的内存时,CUDA驱动程序无法再分配新的内存块,从而引发错误。这是由GPU硬件资源的限制导致的常见问题,尤其是在处理大数据集或超大型神经网络模型时。
出错提示如下:
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 30.00 MiB. GPU 0 has a total capacty of 16.00 GiB of which 12.25 GiB is free. Of the allocated memory 2.43 GiB is allocated by PyTorch, and 126.88 MiB is reserved by PyTorch but unallocated.
出现这个问题是因为主机虚拟内存设置的比较小或者没设置,导致电脑可和显存进行交换的内存不足, 从而会报CUDA out of memory
在运行 PyTorch 程序时,数据通常会先加载到主机的 物理内存(RAM) 中,然后再传输到显存。如果主机的 RAM
不足,操作系统会将部分数据存放到 虚拟内存(通常是硬盘上的交换空间)中。当你加载非常大的数据集、模型或进行大量的预处理时,如果 RAM 不足,操作系统会将部分数据移动到虚拟内存中。
遇到这种情况,可以将电脑主机虚拟内存的设置调大来解决
点击
电脑 ->属性 ->高级系统设置 ->"性能"设置->虚拟内存设置
这边虚拟内存设置过小(2.5G左右),导致PyTorch 分配了2.43 G 后,不够用了 Of the allocated memory 2.43 GiB is allocated by PyTorch
所以建议把虚拟内存设置大一点
调整后如下:
这里选择E盘作为虚拟 内存分配,配置了30GB, 这样就不会报CUDA out of memory
另外, 如果要查看 显卡内存的使用情况大小,可以使用nvidia-smi
进行查看