Windows 11 で AMD ROCm ソフトウェアを実行する方法

Windows 内で AMD ROCm ソフトウェアを使用して最新の Stable Diffusion プログラムを実行したいと思ったことはありませんか?
AMD Radeon RX 7000 シリーズ を使用して KritaでもDiffusionを使用しましょう。
試していませんが、ROCmがインストールできるので、本家のStable Diffusionも使えるはずです。

RADEONのグラボで、ROCMをインストールしてstable dffisionを動作させるというのは、Windowsの仮想空間でLINUXを作動させて、ROCMを動かすということです。
この手順が公式HPに記載されています。

インストールしたPC

CPU:AMD Ryzen 9 5900X
グラボ:RX7900XT

AMD&AMDの構成です。

Chatgptに手伝ってもらう

AMD公式HPに記載されている内容ですが、初心者には「何が何だかさっぱりわからない」と感じるかもしれません。
公式リンクはこちらです⇩
Windows 11 で AMD ROCm™ ソフトウェアを実行する方法

とはいえ、基本的にはこの手順通りに進めれば大丈夫です。

私も3回目の挑戦でようやく成功しました。

公式の手順は間違っていないのですが、実際に作業していると「これで合っているのかな?」と不安になることがあります。
そんなときは、作業手順をコピーしてChatGPTに聞いてみると、どこが間違っているのか、そして どうすれば良いのかを教えてくれます。

本当に便利です。
とはいえ、私も最初の2回は失敗してしまいました……。

原因は、おそらくPowerShellを管理者権限で実行していなかったことだと思います。

また、一番最初に目に入ったPowerShellを使用してしまったことも要因の一つかもしれません。

失敗した原因や具体的な手順はすべて公開するので、安心してください!
かつて私もStable Diffusionのインストールに挑戦したものの、エラー続きで挫折した経験があります。

それでも今回成功できたので、誰でもできるはずです。

方法はとても簡単です。ChatGPTをアドバイザーとして活用しながら進めます。
もちろん「Claude」や「Gemini」など他のAIでも大丈夫だと思いますが、今回は「ChatGPT-4o」を使用しました。

無料版でも少しは使えるという記事を読んだ記憶があるので、気軽に試せると思います。
「Win11にAMD ROCm™ソフトウェアをインストールする方法 詳しく 初心者」などと入力して、作業をスタートしましょう。

ChatGPT-4oの回答は非常に正確で、公式HPにあるコードやインストールバージョンを確認しながら進めても間違いは見つかりませんでした。

ただし、作業を始める前に重要なポイントが2つあります。
これを行っていないと、私のように途中でやり直しをする羽目になるかもしれませんので注意してください!

インストールした環境

Windows 11 Home 23H2
AMD Ryzen 9 5900X
AMD RADEON RX 79000 XT 20GB
ドライバーVer:24.10.1

※ドライバーVer24.12.1のリリースノートに下記の記載があります。

Windows Subsystem for Linux(WSL 2)の正式サポートにより、対応ハードウェアを使用するユーザーは、Windowsシステム上でAMD ROCm™ソフトウェアを使用して開発できるようになり、デュアルブートのセットアップが不要になります。
WSL 2のサポートが追加されました。

どうやら、WSL 2のインストールは引き続き必要ですが、デュアルブート環境を構築する必要は無くなったようです。

なんだか良くわからないので、Gpt先生に確認したところ下記の様な回答です。

手順の中で、特定のアプリケーション(例:PyTorch)を使用しない場合、そのインストール手順は省略可能です。例えば、PyTorchを使用しない場合は、以下の手順を省略できます。

  1. PyTorchおよび関連ライブラリのインストール:
    • sudo apt install python3-pip -y
    • pip3 install --upgrade pip wheel
    • wgetコマンドでのtorchtorchvisionpytorch_triton_rocmの各ホイールファイルのダウンロード
    • pip3 uninstallおよびpip3 installコマンドでの各ライブラリのアンインストールとインストール
    • pip3 install torchaudio==2.1.2
  2. WSL内でのライブラリ設定:
    • location変数の設定
    • cd ${location}/torch/lib/
    • rm libhsa-runtime64.so*
    • cp /opt/rocm/lib/libhsa-runtime64.so.1.2 libhsa-runtime64.so

これらの手順は、PyTorchおよび関連ライブラリを使用する場合に必要となります。したがって、PyTorchを使用しない場合は、これらの手順を実行する必要はありません。

部分的に省略できるようですが、Gpt先生が言うには省略しない方が問題が発生しにくいそうです。

それでは、ROCmインストール開始です。

事前準備(重要なPOINTが2つ

1. 仮想マシンプラットフォームを有効化

WSL2は仮想化技術を使用します。Windowsの設定で仮想マシンプラットフォームを有効化しましょう。

手順1: Windows機能の有効化

  1. Windowsの検索バーに「Windowsの機能」と入力
  2. 「Windowsの機能の有効化または無効化」を選択。
  3. 以下の項目にチェックを入れます:
    • Windows Subsystem for Linux
    • 仮想マシンプラットフォーム(Virtual Machine Platform)
  4. 「OK」をクリックし、設定を保存。
  5. PCを再起動。

手順2: PowerShellで有効化

上記が難しい場合、PowerShellで次のコマンドを実行しても有効化できます:
Windowsの検索バーに「PowerShell」と入力

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

実行後、PCを再起動します。


2. BIOSで仮想化を有効化

BIOS設定で仮想化技術(Intel VT-x または AMD-V)を有効にします。

手順

  1. PCを再起動し、BIOS/UEFI設定画面に入ります(通常は起動時にDelキーやF2キーを押します)。
  2. BIOSメニュー内で以下の項目を探します
    • Intel Virtualization Technology または AMD-VSVM
    • 名前が異なる場合もあるため、「仮想化」に関連する項目を探してください。
      該当項目を「Enabled(有効)」に設定します。
  3. 設定を保存してBIOSを終了(通常はF10キー)。
  4. 再起動後、仮想化が有効化されます。

GIGABYTE AORUS ELITE V2の場合

Tweaker→Advanced CPU Settings→SVM MODE「有効」

Tweakeのタブをクリック⇩


Advanced CPU Settingsをクリック⇩

SVM MODEをクリックして「有効」にします。⇩

「SAVE&Exit」設定を保存して終了です。

確認

仮想化が有効になったか確認するには:

  1. タスクマネージャを開くCtrl + Shift + Esc)。
  2. 「パフォーマンス」タブ → 「CPU」を選択。
  3. 「仮想化」が「有効」と表示されていればOK。

Windows 11 で AMD ROCm™ ソフトウェアを実行する方法

ステップ1:


Windows Powershell から WSL をインストールします (Ubuntu 22.04 をインストールします - それ以降のバージョンではエラーが発生します)
AMD公式HPより

PowerShell(管理者権限)を開き、以下のコマンドを実行します⇩
特徴は「右クリック」で貼り付け

管理者権限ではないPowershell ⇩
特徴は「Ctrl+V」で貼り付けできること。

STEP1.WSLのインストール

WSLのインストール

PowerShell(管理者権限)を開き、以下のコマンドを実行します:cssコードをコピーするwsl --install

これをコピー(Ctrl+C)して右クリックで貼り付け

wsl --install

これで※Ubuntuがデフォルトでインストールされます。
※Ubuntu(ウブントゥ)は、Linuxの初心者向けのOSになります。

STEP2. AMD ROCm™ソフトウェアをインストールする

下記のコードをコピーして順番に貼り付け実行していきます。

sudo apt update

「Enter」で実施。

エラーが発生したら、ChatGptに貼りつけて、次の指示を仰ぎます。

例えばChatGptに下記の様に貼り付けします。

【エラー内容←これは書かなくてもちゃんと答えてくれます
sudo : 用語 'sudo' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されま
せん。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行し
てください。
発生場所 行:1 文字:1

  • sudo apt update
  • ~~~~
    • CategoryInfo : ObjectNotFound: (sudo:String) [], CommandNotFoundException
    • FullyQualifiedErrorId : CommandNotFoundException】

回答:このエラーは、PowerShellやコマンドプロンプトでsudoを直接実行しようとした際に発生する典型的な問題です。sudoはLinux(またはWSL)環境で動作するコマンドであり、Windowsのコマンドライン環境では使用できません。

以下の手順で解決できます。
省略・・・。

このように対応策の指示を出してくれるので、その通りに対応していけば良いです。

コードの意味を知りたい場合も貼りつけて、「これは何をしているの」のように聞けば教えてくれます。

次に貼りつけるコードはこれです。⇩

wget https://repo.radeon.com/amdgpu-install/6.1.3/ubuntu/jammy/amdgpu-install_6.1.60103-1_all.deb

「Enter」で実施。

次に貼りつけるコードはこれです。⇩

sudo apt install ./amdgpu-install_6.1.60103-1_all.deb

「Enter」で実施。

次に貼りつけるコードはこれです。⇩

amdgpu-install -y --usecase=wsl,rocm --no-dkms

「Enter」で実施。

もし改行されるだけで、何も反応がないときは上手く動作していない可能性が高いです。
直前のやり取り、または、それまでのやり取りを全てコピーして「ChatGpt」に貼りつけてください。

回答:このエラーは、WSLにLinuxディストリビューションがインストールされていないために発生しています。以下の手順で問題を解決し、ディストリビューションをインストールしてください。

とにかく、工程ごとに貼りつけていけば、正常に出来ているかどうかの判断や、確認の仕方を教えてくれます。

このあたりのエラーはPowerShell(管理者権限)を使用しなかったことにあると思います。
そのまま続けて、最後は、GPUが認識出来なくてやり直しています。

STEP3:AMD ROCm™ ソフトウェアと WSL 用の Torch をインストールする

ここでは7回コードを貼りつけます。

sudo apt install python3-pip -y

pip3 install --upgrade pip wheel

wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.1.3/torch-2.1.2%2Brocm6.1.3-cp310-cp310-linux_x86_64.whl

wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.1.3/torchvision-0.16.1%2Brocm6.1.3-cp310-cp310-linux_x86_64.whl

wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.1.3/pytorch_triton_rocm-2.1.0%2Brocm6.1.3.4d510c3a44-cp310-cp310-linux_x86_64.whl

pip3 uninstall torch torchvision pytorch-triton-rocm numpy torchaudio

pip3 install torch-2.1.2+rocm6.1.3-cp310-cp310-linux_x86_64.whl torchvision-0.16.1+rocm6.1.3-cp310-cp310-linux_x86_64.whl pytorch_triton_rocm-2.1.0+rocm6.1.3.4d510c3a44-cp310-cp310-linux_x86_64.whl numpy==1.26.4
pip3 install torchaudio==2.1.2

7つのコードを全て貼りつけて実行したら、念の為に、それまでのやり取りを全てコピーして「ChatGpt」に貼りつけてください。
問題があれば教えてくれます。

WSL の最後のシーケンスを入力

私は、この作業で2回 「PowerShell(管理者権限)を使用しなかった」ことで、ここでつまずきます。

ここでは4回コードを貼り付けします。

①: torchライブラリがインストールされているディレクトリを取得します。

location=`pip show torch | grep Location | awk -F ": " '{print $2}'`


: torchライブラリのlibディレクトリに移動します。

cd ${location}/torch/lib/

③:libhsa-runtime64.soという名前を含むファイルを削除します。

rm libhsa-runtime64.so*

④: /opt/rocm/libディレクトリから特定のバージョンのlibhsa-runtime64.so.1.2をコピーし、名前をlibhsa-runtime64.soに変更します。

cp /opt/rocm/lib/libhsa-runtime64.so.1.2 libhsa-runtime64.so

以上で作業は完了です。

AMD ROCmを使用できるようになりました。

念の為の動作確認

以下の手順で、さらに動作確認を行うことをお勧めします:

  1. GPU名の確認 次のコードをPython内で実行してください
  2. :pythonコードをコピーする
  3. print(torch.cuda.get_device_name(0))
  4. 正しいGPU名(例: "Radeon RX 7900 XT" など)が表示されれば、問題ありません。
  5. 簡単なテンソル計算の実行 GPU上で計算が動作するか確認するため、以下を試してください
  6. :pythonコードをコピーする
  7. x = torch.rand(3, 3).cuda() print(x)
  8. 結果が表示されれば、GPU上でテンソルの操作が正常に動作しています。

KritaにDiffusionをインストール

導入手順は近日中に追加します。

ポイントは3つ

Local Managed Serverを選択(MY PCにインストールされる)

Use DirectML(GPU)を選択(CUDAではないよ)

レ点は全て付ける。(インストールに1時間以上は掛かりました)

テキストのコピーはできません。