WSL2+ROCm 7.2でRadeonでも実用的な速度へ ― ComfyUI ベンチマーク結果と手順解説

Windows,環境構築,画像生成

こんにちは、しきゆらです。
今回は、タイトル通りROCm7.2がWSLに対応したようなので、環境を作り直していきます。

過去に書いたROCmを使ったComfyUIの環境構築の記事はこちら。

だいぶ前に何度かベンチマーク等で画像生成速度を記録していました。
ROCmの更新を何度化したタイミングで、必要なパッケージが配布されなくなり動作させることができなくなっていました。

ここを見てたら、AMD ROCm™ 7.2 on Windows Subsystem for Linux 2 (WSL 2)とあったので、ROCmをv7.2に更新してみます。
なお、環境はWSL2にUbuntu-22.04をインストールして検証しています。

ROCm v7.2のインストール

手順は下記を参考にしています。

まずは、ROCm 7.2を含むコンポーネントをインストールしていきます。

# 既存のソフトウェア等を更新しておく
sudo apt update & sudo apt upgrade
# インストーラをダウンロード
wget https://repo.radeon.com/amdgpu-install/7.2/ubuntu/jammy/amdgpu-install_7.2.70200-1_all.deb
# インストールスクリプトをインストール
sudo apt install ./amdgpu-install_7.2.70200-1_all.deb
# ROCmをインストール
amdgpu-install -y --usecase=wsl,rocm --no-dkms

これで完了です。
rocminfoコマンドでお使いのGPUが参照できるかを確認しましょう。
手元の環境はRX 9070XTをなので、以下のように表示されます。

$ rocminfo
...
*******
Agent 2
*******
  Name:                    gfx1201
  Uuid:                    GPU-eab57bf783bb3cf3
  Marketing Name:          AMD Radeon RX 9070 XT
...

続いて、Pytorchなどをインストールしていきます。

ROCmのバージョン更新があった場合

基本的には、都度公式のドキュメントが更新されます。

ただし、ROCmのバージョンが更新されても特定のパッケージは配布されない場合があります。
その時は、念のため配布されていないか以下から確認しましょう。

ここからファイルをダウンロードし、インストールすればOKです。
上記のコマンドでいうところの、以下の箇所です。
適宜バージョン・ファイル名に合わせて実行します。

# インストーラをダウンロード
wget https://repo.radeon.com/amdgpu-install/7.2/ubuntu/jammy/amdgpu-install_7.2.70200-1_all.deb
# インストールスクリプトをインストール
sudo apt install ./amdgpu-install_7.2.70200-1_all.deb

Pytorchなどのライブラリをインストール

以下の手順を参考にしています。

では、インストールしていきます。
ここでは、Python 3.13系を使っています。
別のバージョンをお使いの場合は、適宜読み替えてください。(具体的にはcp313の部分)

# pip、wheelの更新
pip3 install --upgrade pip wheel

# ROCm 7.2系に向けてビルドされたパッケージをダウンロード
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torch-2.10.0%2Brocm7.2.0.lw.gitb6ee5fde-cp313-cp313-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchvision-0.25.0%2Brocm7.2.0.git82df5f59-cp313-cp313-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/triton-3.6.0%2Brocm7.2.0.gitba5c1517-cp313-cp313-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchaudio-2.10.0%2Brocm7.2.0.git5047768f-cp313-cp313-linux_x86_64.whl

# 既存のパッケージがあれば削除しておく
pip3 uninstall torch torchvision triton torchaudio

# ダウンロードしたファイルをインストール
pip3 install torch-2.10.0+rocm7.2.0.lw.gitb6ee5fde-cp313-cp313-linux_x86_64.whl torchvision-0.25.0+rocm7.2.0.git82df5f59-cp313-cp313-linux_x86_64.whl torchaudio-2.10.0+rocm7.2.0.git5047768f-cp313-cp313-linux_x86_64.whl triton-3.6.0+rocm7.2.0.gitba5c1517-cp313-cp313-linux_x86_64.whl

これにて完了です。
以下のコマンドを実行して、正常に動作していることを確認しましょう。

$ python3 -c 'import torch' 2> /dev/null && echo 'Success' || echo 'Failure'
Success

# ここが動かないとComfyUIは動かない
$ python3 -c 'import torch; print(torch.cuda.is_available())'
True

$ python3 -c "import torch; print(f'device name [0]:', torch.cuda.get_device_name(0))"
device name [0]: AMD Radeon RX 9070 XT

ROCmのバージョンが更新された場合

amdgpu-installと同様に、ROCmのバージョンが更新されるとそれに合わせて使うPytorchも変わってきます。
インストールしたバージョンに合わせて、以下から該当するファイルを見つけてインストールしましょう。

上記コマンドでいうところの、以下の箇所です。
ROCmのバージョン、使うPythonのバージョンに合わせてファイルを選んでダウンロード、インストールしましょう。

# ROCm 7.2系に向けてビルドされたパッケージをダウンロード
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torch-2.10.0%2Brocm7.2.0.lw.gitb6ee5fde-cp313-cp313-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchvision-0.25.0%2Brocm7.2.0.git82df5f59-cp313-cp313-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/triton-3.6.0%2Brocm7.2.0.gitba5c1517-cp313-cp313-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchaudio-2.10.0%2Brocm7.2.0.git5047768f-cp313-cp313-linux_x86_64.whl

ComfyUIの更新

続けて、ComfyUIと依存パッケージをインストールしていきます。
なお、ComfyUI Managerのインストールも記載していますが、不要であればスキップ可能です。

# ComfyUIをクローン すでにあれば移動だけでよい
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip3 install -r requirements.txt --user

# ComfyUI Managerのインストール ※オプション
git clone https://github.com/ltdrdata/ComfyUI-Manager.git ./custom_nodes/ComfyUI-Manager
pushd .
cd ./custom_nodes/ComfyUI-Manager
pip3 install -r requirements.txt --user
popd

これで環境構築は完了です。
以下のコマンドでComfyUIを実行しましょう。

python main.py

動作確認

動かして画像生成してみます。
環境は以下の通りです。

CPUAMD Ryzen 9 9950X3D
GPUAMD Radeon RX9070XT
メモリDDR5 96GB (5600MHz)
PC構成

過去と同様、いわゆるハローアスカベンチマークです。
10枚生成した時間の平均を出してみました。

生成された画像の例

旧データは、以前書いた記事の記録を参考にしています。
また、26.1.1はWindows環境に入っているAMD Softwareのバージョンです。

旧データだと、16~17秒程度だったのですが、今回の環境では14秒ちょっとで生成できるようになっています。
以前もだいぶ早くなっていましたが、今回のバージョンではより速度が速くなっています。
過去のベンチマーク定点観測のデータを見ると、10枚生成するのに60秒~90秒ほどかかっていたので、これらと比べると相当早くなっています。

これからも、開発と各ライブラリの対応を進めていってほしいところです。

まとめ

今回は、ROCm 7.2がWSLに対応していたので、過去に作った環境を再整備してComfyUIが動く状態に戻しました。
速度的にも、以前作ったものよりも少し早くなっている点がうれしいところでした。
ただ、WSL向けのサポートは注力されていないのかROCmのバージョンによっては動かなくなる場合があるようなので、お使いの方はご注意ください。

今回は、ここまで。

おわり

Posted by しきゆら