资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Python

提高Stable Diffusion十倍计算速度以及解决内存崩溃问题

Python 更新时间: 发布时间: 计算机考试归档 最新发布

提高Stable Diffusion十倍计算速度以及解决内存崩溃问题

在启动Stable Diffusion时一直报Torch not compiled with CUDA enabled警告,一开始没在意本着能用就行的态度凑活用,每个图都耗时十多秒,然后本着好奇Torch not compiled with CUDA enabled这个警告去搜索解决方案,都没说这个警告解决了有什么用,并且网上资料东拼西凑根本不能解决问题,本着专研解决问题的心态花一晚上解决这个警告,并将计算速度提高了十倍基本4G的模型2秒能出图。

出现这个问题是两个方面一是的确显存不足

本地环境:windows11 13900k 32G Nvidia 3080ti

当前显卡驱动版本:

注意上面的CUDA12.0.147不一定要和CUDA Toolkit 版本一样,但是CUDA Toolkit一定要和pytorch中版本一样

我没用conda太麻烦了,直接裸装到本地python环境速度还快,下面是步骤:

正式开始

首先要安装cuda_11.6.0_511.23_windows.exe 这个版本必须要和pytorch官网对应(其实不一定非要安装最新的cuda老的也可以的只要版本对上),然后安装pytorch可以从官网或者本地,如果安装过程中出现以来报错,可以检查手动安装依赖再重新安装

网盘地址:

我用夸克网盘分享了「cuda驱动」,

链接:https://pan.quark.cn/s/678739c40a91

关于CUDA Toolkit 与你的显卡驱动版本对应关系可以参考这个文档,他都是大于等于也就是说你的cuda老版本也没关系 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html 可以如上图看显卡版本或者cmd命令行执行nvidia-smi查看

1.下载CUDA Toolkit

https://developer.nvidia.com/cuda-11-6-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local

cuda_11.6.0_511.23_windows.exe (全部下一步)

2.安装pytorch

https://pytorch.org/get-started/locally/ 参考地址

pip都是在cmd命令行安装如果没pip去baidu查一下python pip安装教程,python版本我这里是10.0

组合脚本(在线安装):

pip install protobuf==3.20.0 requests==2.28.2 torch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

本地安装(可选)

下载地址:https://download.pytorch.org/whl/cu116/torch-1.13.1%2Bcu116-cp310-cp310-win_amd64.whl

pip install protobuf==3.20.0 requests==2.28.2 torch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 torch-1.13.1+cu116-cp310-cp310-win_amd64.whl

python命令行:

import torch

torch.cuda.is_available()

如果返回true表示安装成功

50步加了很多关键词才19秒不到

如果20步只要3秒,并且分辨率也高不会崩溃。

另外补充就是分辨率采样过高报错问题:

RuntimeError: CUDA out of memory. Tried to allocate 31.29 GiB(GPU 0; 12.00 GiB total capacity; 4.29 GiBlready allocated; 5.1l GiB free; 4.37 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

————————————————

解决思路作者地址:通过设置PYTORCH_CUDA_ALLOC_CONF中的max_split_size_mb解决Pytorch的显存碎片化导致的CUDA:Out Of Memory问题_梦音Yune的博客-CSDN博客

对于小显存我设置成

set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:32 貌似也能解决问题,这个需要在启动bat里面加入一行就行了

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1097500.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【提高Stable Diffusion十倍计算速度以及解决内存崩溃问题】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2