*当サイトのリンクにはAmazonアソシエイトやアフィリエイトリンクが含まれております。

ROCm10 を llama.cpp と stable-diffusion.cpp で試した備忘録

つい最近「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方式で様子見か、もはやこの方式のままやり過ごすのも良いかも知れない。

ではでは。


おすすめのコンテンツ

広告

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください