LoginSignup
5
5

More than 1 year has passed since last update.

ROCm で Stable Diffusion 動きます(Stable Diffuson 2.0 も動くよ)

Last updated at Posted at 2022-09-01

ふえぇ... AMD GPU で Stable diffusion 計算代行してがっぽがっぽしたいよぉ...

情報

環境

  • Ubuntu 22.04(20.04 推奨)
  • RX6800(RDNA2) 16GB
  • Docker で ROCm 実行

手元ですぐに試せる環境が Ubuntu 22.04 のみで, 22.04 は ROCm 正式対応していないため,

を参考にして無理やりインストールしました!
(20.04 環境がある方は 20.04 使ったほうがいいです)

ROCm pytorch

オフィシャル? からだと ROCm 5.1.1 なのと, セットアップ容易 + ROCm 最新 5.2.3 を使うため docker を使います.

から適したのを取得します.

執筆時点では rocm/pytorch:rocm5.2.3_ubuntu20.04_py3.7_pytorch_1.12.1 が最適でした.

実行

ROCm(amdgpu)自体, Ubuntu 20.04 以降であれば video group(render も?) があれば usespace で動かせます.
(このあたり細かいところのセキュリティはディストリビューションによると思われる)

また, 最近では sudo などつけなくても user space で docker 動かし GPU アクセスできます.

ROCm 使うには /dev/kfd, /dev/dri が見えている必要があるため, --device でコンテナ内で見れるようにします.

--security-opt seccomp=unconfined は無くても大丈夫そう.
(ROCm で Stable diffusion 計算代行など, GPU 計算をインターネット越しで提供する場合は適切に設定するのが推奨と思われる: https://www.creationline.com/lab/46861)

--privileged(特権モード)は deprecated になったようでつけなくてよいです.

--group-addvideo group にユーザを追加しないといけません.

docker run --name pytorch_rocm -it --rm --device=/dev/kfd --device=/dev/dri --group-add video rocm/pytorch:rocm5.2.3_ubuntu20.04_py3.7_pytorch_1.12.1

で Docker 起動し,

import torch
torch.cuda.is_available()

で pytorch の import と, cuda(ROCm GPU)使えるか確認しておきます.

あとは

あたりを参考にして動かせばいけます!

Screenshot from 2022-09-01 22-30-20.png

Voila!
(X11 とか volume 共有していなかったのでとりあえず imcat https://github.com/stolk/imcat で terminal で表示)

実行時間は推論だからか reddit にあるように CUDA と遜色ない速度で処理できている感がありました.

解像度

RX6800 16GB で,

  • 768x768 いけました.

768x1024 などは CUDA と同様にメモリ不足で実行できずになりました. そもそも学習が 512x512 なので解像度たかくしてもうまくいかない. SD 2.0 や upscalar を使いましょう.

Stable diffison 2.0

2.0 も動きました :tada:

output.png

こちらのメモリ削減版を使い

768x768 で memory usagge 33% (~5.5 GB)

で行けました. GPU メモリ 8GB でもいけるやも.

TODO

  • pip install あたりのセットアップの履歴を docker イメージに残す(https://github.com/l1na-forever/stable-diffusion-rocm-docker 当たり参考に Dockerfile 作らないとダメかしらん)
  • 学習もさせてみる(以前(昨年あたり)は pytorch rocm とりあえず動くものの, おそすぎたり計算 nan でたりとダメダメでしたが, 一応 Pytorch ROCm は beta 取れているのでいまはきちんと動きそう?)
    • finetune は Dreambooth でできるのを確認ずみ
  • AMD GPU たくさん並べて Stable diffusion 計算代行でがっぽがっぽするスキームを確立する(GeForce では EULA で商用ホスティングサービス提供が禁止されているので計算代行は EULA に抵触する可能性があるため)
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5