つい最近「ROCm10」が発表されましたね。
7.14から一気に10へ。
10周年でしたっけ??
という事でワンチャン凄いかったら嬉しい!!と思い試しました。
tarball方式で導入
まぁ ROCmですからね・・・
一応色々安全にやろとう思いAIに相談したところ『tarball方式でやると良いよ』と教えてくれました。
という事で久々にコードのメモ残します。
ROCm 10をダウンロード
mkdir -p "$HOME/opt/rocm-10.0" mkdir -p "$HOME/Downloads/rocm-10.0" cd "$HOME/Downloads/rocm-10.0" wget -c https://stable.repo.amd.com/rocm/core/tarball/therock-dist-linux-gfx110X-all-10.0.0.tar.gz
tarballを解凍
tar -xf therock-dist-linux-gfx110X-all-10.0.0.tar.gz \ -C "$HOME/opt/rocm-10.0"
ターミナルをROCm10へ切り替え
export ROCM_PATH="$HOME/opt/rocm-10.0" export HIP_PATH="$ROCM_PATH" export PATH="$ROCM_PATH/bin:$ROCM_PATH/lib/llvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" export LD_LIBRARY_PATH="$ROCM_PATH/lib:$ROCM_PATH/lib/llvm/lib"
確認
command -v hipcc command -v rocminfo hipconfig amd-smi version
/home/ユーザー名/opt/rocm-10.0/bin/hipcc になってればOK。
llama.cppをROCm10向けに新規ビルド
cd /path/to/llama.cpp HIPCXX="$(hipconfig -l)/clang" \ HIP_PATH="$(hipconfig -R)" \ cmake -S . -B build-rocm10 \ -DGGML_HIP=ON \ -DGPU_TARGETS=gfx1100 \ -DCMAKE_BUILD_TYPE=Release \ -DLLAMA_CURL=ON
そんでビルド。
cmake --build build-rocm10 --config Release -j"$(nproc)"
確認も一応やる。
./build-rocm10/bin/llama-cli --version ./build-rocm10/bin/llama-cli --list-devices
ROCm10+llama.cpp:今のトコロの感想
数値データは消しちゃったの出しませんが・・・
やっぱりvulkanのが早い。
PPはROCmのが早い事がありますが、では前versionより早いか?というと微妙な気がする・・・。
同じくらいじゃない?って感じ。
TGはvulkanがやっぱり早い。
長文タスクでどうなるか? なのですが、それはまだ試してないし、vulkanのがメモリ低く抑えられるのでROCmに移るかは分からない。
多分このままじゃvulkanを選ぶかも。
参考までに、llama.cpp純正のUIで同プロンプトの結果は
Generation Speed
vulkan:57.09 t/s
ROCm10:44.81 t/s
prompt processing Speed が
vulkan:387.89 tokens/s
ROCm10:539.84 tokens/s
でした。
数値に関係しそうな相違点として、
vulkanは cache-type-k: f16 | v: q8_0
ROCm10は cache-type-k: q8_0| v: q8_0
です。
stable-diffusion.cppをROCm10向けに新規ビルド
LD_LIBRARY_PATH かわります。
export ROCM_PATH="$HOME/opt/rocm-10.0" export HIP_PATH="$ROCM_PATH" export PATH="$ROCM_PATH/bin:$ROCM_PATH/lib/llvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" export LD_LIBRARY_PATH="$ROCM_PATH/lib:$ROCM_PATH/lib/llvm/lib:$ROCM_PATH/lib/rocm_sysdeps/lib"
そんでビルド
cd /path/to/stable-diffusion.cpp export GFX_NAME=gfx1100 cmake -S . -B build_rocm -G "Ninja" \ -DCMAKE_C_COMPILER=clang\ -DCMAKE_CXX_COMPILER=clang++ \ -DSD_HIPBLAS=ON \ -DCMAKE_BUILD_TYPE=Release \ -DGPU_TARGETS=$GFX_NAME \ -DAMDGPU_TARGETS=$GFX_NAME \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON cmake --build build_rocm --config Release
ROCm10+SD.cpp:今のトコロの感想
私の環境ではrocm7.2のほうが早かった。
(LTX-2.3の動画生成時)
ただしこの記事を書いている時点ではSD.cppのコミットに ROCm10 に関する内容は無かったから、最適化されてないかも。
全体的な感想
まだアプデしなくても良いかな。
もうしばらくtarball方式で様子見か、もはやこの方式のままやり過ごすのも良いかも知れない。
ではでは。
