当前位置:   article > 正文

CUDA out of memory 报错解决方案_stable diffusion torch.cuda.outofmemoryerror: cuda

stable diffusion torch.cuda.outofmemoryerror: cuda out of memory.

问题如下:

torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 1.12 GiB (GPU 0; 23.69 GiB total capacity; 20.35 GiB already allocated; 329.19 MiB free; 23.05 GiB reserved in total by PyTorch) 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

解决方案:在代码中增加环境变量设置

os.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'roundup_power2_divisions:[256:1,512:2,1024:4,>:8],max_split_size_mb:128'
  • 1

出错原因说白了就是GPU的内存不够了。解决思路:

  1. 减小批处理大小,调整BatchSize的数值
  2. 优化模型结构
  3. 减小数据精度,比如把 float32 改成 float16
  4. 清理无用缓存:torch.cuda.empty_cache()
  5. 调整内存分配设置

这边我选择第五种思路。根据错误提示找到PyTorch相关文档,把里面所有选项都试一遍。参数设置格式PYTORCH_CUDA_ALLOC_CONF=<option>:<value>,<option2>:<value2>...

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/538484
推荐阅读
相关标签
  

闽ICP备14008679号