关于#CUDA OUT OF MEMORY#的问题,如何解决?

在使用Stable Difussion的时候, free memory 和 already allocated memory 相加小于所需内存 但是显示CUDA out of
memory,在网上看了下,在python.exe里输入以下代码 os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:32" 现在是free memory很小,但是reserved memory 很大,请大神指点一下

img

  • 这篇博客: 血泪 cuda out of memory:中的 原因分析: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • @Override
    Traceback (most recent call last):
      File "basicsr/train.py", line 244, in <module>
        train_pipeline(root_path)
      File "basicsr/train.py", line 237, in train_pipeline
        model.validation(val_loader, current_iter, tb_logger, opt['val']['save_img'])
      File "/home/iecy/pycharm/Openbayes/QuanTexSR-main/basicsr/models/base_model.py", line 48, in validation
        self.nondist_validation(dataloader, current_iter, tb_logger, save_img, save_as_dir)
      File "/home/iecy/pycharm/Openbayes/QuanTexSR-main/basicsr/models/qsr_model.py", line 289, in nondist_validation
        self.test()
      File "/home/iecy/pycharm/Openbayes/QuanTexSR-main/basicsr/models/qsr_model.py", line 253, in test
        self.output = net_g.test(lq_input)
      File "/home/iecy/anaconda3/envs/pytorch/lib/python3.6/site-packages/torch/autograd/grad_mode.py", line 28, in decorate_context
        return func(*args, **kwargs)
      File "/home/iecy/pycharm/Openbayes/QuanTexSR-main/basicsr/archs/quantsr_arch.py", line 417, in test
        input = self.content_model(input)
      File "/home/iecy/anaconda3/envs/pytorch/lib/python3.6/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl
        return forward_call(*input, **kwargs)
      File "/home/iecy/pycharm/Openbayes/QuanTexSR-main/basicsr/archs/rrdbnet_arch.py", line 117, in forward
        feat = self.lrelu(self.conv_up2(F.interpolate(feat, scale_factor=2, mode='nearest')))
      File "/home/iecy/anaconda3/envs/pytorch/lib/python3.6/site-packages/torch/nn/functional.py", line 3690, in interpolate
        return torch._C._nn.upsample_nearest2d(input, output_size, scale_factors)
    	}
    

    其中上面有一行就是问题所在。我将它修改之后,就没有再出现cuda out of memory.

    @Override
    Test 0801_s001: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:10<00:00, 10.36s/image]
    2022-04-21 18:43:44,104 INFO: Validation General_Image_Valid
             # psnr: 8.9772 Best: 8.9772 @ 0 iter
             # ssim: 0.0348 Best: 0.0348 @ 0 iter
             # lpips: 0.9741        Best: 0.9741 @ 0 iter
    	}