🍣

Ryzen AI Max+ 395 マシン (Ubuntu 24.04.3) への TheRockでのROCm Nightly 導入

に公開

前回は、Strix HaloのMinisforum MS-S1 Maxに、AMD 公式の ROCm 7.9.0 previewをインストールしました。しかし、ROCm 7.9.0 preview では公式のサポートがまだ不十分なようで、現状では活用しづらいことがわかり、TheRockの ROCm Nightly版を入れてみることにしました。細かく躓くところは多かったのですが、ここでは、できるだけ円滑に進められるように整理して記録します。

メモリ割当の変更

  • TheRockのインストールでは、ソースコードのビルドを行います。このとき実はメモリがたっぷり必要です。VRAMにたくさん割り当てていると、メモリ不足でビルドに失敗しますので、BIOSで通常のRAMにたっぷり割り当ててください。ビルドの途中で、メモリ消費が70GBくらいになっているのを目撃しましたので、96GBくらい割り当てておくと安心かと思います。

仮想環境の作成

  • 今回もUVでPythonの仮想環境を作成し、そのなかで ROCmのビルドを行います。
$ git clone https://github.com/ROCm/TheRock.git
$ cd TheRock/
$ uv venv .venv
$ source .venv/bin/activate
$ uv pip install -r requirements.txt 
$ uv pip install dvc dvc_s3
$ uv run python ./build_tools/fetch_sources.py 
  • 公式には snapで dvcを入れたら良いと書いてありますが、uvで問題ありませんでした。
  • 最後の fetch_sources.py には、 --update をつけるとソース更新、 --tag rocm-7.x.y のような形でROCmのバージョン指定ができるようです。

ビルド

  • cmakeの実行時に、仮想環境のPythonが呼び出せるようにし、また、mesonとCppHeaderParserが使えるようにしておく必要があります。
  • おおむね3時間くらい掛かります。
$ PATH=$PATH:.venv/bin/
$ uv pip install meson CppHeaderParser
$ cmake -B build -DPython3_EXECUTABLE=.venv/bin/python3 -GNinja . -DTHEROCK_AMDGPU_FAMILIES=gfx1151 -DTHEROCK_ENABLE_HIP_RUNTIME=ON
$ cmake --build build  
$ cd ./build/dist/rocm
$ ln -s lib/llvm/amdgcn amdgcn
  • 最後のシムリンクは、ディレクトリ構成の変更に対応するものです。これをしておかないとテストが通りません。

環境変数の設定

  • ビルド後、ROCmパスを設定します(~/.bashrcに追加)。
export ROCM_PATH=/path/to/TheRock/build/dist/rocm  # ビルド出力パスに置き換え
export PATH=$PATH:$ROCM_PATH/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROCM_PATH/lib
source ~/.bashrc

動作確認

$ rocminfo 
$ amd-smi
$ hipconfig --platform 
  • 本件作業日(2025/10/30)時点で、ROCm 7.10.0 がインストールされたことが確認できました。

テストの実行

  • 26のテストが実行されます。無事100%パスできました。
cd ./buildcd
ctest -V

そういえば

  • 最後にVRAMにメモリをたっぷり割当てし直さないとですね。

Discussion