自作PCユーザーがゲーム用PCの解説をします

自作ユーザーが解説するゲーミングPCガイド

更新:RX7900XTXでStable Diffusion WebUIに挑戦(ROCm 5.6) ・セットアップスクリプト配布

更新日:

この記事は既に古くなっています。最新のセットアップスクリプトはこちらの記事一覧から確認してください。

2023/7/9更新:ROCm 5.6対応Pytorch版にバージョンアップしました。

最初にお詫びいたします。

以前のROCm5.6版を使ってしまった方はOSを再インストールするしかありません。

私も気が付かずにやってしまいました。大変申し訳ありません。

 

昨日、ROCm5.6が出たとお知らせいたしましたが、さっそくROCm5.6を使ってStable Diffusion WebUIを動かしてみました。

注意:公開に当たっては複数回セットアップをテストしていますが、どの環境でもトラブルなく必ず正常動作するところまでは保証いたしかねます。あくまでも個人が公開しているものですので、使用に当たっては自己責任でお願いします。使用によって生じた結果には一切の責任を負えません。納得できる方のみ使用してください。

前提として、以下の記事に一通り目を通しておいてください。

更新:RDNA3に対応したROCm v5.5でStable Diffusion WebUIを動かす方法

検証環境は上の記事と変更ありません。

 

今回のセットアップファイルはこちらです。

setup_webui_r56.zip

解凍して、USBメモリに入れておいてください。

「setup_webui_r56」フォルダ直下にファイルが配置されるようにしてください。

 

 

概略

ROCm5.6におけるStable Diffusion WebUiはPytorchのNightly Buildでないと動作いたしません。

私が配布したPytorchでは動作しません。

現在、Githubなどでも個人がビルドしたパッケージが存在しますが、恐らく動作しません。

また、性能は全く変わりませんので、性能が向上することを期待している方にとっては意味が無いです。

正直な感想は「何が変わったのかわからない」です。

今回の修正でユーザービルドのパッケージでも動作可能になりました。

共通

USBメモリに入れた「setup_webui_r56」フォルダをlinadm(homeフォルダ)直下にコピーしてください。

 

 

アップデートインストール

私が以前の記事で配布したスクリプトを使ってセットアップした方向けです。

ターミナルを開いてください。

cd ~/setup_webui_r56

bash update1.sh

実行するとターミナルに以下のメッセージが出て終了すると思います。

WARNING: nomodeset detected in kernel parameters, amdgpu requires KMS

再起動してください。

この警告メッセージが出たら、指示通り再起動してください。

再起動後

cd ~/setup_webui_r56

bash 2_setup_wui.sh

です。

セットアップはこれで完了です。

光回線で30分から1時間ほどセットアップに時間がかかると思います。

動作はStable Diffusion WebUIの最新版でチェックしています。

全てのバージョンで動作することは保証できないので注意してください。

恐らく動きます。

簡単に書いていますが光回線で30分から1時間程度時間がかかりますので注意してください。

わかる人向け

ROCm5.5を削除して、ROCm5.6をセットアップしています。

ドライバをいったんすべて削除して、RadeonのLinuxドライバーのリポジトリを指定しているパッケージ「amdgpu-install_5.5.50500-1_all.deb」アンインストールしています。

そこから「amdgpu-install_5.6.50600-1_all.deb」をインストールしてROCm5.6用のリポジトリを再指定してインストールしています。

以前のパッケージではDKMSと言う新しい形式のドライバをインストールしていましたが、こちらを使うとPytorchのビルドが出来ない(ビルドスクリプトが対応していない)ため、個別のビルドをすることが出来なくなっていることを確認しました。

また、ビルドが出来ないだけではなく、ビルドしたパッケージを使用することも出来ません。

かなり問題がありますので、以前と同じ形に戻しています。

ごく最近、RadeonのLinuxドライバーはリポジトリを指定する個別の「deb」パッケージをインストールする形式から直接リポジトリを指定する形に変更になりました。

RadeonのLinuxドライバーはバージョンごとにリポジトリが別れていましたが、今後は「Lastest」からアップグレードする形に変更になったのだと思います。

よって今回のupdateをインストールするとRadeonのLinuxドライバとROCm関連パッケージのリポジトリが指定されます。

わかる方はスクリプトの中を見てみてください。

今後は「apt」コマンドでアップグレードできるようになると思います(多分)。

 

新規インストール

OSをクリーンインストールした方向け

ターミナルを開いてください。

cd ~/setup_webui_r56

bash 1_setup_os.sh

実行するとターミナルに以下のメッセージが出て終了すると思います。

WARNING: nomodeset detected in kernel parameters, amdgpu requires KMS

再起動してください。

ここで再起動を求められます。指示通り再起動してください。

再起動後

cd ~/setup_webui_r56

bash 2_setup_wui.sh

です。

セットアップはこれで完了です。

光回線で30分から1時間ほどセットアップに時間がかかると思います。

 

Stable diffusion WebUI起動

cd ~/stable-diffusion-webui

bash webui.sh

以上で起動します。

 

パフォーマンス

最初に説明いたしましたが、全く速くなっていません。

ハローアスカベンチマークで19.28sから19.48sくらいです。

「こころもち速くなったかなあ」くらいです。

ただし、安定性は上がっているのではないかと思います。(気のせいかもしれません。)

ROCm5.6対応のPytorchを使うことによって、以前と比較して性能が向上しました。

ROCm5.6+Pytorch2.1(Nightly) or ROCm5.5+Pytorch2.0.1(ユーザービルド)・・・19.67s

ROCm5.6+Pytorch2.1(ユーザービルド)・・・17.10s

2.57秒も速くなっています。

コンマ以下の数字は誤差でズレると思いますが、2秒は確実に短縮出来ています。

 

 

 

 

その他注意事項

「webui-user.sh」の末尾に以下のセクションを追記しています。

***ここから

#Radeon VII
#HSA_OVERRIDE_GFX_VERSION=9.0.6

#RX5700XT/RX5700/RX5500XT
#RX6950XT/RX6900XT/RX6800XT/RX6800
#RX6750XT/RX6700XT/RX6700/RX6650XT/RX6600XT/RX6600/RX6500XT/RX6400
#HSA_OVERRIDE_GFX_VERSION=10.3.0

#RX7900XTX/RX7900XT/RX7600
HSA_OVERRIDE_GFX_VERSION=11.0.0

***ここまで

お手持ちのGPUの該当する箇所のコメントアウトを外してください。

デフォルトではRDNA3になっています。

恐らく、上に書いてあるGPUでは動作すると思いますが、実機がありませんので確認はしていません。

動作を確認しているのはRX7900XTXのみです。

ご了承ください。

 

 

感想など

「ROCm5.6ではRDNA3に正式対応し、パフォーマンスがアップする」とか、「Windows版が出る」などとまことしやかに語られていましたが、残念ながら、どちらも実現しませんでした。

※ 更新:ROCm5.6で性能はアップしました。

「ROCm5.6ではRDNA3に正式対応し、パフォーマンスがアップする」はgithubで、

「Windows版が出る」は海外のリークメディアで話が出ていました。

当然ですが、当サイトでもお伝えしています。

期待していた方は申し訳ありません。

私もがっかりしました。

ROCm5.7は今日現在でマイルストーンが85%になっています。

ROCm5.7からgfx906=RadeonVIIはメンテナンス(新機能の追加無し)のみになります。

明言されているわけではないですが、入れ替わりでRDNA3が正式に対応するのではないかと思います。

2023年Q3(7-9月期)にロンチされるとのことなので、期待しておきましょう。

今回、ROCm5.6対応のユーザービルドのPytorchを使うことによって性能アップに成功しました。

以前の結果がRTX3090と同程度でしたがそれより2秒以上単修出来ています。

今後も最適化が進むことによって性能が上がっていくことが期待できますので、次のROCmを楽しみに待ちましょう。

 

今回からユーザービルドは以下のgithubユーザーがビルドしたパッケージを使っています。

ユーザビルドのパッケージを公開されているgithubユーザー「evshiron」氏のページ

ビルドする環境を整えるスクリプトなども公開されていますので、参考にしてください。

最終的な目標はご自分でビルドできるところまで行くことですね。

わかる方はスクリプトの中身を見るだけでもかなり理解が進むと思います。

 

 

 

 

  • B!