2023/9/15 23:33に突如ROCm5.7が更新されたので、世界最速でStable Diffusion WebUIに挑戦してみました。
タイムスタンプは恐らくサーバーの日付で日本時間ではないと思います。
残念ながら詳細は不明です。
世界最速はダテではなく、ロンチされてから12時間は経過してないのではないかと思います。
いつも通りにROCm5.7でtorch2.0.1とtorchvision0.15.2をコンパイルして比較してみました。
日本最速、いや世界最速だと思います。
ROCm5.7のリリースノートを記事を上げるのを後回しにして今回は世界最速を目指しました。
それでは行ってみましょう。
注意:公開に当たっては複数回セットアップをテストしていますが、どの環境でもトラブルなく必ず正常動作するところまでは保証いたしかねます。あくまでも個人が公開しているものですので、使用に当たっては自己責任でお願いします。使用によって生じた結果には一切の責任を負えません。納得できる方のみ使用してください。
テスト環境
- CPU:Intel Core i7-13700K
- CPUクーラー:サイズ Big shuriken3 RGB
- マザーボード:Asrock Z690M-ITX/ax
- SSD:M2_2(チップセット側) Moment MT34 NVMe Gen3 SSD 256GB(今回は使用していません)
- M2_1(CPU側) FPI256MWR7(今回は使用していません)
- NVMe-USB3.2 Gen2X2 アルミエンクロージャー BLM20C:SUNEAST SE900NVG3-256G(システムドライブ)
- 電源:Corsair SFX 750W電源 SF-750
- メモリ:G Skill Trident Z DDR4-3600 OCメモリ16GB*2=32GB
- ケース:QDIY 0040-*PCJMK6-ITX(テストベンチ)
- OS:Lubuntu 22.04LTS(jammy-jellyfishベース)
- GPU Sapphire Pulse Radeon RX7900XTX 24GB
いつも通りになります。
いつもと変わったことは今回からカーネルがアップデートされてLinuxカーネル6.2になっています。
24.04LTSを契機にカーネルが切り替わると思っていたのでびっくりしました。
6.0以降のカーネルはRDNA3 GPUに対応しているので対応するインストールディスクがあれば一々セーフモードにしなくてもよくなっているかもしれません。(未確認)
ファイルは上からダウンロードしてください。
ROCm5.7はROCm5.6のwhlパッケージが使えますので無理に変更する必要はありません。
解凍して、USBメモリに入れておいてください。
「setup_webui_r57」フォルダ直下にファイルが配置されるようにしてください。
Linuxのインストール方法についてはこちらに説明してあります。
共通
USBメモリに入れた「setup_webui_r57」フォルダをlinadm(homeフォルダ)直下にコピーしてください。
アップデートインストール
私が以前の記事で配布したスクリプトを使ってセットアップした方向けです。
ターミナルを開いてください。
cd ~/setup_webui_r57
bash update1.sh
ここで再起動を求められます。指示通り再起動してください。
再起動後
cd ~/setup_webui_r57
bash 2_setup_wui.sh
です。
セットアップはこれで完了です。
光回線で30分から1時間ほどセットアップに時間がかかると思います。
動作はStable Diffusion WebUIの最新版でチェックしています。
全てのバージョンで動作することは保証できないので注意してください。
恐らく動きます。
簡単に書いていますが光回線で30分から1時間程度時間がかかりますので注意してください。
新規インストール
OSをクリーンインストールした方向け
ターミナルを開いてください。
cd ~/setup_webui_r57
bash 1_setup_os.sh
ここで再起動を求められます。指示通り再起動してください。
再起動後
cd ~/setup_webui_r57
bash 2_setup_wui.sh
です。
セットアップはこれで完了です。
光回線で30分から1時間ほどセットアップに時間がかかると思います。
Stable diffusion WebUI起動
cd ~/stable-diffusion-webui
bash webui.sh
以上で起動します。
パフォーマンス
ではROCm5.7バイナリになって性能は上がったのか試してみました。
ROCm5.5 ハローアスカベンチマーク 19.67s
ROCm5.6 ハローアスカベンチマーク 17.10s
配布版バイナリ=ROCm5.7+pytorch2.0.1+torchvision0.15.2
ハローアスカベンチマーク 17.2s
ROCm5.7+公式ROCm5.6版Nightly pytorch+torchvision
ハローアスカベンチマーク 16.9s
なんと、ROCm5.7のバイナリの方が遅くなっています。
0.3秒ですが、今回からStable Diffusion WebUIがアップデートしたからなのかROCm5.7になったからなのか迄はわかりませんが、非常に安定動作するようになりました。
3回ベンチマークをとってみましたが、3回ともきっかり同じタイムでした。
よって、デフォルトでは私がビルドしたバイナリではなく、公式バイナリをインストールするようにしています。
今回は単にROCm5.7をインストールするためのスクリプトになっています。
ROCm5.7対応バイナリを使いたい方はスクリプトの該当箇所を書き換えしてください。
終わりに
今回は、ROCm5.7にアップデートする恩恵のようなものはほとんどありません。
面倒な方は5.6を使い続けても問題はありません。
正直、この結果にはがっかりしました。
今回もRDNA3=RX7000シリーズは正式に対応していません。
やはりROCm6.0から正式に対応するということになりそうです。
演算性能だけで言えば、RTX4080が49TFLOPSでRX7900XTXは61TFLOPSなのでRTX4080以上の速度が出るはずなのですが、現時点ではあまり速度が奮いません。
RTX4080は13-14秒程度だったと思います。
それを考えると12秒台は出てもおかしくはないのかなと思います。
ここはROCm6.0の正式対応版でぜひとも実力を発揮していただきたいところです。
MSでもAMDでもどちらでもよいのでWSL2でのROCm対応にも期待したいところです。
やはりLinuxだと・・・ね(苦笑。
別に動作に支障が出るわけではないのですが、Linuxと言うだけでほとんど関心を持ってもらえませんので、ぜひともWindowsで実行できるようにしていただきたいところです。
サーバー向けというROCmの用途を考えると難しいとは思いますが・・・。
※1 RDNA3(RX7000シリーズ)から1SP当たりの演算器が倍増され、RDNA2と比較するとAI/ML関連の処理速度が大きく上がっていますので、ROCm(Linux版)でAI/ML関連の環境を整備されたい方は無理をしてでもRDNA3(RX7000シリーズ)を購入されることをお勧めしておきます。
※2 ROCmはノーマルの一般向けRadeonは正式にサポートされていません。Radeon Pro及びRadeon Instinct向けのソフトウェアです。絶対にノーマルRadeonで動作するという保証はありませんし、AMD側に対応する義務もないのでご注意ください。Radeon ProとRadeonは同じGPUチップを使っている関係上動作するだけです。