Stable Diffusion WebUIがRX7900XTX with ROCmで動作しました

# Stable Diffusion WebUIがRX7900XTX with ROCmで動作しました

<a id="orgd833b3f"></a>

Stable Diffusion web-ui をRX7900XTXで動作できたそうです。
[https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/9591](https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/9591)
試してみたところ自分の環境でも動作確認できました。
元の手順通りに行なえば成功しますが、はまった点とその対策について備忘録を残します。



<a id="org4397cbe"></a>

# 目次
1.  [環境](#orga7eee78)
2.  [オリジナル手順](#org652abd0)
3.  [はまった点への対策](#org7284fbc)
    1.  [docker image](#orgaf88ab7)
    2.  [コマンドミス](#org520fde4)
    3.  [メモリ不足](#orgb9b8372)
    4.  [local URL](#org000591a)
4.  [結果](#org61e26f0)


<a id="orga7eee78"></a>

# 環境

-   GPU : RX7900XTX
-   CPU : Intel i9-13900KS
-   memory : 32GB
-   swap : 50GB
-   Arch linux
-   Docker version 23.0.4, build f480fb1e37
-   ROCm 5.5
-   関連のありそうなインストール済のsoftware
    -   amd-vulkan-prefixes
    -   lib32-vulkan-radeon
    -   radeontop
    -   vulkan-amdgpu-pro
    -   vulkan-radeon
    -   vulkan-tools
    -   vulkan-validation-layers
    -   xf86-video-amdgpu


<a id="org652abd0"></a>

# オリジナル手順

手順は下記の通りです。
自分は2, 15, 25ではまりました。

1. mkdir $HOME/docker_sd
2. docker pull rocm/composable_kernel:ck_ub20.04_rocm5.5_rc4
3. docker run --name rocm -it -v $HOME/docker_sd:/SD --device=/dev/kfd --device=/dev/dri --security-opt seccomp=unconfined --group-add video rocm/composable_kernel:ck_ub20.04_rocm5.5_rc4
4. cd /SD
5. git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
6. apt update && apt install python3.8-venv
7. cd stable-diffusion-webui
8. python3 -m venv venv
9. source venv/bin/activate
10. python3 -m pip install --upgrade pip wheel
11. export HIP_VISIBLE_DEVICES=0
12. export PYTORCH_ROCM_ARCH="gfx1100"
13. export CMAKE_PREFIX_PATH=/SD/stable-diffusion-webui/venv/
14. pip install -r requirements.txt
15. pip remove torch torchvision
16. mkdir repositories
17. cd repositories
18. wget https://github.com/pytorch/pytorch/releases/download/v2.0.0/pytorch-v2.0.0.tar.gz
19. wget https://github.com/pytorch/vision/archive/refs/tags/v0.15.1.tar.gz
20. tar -xzvf pytorch-v2.0.0.tar.gz && cd pytorch-v2.0.0
21. pip install cmake ninja
22. pip install -r requirements.txt
23. pip install mkl mkl-include
24. python3 tools/amd_build/build_amd.py
25. python3 setup.py install
26. cd ..
27. tar -xzvf v0.15.1.tar.gz
28. cd vision-0.15.1
29. python3 setup.py install
30. cd /SD/stable-diffusion-webui
31. python3 launch.py --listen



<a id="org7284fbc"></a>

# 対策


<a id="orgaf88ab7"></a>

## 2 docker image

この記事を書いている時点では、docker imageが削除されています。
有志の方がmegaなどに上げてくれていますが、削除されてしまったimageファイルと一致してるかの保証はできません。
使用する際は自己責任でお願いします。
なので、この記事にはリンクは貼りません。元の記事から探してください。

<a id="org520fde4"></a>

## 15 コマンドミス
オリジナルの手順ではpip remove torch torchvisionとなっています。
removeは間違いで、正しくはuninstallだと思います。


<a id="orgb9b8372"></a>

## 25 メモリ不足

buildに膨大なメモリを使います。
自分は32GBのメモリと50GBのswapを用意することでbuildに成功しました。
メモリ32GB、swap無しではメモリ不足により失敗しました。
元のスレッドではメモリ32GB+スワップ30GBで成功したようです。


<a id="org000591a"></a>

## 32 local URL

local URLは <http://172.17.0.2:7860/> です。
( <http://0.0.0.0:7860> ではなく)


<a id="org61e26f0"></a>

# 結果

RX7900XTXでStable Diffusionが動くようになりました。
だいたい15it/s前後出ているので、性能としては NVidia RTX 3090 程度でしょうか
![screenshot_20230430204923.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270858/17de2120-2765-2b0d-66ed-c0fe0f83e528.png)


この記事が誰かの助けになれば幸いです。