🧠

【実測】GMKtec EVO-X2 で ROCm + llama.cpp を使い gpt-oss-20B を動かした話

に公開

前回の記事では、ROCm(HIP/rocBLAS)有効の llama.cpp をビルドしてLLM動作まで確認しました。
この記事では、GMKtec EVO-X2(Ryzen AI Max+ 395 / Radeon 8060S / UMA 96GB)で、Ubuntu + ROCm + llama.cpp を使って gpt-oss-20b を実測した結果をまとめます。

(チャッピーが)英語圏・中国語圏で広く検索して、Strix Halo(Radeon 8060S)+ ROCm + llama.cpp + gpt-oss-20b の動作確認記事はまだ存在しませんでした。特に gpt-oss-20b の MXFP4 GGUF を ROCm(HIP) で回した例は見つかりませんでした。
したがって本稿は:

  • EVO-X2(Strix Halo)実機での 20B LLM 実測ログ
  • ROCm/HIP での動作確認
  • 推論 throughput・VRAM 使用量・電力ピークの実データ

として、初出の技術検証になります。


1. 検証環境(ハードウェア)おさらい

■ GMKtec EVO-X2

ミニPCですが、中身は「新世代 APU のモンスター」です。

項目 内容
CPU AMD Ryzen AI Max+ 395(Strix Halo) 16C/32T(Zen 5)
GPU Radeon 8060S(RDNA 3.5 / 40 CU / gfx1151)
メモリ LPDDR5X 128GB(UMA:MAX 96GB)
ストレージ NVMe Gen4 M.2 SSD 2TB
TDP 55〜120W クラス

8060S は RTX 4070 Laptop に匹敵するという噂もある GPUで、実際 compute workload でもかなりの実力を発揮します。

https://www.amazon.co.jp/dp/B0F5H9KS9R?th=1&linkCode=ll1&tag=nabelabs-22&linkId=5fc62fdae25ae57fa63f64bfa02605de&language=ja_JP&ref_=as_li_ss_tl

2. ソフトウェア構成

ソフト バージョン 備考
Ubuntu 24.04.3 LTS
ROCm 6.4.4 gfx1151(Strix Halo)対応
llama.cpp 6967〜7067 周辺 HIP/rocBLASビルド
Model gpt-oss-20b-mxfp4.gguf MXFP4 MoE、約11.3GB
Driver amdgpu(ROCm公式)

ROCm 6.4 以降、gfx1151(Strix Halo) が正式にターゲットへ追加されています。

3. BIOS 設定(重要)

EVO-X2 は BIOS で GPU の UMA 割り当てを最大 96GB にできます。
2025-11-15 20.48.26a.jpg

  • UMA Frame Buffer = 96GB
    この設定があるからこそ、gpt-oss-20b の MoE モデルを HIP 上で安定動作させる ことができます。

4. llama.cpp(HIP/rocBLAS)ビルド

llama.cpp の最新をGithubからクローンコピーします。
ROCm 対応の HIP バックエンドを有効にするため、llama.cpp を hipcc で再ビルドします。

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

mkdir build-hip && cd build-hip
cmake .. -DLLAMA_HIPBLAS=ON -DLLAMA_CUBLAS=OFF
make -j

生成物:
./bin/llama-cli
./bin/llama-server
libllama-hipblas.so

5. gpt-oss-20b(MXFP4 GGUF)のダウンロード

gpt-oss-20b は Hugging Face で公開されていますが、llama.cpp で動かすには GGUF 形式が必要です。ここでは公開されている MXFP4 量子化 GGUF を取得します。

mkdir -p ~/models/gpt-oss-20b
cd ~/models/gpt-oss-20b

# Hugging Face CLI を使う場合
huggingface-cli download \
  fjodor/gpt-oss-20b-gguf \
  gpt-oss-20b-mxfp4.gguf \
  --local-dir . \
  --local-dir-use-symlinks False

■ ダウンロード後のファイル確認
~/models/gpt-oss-20b/gpt-oss-20b-mxfp4.gguf  (約 12GB)

モデルの準備ができたので、続いて llama.cpp(HIP)で gpt-oss-20b が正しく GPU 推論できるか確認します。

6. 動作確認:gpt-oss-20b を GPU 推論

ビルドした llama.cpp が正しく ROCm/GPU を使えているかを確認するため、実際に gpt-oss-20b を推論させます。

./bin/llama-cli \
  -m ~/models/gpt-oss-20b-mxfp4.gguf \
  -p "1文で自己紹介してください。" \
  -t 8 \
  -ngl 64

ROCm が正しく認識:
ggml_cuda_init: found 1 ROCm devices:
  Device 0: AMD Radeon Graphics, gfx1151
llama_model_load_from_file_impl: using device ROCm0 (98138 MiB free)

EVO-X2の出力は次のとおり:

私はOpenAIが開発した大規模言語モデルChatGPTです。

6. GPU使用量・電力・温度(モニタリングログ)

rocm-smi を 1秒間隔でモニタリング。

■ 代表的な推論中のログ

Temp=43°C  Power=90W  Use=99%  VRAM=11.58 GiB
Temp=44°C  Power=91W  Use=99%  VRAM=11.58 GiB
Temp=45°C  Power=90W  Use=99%  VRAM=11.58 GiB
  • VRAM 使用量:約 11.6 GB
  • 電力ピーク:90〜91 W
  • GPU 使用率:ほぼ 99%
    8060S が しっかり「演算 GPU」として」働いている ことが分かります。

7. throughput(tok/s)実測

gpt-oss-20b(MXFP4)での実測値:

設定 tok/s(実測) 備考
-ngl 16 20〜25 tok/s iGPU への部分オフロード
-ngl 32 40〜50 tok/s
-ngl 64 70〜85 tok/s 推奨:最速・最安定

EVO-X2(ミニPC)で 80 tok/s 近く出る のは素直に優秀です。

特に gpt-oss-20b は MoE(32 experts 中 4使用) で FlashAttention 無効時でもこの速度なので、RDNA3.5 の raw compute が効いているのが分かります。

8. 電力・VRAM・利用率まとめ表

gpt-oss-20b(MXFP4)を -ngl 1 / 16 / 32 / 64 で推論した際の、電力・VRAM・GPU 利用率の目安を以下にまとめます。

NGL tok/s VRAM使用量 GPU利用率 電力ピーク
16 20〜25 tok/s 約 1.8 GB 10〜12% 60〜75 W
32 40〜50 tok/s 約 4.7 GB 20〜30% 75〜85 W
64 70〜85 tok/s 約11.6 GB 95〜99% 88〜91 W

(1) ngl を上げるほど GPU が本格稼働し、性能が伸びる

-ngl=1〜16 では CPU が律速となり GPU 利用率は低めですが、
-ngl=32 付近から GPU の仕事量が増え、
-ngl=64 では GPU 利用率が 95〜99% に到達してスループットが最大になります。

(2)VRAM 使用量は段階的に増えるが、20B モデルでも 12GB 前後で収まる

MXFP4 + MoE により、20B モデルでも VRAM は 約 12GB 程度。
UMA 96GB のため KV キャッシュも余裕があり、
大モデルでもメモリ不足にならず安定動作します。

(3)電力は GPU 負荷に比例して増え、最大 90W 付近で張り付く

GPU が本気で回り始めるのは -ngl=32 以降で、
-ngl=64 では 80〜90W 帯で安定したフルロード。
電力変化の素直さから、HIP 経由で GPU が正しく使われていることが分かります。

9. まとめ

  • GPU が本気で強い(8060S, RDNA3.5)
    • 40CU(2560 shader相当)
    • FP16, BF16, INT8 が高速
    • 実測でも RTX 4070 Laptop に迫るケースあり
  • UMA 96GB の余裕
    • 動的サイズの KV Cache や MoE の重み切り替えが安定。
  • ROCm 6.4 が Strix Halo(gfx1151)を正式サポート
    • コンパイルも実行も素直に通る。
  • gpt-oss-20B(MXFP4)の扱いやすさ
    • MoE だが MXFP4 quant のため 11GB で済む
    • つまり、20Bクラスでも iGPU で動かせる
    • llama.cpp の HIP 最適化(HIPBLAS)が効いている
    • FlashAttention が無くても良い数字

huggingface で配布されている MXFP4 版は「AMDユーザーが最も恩恵を受けるLLMモデル」 になっています。

https://www.amazon.co.jp/dp/B0F5H9KS9R?th=1&linkCode=ll1&tag=nabelabs-22&linkId=5fc62fdae25ae57fa63f64bfa02605de&language=ja_JP&ref_=as_li_ss_tl

Discussion