見出し画像

RadeonでStable Diffusionを構築してみた

はじめに

元々はRTX 5090を買うつもりだったのですが、手に入る見込みはなく、5090を入れるためのPCだけ先に自作してしまっていました。
ローカルAI環境を年明けには強化しようと思ってたのが頓挫してしまい、途方に暮れていたのですが、VRAMが24GBのRadeon RX 79000 XTXがそこそこ安い値段で手に入ったのでもうとりあえずこれでやっみよう!
と、RadeonでSDの環境を作ってみた記録です。
結論は以下の3行ですが、それでも興味がある人は読み進めてください

  • 絶対に人にはおすすめしない

  • Linuxさえちゃんと環境を作れれば思ったより速く快適に動作する

  • 不安はあるが、実践的な使い方はできそう



前提

  • Radeon RX 7900 XTXが前提

  • Windowsは使用しない。Linuxネイティブでやる

    • ChatGPTなどに聞けばLinuxの設定も多分怖くはないはず

  • Linuxの基本的な使い方は説明しない

  • Stable Diffusionの基礎的な知識も説明しない

    • Pythonなどの知識はあまりない人を対象にする

  • Pythonの仮想環境の管理にはuvを使う

    • DockerをどうもAMDは推奨しているようですが、汚してもいい環境なのでuvで仮想環境を作りました

Linux環境の構築

ハードウェア

CPUやメモリは適当でいいと思います。メモリは64GBくらいはあったほうがいい気がします。

  • CPUはRyzen 7 9700X

    • トップグレードではなくわざと低いグレードにしています。どうせCPUは使いません

    • RTX 5090が電気ドカ食いなのでTDP 65Wで空冷でも安定して動作する中で最速のCPUを選択しました

    • CPUクーラーはしょぼい空冷ですが問題なさそうです

  • メモリは128GB

    • たぶん64GBで足りる。32GBでもいけるかも。

    • これは失敗したかもしれません。32GBを4枚さしてますが、48GBの2枚刺しのほうが速いくてちょうどよかったかもしれませんが、影響があるようには思えません

  • マザーボードはX870eに対応したもの

    • 高かったです。どうせフルパワーを使わないので、もうちょっと安いのでも良かった気がします。

    • とはいえ長時間、GPUを100%という異常な使い方をするのでマザーボードは強めにしたほうが安心感はあります。

  • GPUはAMD Radeon RX 7900 XTX

    • 前述の通りです。ゲームをやるならコスパ最強っぽいです(よく知らない)

OSの設定

  • LinuxはUbuntu 24.04を使います。LTSの中の最新です

    • AIをLinuxで使うときにはUbuntuを選択しておけば無難

    • 個人的にもUbuntuは長いこと使い慣れているので、楽です

    • 22.04のほうが実績があるので悩みましたが、24.04でも相当実績があることが確認できたので新しい方にしました

  • UbuntuのインストールはすべてデフォルトでOK

Stable Diffusionの設定

AMD用のドライバの設定

カーネルの再構築が必要になるので一通り設定したら再起動します

$ wget https://repo.radeon.com/amdgpu-install/6.3.2/ubuntu/noble/amdgpu-install_6.3.60302-1_all.deb
$ sudo apt install ./amdgpu-install_6.3.60302-1_all.deb
$ sudo apt update
$ apt install amdgpu-dkms rocm
$ sudo reboot

再起動時に色々聞かれますがyesと答えるのでOKです。
再起動してドライバが正しく動作している確認します

$ amd-smi

このコマンドでバージョンなどが表示されればOKです。

Stable Diffusionのインストール


uvのインストール

curl -LsSf https://astral.sh/uv/install.sh | sh

仮想環境の作成。
~/sdという環境を作ります。Pythonは3.0.16を使います

$ mkdir ~/sd
$ cd ~/sd
$ uv venv -p 3.0.16
$ source .venv/bin/activate

 PyTorchのインストール
ここでROCmというAMD用のPyTorchをインストールします
※最初に公開したバージョンでは間違っていました
最初はPyTorch 2.7をインストールしたのですが、このバージョンだとADetailerで問題が発生して、2.4に変更しています。おそらく以下の手順で問題ないと思います。

$ wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.3.2/torch-2.4.0%2Brocm6.3.2-cp310-cp310-linux_x86_64.whl
$ wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.3.2/torchvision-0.19.0%2Brocm6.3.2-cp310-cp310-linux_x86_64.whl
$ wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.3.2/pytorch_triton_rocm-3.0.0%2Brocm6.3.2.75cc27c26a-cp310-cp310-linux_x86_64.whl
$ wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.3.2/torchaudio-2.4.0%2Brocm6.3.2-cp310-cp310-linux_x86_64.whl
$ uv install torch-2.4.0+rocm6.3.2-cp310-cp310-linux_x86_64.whl torchvision-0.19.0+rocm6.3.2-cp310-cp310-linux_x86_64.whl torchaudio-2.4.0+rocm6.3.2-cp310-cp310-linux_x86_64.whl pytorch_triton_rocm-3.0.0+rocm6.3.2.75cc27c26a-cp310-cp310-linux_x86_64.whl

Stable Diffusion WebUIのインストール
a1111のを使います

$ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
$ cd stable-diffusion-webui
$ uv pip install requirements_versions.txt 

基本的にはこれだけでOKです。特段トラブルは起きませんでした。
WebUIのディレクトリの下の model/Stable-diffusion/ 配下によく使うチェックポイントをおいたらWebUIを起動します

$ python webui.py --listen --enable-insecure-extension-access --no-half-vae

pythonで始めているのはuvで仮想環境を作っているからです。適宜読み替えてください。
--enable-insecure-extension-accessも、おそらくUbuntuのブラウザで生成などするなどなければ使うことになると思います。
あとは http://ホスト名:7680/ にアクセスしていつも通り生成します

生成の性能について

RTX 4070tiとの比較

手元の環境がRTX 4070ti ネイティブしか存在しないため、これとの比較になります。
VRAMも4070tiは12GBしかありませんので、色々と比較すべきものではないかなとは思いますが、参考までに比較を乗せます。
4070tiはWindowsネイティブです。

ざっくり性能差

  • 4070tiは 1.4it/s 前後

  • RX7900TXTは2.8it/s 前後

体感でも2倍程度生成の速度は早いです。また、バッチサイズをRX7900XTXは増やしやすいので明らかに快適になりました。

xformers

AMD用のxformersの導入方法がよくわかってなくて、使っていませんが、RX7900XTXt + SDXLであればVRAMが潤沢にあるのでxformersは不要なようです。

同じ画像を生成できるか?

全く同じではありませんが、同プロンプト同シードならほぼ同じ画像が生成出来ました

RX7900XTXで生成


RTX 4070tiで生成

RadeonでのAI学習

こちらも私がいつもやっているLoRA学習については問題なくできました。
別途しっかり書くかもしれませんが、普通にsd-scriptsをインストールするだけで問題ありませんでした。

まとめ

わりといけそう!?快適?
となっていますがまだ本格運用はしていないのでなんとも言えません。
FLUXやLLMの環境なども作ってみようかと思いますがPyTorchはしっかり動いている様子なので期待してもいいかなとは思います。
それにしても、おすすめは出来ません。
やはりAIの世界はNVIDIAを中心に回っています。Linuxが苦にならない人でもNVIDIAのGPUを買ったほうが安心して使えるとは思います。
この状況が1年続けば「RadeonもAIに使えるよ!」と言えるかもれませんが、現状は自己責任でとしかいえません。

表紙のこの子もRadeonで生成しました

個人的にはRadeon信者なので嬉しい誤算ではありました。もっと苦戦するかとは思っていましたけど、そうでもありませんでした。
それでは、よきRadeonライフ、AIライフをお過ごしください。


いいなと思ったら応援しよう!