AMD 7900xtx ROCm部署stable diffusion webUI
九思519
2024年02月12日 23:39

AMD 显卡部署 stable diffusion webUI

1 事先准备

1.1 查看本地系统信息

由于ROCm目前(2024.2.12)只支持linux下使用,所以如果你的系统是windows或者mac(黑苹果)的话就只能使用CPU进行跑图。

进入你的系统,

uname -m && cat /etc/*release ## 查看你的系统版本并记住

uname -srmv ## 查看你的 Kernel 版本并记住

1.2 核对官网要求系统信息

先打开AMD ROCm Document,在左侧的导航栏里找到 System requirements 选项,进入之后在右侧找到 Supported GPUs,然后选择你所使用的 AMD GPU,看看是否支持你所使用的GPU,然后记住ArchitectureLLVM target。然后再往下翻找到 Supported operating systems,找到你的操作系统,记住你所在的操作系统版本右侧的 Kernel 版本。如果你使用的是VMware系统(ESXI)的话则需要找到最下方的Virtualization support。

在此,我的GPU是 AMD Radeon™ RX 7900 XTX,我的系统版本是 ubuntu 22.04.03,所以需要记住Architecture 是 RDNA3,LLVM target 是 gfx1100,Kernel 是 6.2。如果你的 Kernel 要求和 1.1 中得到的你的电脑 Kernel 版本不一样,则需要修改内核。

2 安装 ROCm

在左侧找到 Installation via AMDGPU installer,然后下翻找到你所在的系统并点击,我的是ubuntu 22.04,得到代码并且执行。记住这里的rocm版本是6.0.2

sudo apt update

wget <https://repo.radeon.com/amdgpu-install/6.0.2/ubuntu/jammy/amdgpu-install_6.0.60002-1_all.deb>

sudo apt install ./amdgpu-install_6.0.60002-1_all.deb

然后继续下翻找到 Installing ROCm packages 得到代码

如果你的系统是 desktop (桌面版有图形界面),建议选择For graphical workloads using the open-source driver add graphics. For example:

sudo amdgpu-install --usecase=graphics,rocm

如果你的系统是 server (服务器版无图形界面),建议选择

For multiple use cases separate them with commas:

sudo amdgpu-install --usecase=hiplibsdk,rocm

3 安装 Pytorch

找到左侧 Installing PyTorch for ROCm,这里提供了多种方式,我选择原生安装,点击最右侧导航栏的 Using a wheels package 选项,然后在中间看到 option 3。

sudo apt update

sudo apt install libjpeg-dev python3-dev python3-pip

pip3 install wheel setuptools

下面这行代码rocm5.6改成你的rocm版本,我的是rocm5.6,如果你是6.0.2就改成rocm6.0

pip3 install --pre torch torchvision torchaudio --index-url <https://download.pytorch.org/whl/nightly/rocm5.6/>

此时验证你的 Pytorch 是否安装成功

python3 -c 'import torch' 2> /dev/null && echo 'Success' || echo 'Failure

显示success

python3 -c 'import torch; print(torch.cuda.is_available()

显示true

则为成功,否则为失败。

4 安装 stable-diffusion-webUI

执行下列指令

git clone <https://github.com/AUTOMATIC1111/stable-diffusion-webui>

cd stable-diffusion-webui

python -m venv venv

source venv/bin/activate

python -m pip install --upgrade pip wheel

执行下列指令并等待一段时间,第一次执行时间比较久,因为要下载模型,注意:代码中rocm后的版本记得换成你的rocm版本,我的是rocm6.0.2

# It's possible that you don't need "--precision full", dropping "--no-half" however crashes my drivers

TORCH_COMMAND='pip install torch torchvision --extra-index-url <https://download.pytorch.org/whl/rocm{version}>' python launch.py --precision full --no-half

第一次执行成功之后你每次只需要进入 stable-diffusion-webUI 文件夹,执行下列代码即可

cd stable-diffusion-webui

source venv/bin/activate

# It's possible that you don't need "--precision full", dropping "--no-half" however crashes my drivers

TORCH_COMMAND='pip install torch torchvision --extra-index-url <https://download.pytorch.org/whl/rocm{version}>' python launch.py --precision full --no-half

5 stable-diffusion-webUI 可能遇到的错误以及问题

5.1 显卡显存太小

加上 --lowvram 选项

TORCH_COMMAND='pip install torch torchvision --extra-index-url <https://download.pytorch.org/whl/rocm{version}>' python launch.py --precision full --no-half --lowvram

5.2 Error Expecting value: line 1 column 1 (char 0)

加上 --no-gradio-queue选项

TORCH_COMMAND='pip install torch torchvision --extra-index-url <https://download.pytorch.org/whl/rocm{version}>' python launch.py --precision full --no-half --no-gradio-queue

5.3 局域网其他设备无法访问webUI

加上--share 和 --listen