问题 sr failed: CUDA out of memory. Tried to allocate 解决

一 错误信息:sr failed: CUDA out of memory

sr failed: CUDA out of memory. Tried to allocate 370.00 MiB. GPU 0 has a total capacty of 12.00 GiB of which 8.66 GiB is free. Of the allocated memory 969.24 MiB is allocated by PyTorch, and 306.76 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
0 Solvay_conference_1927

如下图:

二 解读错误信息 

这个报错信息表明你的CUDA程序在执行时遇到了内存不足的问题。以下是报错信息的解释:

  1. sr failed: CUDA out of memory.:CUDA是用于进行GPU加速的计算框架,这里报告了CUDA内存不足的错误。

  2. Tried to allocate 370.00 MiB.:尝试分配了370.00兆字节(MiB)的内存。

  3. GPU 0 has a total capacity of 12.00 GiB of which 8.66 GiB is free.:GPU 0的总内存容量为12.00吉字节(GiB),其中有8.66 GiB是空闲的。

  4. Of the allocated memory 969.24 MiB is allocated by PyTorch, and 306.76 MiB is reserved by PyTorch but unallocated.:已经分配的内存中,969.24 MiB被PyTorch使用,而另外的306.76 MiB被PyTorch保留但尚未分配。

  5. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation.:如果保留但未分配的内存很大,可以尝试设置max_split_size_mb以避免碎片化。这是一个建议,你可以尝试调整一些相关的参数来优化内存分配。

  6. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF:查看内存管理和PYTORCH_CUDA_ALLOC_CONF的文档,以获取更多关于内存管理和配置的信息。

三 分析原因与解决:

提示的是与gpu内存有关,根据本机环境查看本机gpu内存,如下图:

当前的 gpu总内存总12G,只有了3.7G,还有8G左右,与上面的错误描述对得上,部分gpu内存被占用,先清找出占用gpu内存进程优化掉先。

找出占用gpu的app,如下图:

 优化掉占用gpu的app后,gpu内存占用情况如下图:

再次运行项目,这时不会出现报“sr failed: CUDA out of memory”显存不够错误 ,成功解决该问题。

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
torch.cuda.outofmemoryerror: cuda out of memory. tried to allocate 26.00 mib 是一个错误提示,意味着在使用PyTorch时,由于GPU内存不足,无法分配26.00 Mib的空间。 这个错误通常出现在尝试加载具有大内存需求的模型或进行大规模计算时。有几个可能的原因导致这个问题出现: 1. 模型过大:一些复杂的深度学习模型可能具有大量参数,导致需要大量的内存来存储和计算。尝试使用更小的模型或减小批量大小来减少内存需求。 2. 数据集过大:如果输入的数据集非常庞大,则需要更多的内存来存储和处理数据。可以考虑对数据集进行分批处理或者使用更小的样本子集。 3. 多个任务同时运行:如果在同一时间运行多个GPU内存需求较大的任务,则可能会导致内存不足。在同时运行多个任务时,可以尝试减小批量大小或者调度任务的时间。 解决这个问题的方法有以下几种: 1. 减小模型的规模:可以通过减小模型参数的数量或者使用更轻量级的模型结构来减少内存需求。此外,使用模型压缩技术和剪枝等方法也可以减小模型的内存占用。 2. 减小批量大小:降低每次迭代处理的样本数,这样可以减少内存的占用。但需要注意的是,过小的批量大小可能会影响模型的学习效果。 3. 使用更大的GPU内存:如果预算允许,可以考虑购买或使用具有更大内存的GPU。 4. 分批处理数据:如果数据集过大,可以将数据集分割为多个较小的子集进行处理,以降低内存需求。 5. 释放不用的变量:在每一次循环迭代结束后,及时释放不再需要的中间变量,以释放内存。 总之,处理 "torch.cuda.outofmemoryerror: cuda out of memory. tried to allocate 26.00 mib" 错误的方法主要是减小模型规模、减小批量大小、减小数据集规模以及释放不使用的变量等,以减少内存占用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qyhua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值