CUDA:Out Of Memory问题

Posted qq290048663

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CUDA:Out Of Memory问题相关的知识,希望对你有一定的参考价值。

有不懂,请评论;

I've edited my comment here https://discuss.pytorch.org/t/pytorch-cuda-alloc-conf/165376/7I understand the meaning of this command (PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:516), but where do you actually write it? In jupyter notebook? In command prompt?https://discuss.pytorch.org/t/pytorch-cuda-alloc-conf/165376/7

and you guys can also see a more clear version of reply there.

学习建议:用英文检索,bing\\google

方法:将报错内容理解,然后键入英文搜索

搜索思路: 

  1. If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF If you encounter CUDA out of memory, try to set --tile with a smaller number.

看了一个国内链接通过设置PYTORCH_CUDA_ALLOC_CONF中的max_split_size_mb解决Pytorch的显存碎片化导致的CUDA:Out Of Memory问题_梦音Yune的博客-CSDN博客,然后试了试,看了评论,操作后不行;再试试国际上的链接,完成。

环境:ubuntu(按量付费 云服务器

3090RTX 24GB显存

问题来源:

运行python inference_realesrgan.py -n RealESRGAN_x4plus -i 2-8 -o output_2_8

超分图像,出现OOM问题,

我成功的操作:

step 1 设置PYTORCH_CUDA_ALLOC_CONF 

也可以export(一次性使用):

直接terminal敲export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512

设置ubuntu环境变量(永久使用):改天截图,就是设置 ~./bashrc,详细操作看如下链接。

How to Set Environment Variables in Linux Step-by-Step Guide

Reference:

PYTORCH_CUDA_ALLOC_CONF 

Cuda Reserve Memory - Memory Format - PyTorch Forums

https://pytorch.org/docs/stable/notes/cuda.html#memory-management

step 2 键入命令,设置--tile,修改数字

python inference_realesrgan.py -n RealESRGAN_x4plus -i 2-8 -o output_2_8 --tile 50

CUDA out of memory · Issue #101 · xinntao/Real-ESRGAN · GitHub

decrease the --tile

such as --tile 800 or smaller than 800

结果就能运行了,原理的话,自行看链接,慢慢看,一定能搞懂的。

rendering - Cycles / CUDA Error: Out of Memory - Blender Stack Exchange

CUDA out of memory

在训练深度学习模型时,我遇到了这个bug
CUDA out of memory

这个bug意思就是显存不足,有两种办法可以解决。

1、杀死线程
具体操作可参见
杀死GPU线程

2、减小batch-size
这个比较容易修改
batch-size即每次读进显存的数据(批)数量
例如,我之前的batch-size为12,导致显存不足,修改为8,顺利运行。
当然,这样修改也会导致训练速度变慢,因此具备一块好显卡是很有必要的。

以上是关于CUDA:Out Of Memory问题的主要内容,如果未能解决你的问题,请参考以下文章

出现 CUDA out of memory 的解决方法

CUDA out of memory

使用VGG网络训练发生错误RuntimeError: CUDA out of memory解决方案:

使用VGG网络训练发生错误RuntimeError: CUDA out of memory解决方案:

CUDA out of memory(然鹅明明还有空间)

CUDA out of memory(然鹅明明还有空间)