• 解决提示CUDA内存不够,但 GPU显示还有足够的空间


    1. 报错:提示CUDA内存不够,但 GPU显示还有足够的空间

    RuntimeError: CUDA out of memory. Tried to allocate 144.00 MiB (GPU 0; 24.00 GiB total capacity; 3.29 GiB already allocated; 21.71 GiB free)
    
    • 1

    这个看起来GPU还有足够的空间,但事实上可能是你的内存可能不够!

    2.问题

    我在在显存为12G的RTX 3060 运行一个模型能够成功,但在显存为24G的RTX 3090 Ti运行同一个模型失败,并提示CUDA内存不够。但从报错提示后可以清楚地看到显存还剩余很多。

    3.测试

    在显存为12G的RTX 3060 运行程序,并打开任务管理器监控内存、CPU使用情况。未训练模型时,内存、CPU使用情况如下所示(内存64G对于大部分实验应该是足够的):
    在这里插入图片描述
    接下来开始运行程序,发现最多占用了超过28G内存:
    在这里插入图片描述
    而一旦完成模型的前向计算迭代过程内存占用又下滑到10G左右:
    在这里插入图片描述
    而监控显卡的情况 发现GPU自始至终利用率都不是很高,不知道是不是我的代码问题:
    在这里插入图片描述
    总结来说,显存为12G的RTX 3060内存有64G那么处理起来肯定是游刃有余的;但在显存为24G的RTX 3090 Ti内存只有32G,加上有其他程序正在运行,因此内存是远远不够的。虽然显示的是cuda memory不足,但其实是真正的memory不足。

    4.解决方案

    1.增加内存容量,这个得加钱;
    2.减少数据维度,会降低图片分辨率;
    3.减少batch_size,可能会导致训练结果不好看;
    4.放弃视觉,改换门庭。

  • 相关阅读:
    XML快速入门
    Python报错ImportError: cannot import name ‘CREATE_NO_WINDOW‘
    Go语言中的指针介绍
    项目经理必知的项目管理“铁三角”
    localForage.js
    LeetCode刷题记录-简单模块(三)
    matlab串口读写
    TSINGSEE青犀视频AI方案:数据+算力+算法,人工智能的三大基石
    分享一个2022年火遍全网的Python框架
    通信基础(一):数据传输基础
  • 原文地址:https://blog.csdn.net/qq_39909808/article/details/125618090