0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ASRock 4X4 BOX-8640U上のAMD iGPU(Radeon 760M )に Lemonadeを動かして、生成AIのローカル推論ベンチマーク

0
Last updated at Posted at 2026-04-02

以下の一連の投稿の第二弾です。

  1. ASRock 4X4 BOX-8640U上のDebianでAMD iGPU(Radeon 760M)にLemonadeを動かすまで #Vulkan - Qiita

  2. ASRock 4X4 BOX-8640U上のAMD iGPU(Radeon 760M )に Lemonadeを動かして、生成AIのローカル推論ベンチマーク #Vulkan - Qiita

  3. ASRock 4X4 BOX-8640U上のProxmoxでLemonade Serverをsystemdデーモンとして常駐させる #Vulkan - Qiita

1. はじめに

AMD Radeon 760M(RDNA 3, 8 CU)を搭載したミニPCASRock 4X4 BOX-8640Uに、AMDが開発するオープンソースのローカルLLMサーバー Lemonade を導入し、Vulkanバックエンド経由でLLM推論のパフォーマンスを計測しました。

iGPU(統合GPU)は専用VRAMを持たず、システムメモリを共有します。「iGPUでLLMを動かすのは遅いのでは?」「そもそも大きいモデルは動くの?」という疑問に対して、実測データでお答えします。

また、Proxmox VEのベアメタルホスト上でLLMサービスとVMを同居させる場合のメモリ容量計画についても検討しています。

2. 検証環境

2-1. ハードウェア

項目 詳細
マシン ASRock 4X4 BOX-8640U
CPU AMD Ryzen 5 8640U(6C/12T, 最大4.9GHz)
iGPU Radeon 760M(RDNA 3, 8 CU, 512シェーダー)
メモリ DDR5-5600 デュアルチャネル 96GB(48GB × 2)
理論メモリ帯域 約89.6 GB/s
BIOS VRAM (Share Memory) 512MB(最小設定)

2-2. ソフトウェア

項目 詳細
OS Proxmox VE(Debian ベース, ベアメタル)
Lemonade v10.0.1
推論バックエンド llama.cpp (Vulkan)
Vulkanドライバー Mesa RADV (Vulkan 1.4.305)

2-3. テスト対象モデル

すべてQ4_K_M量子化のGGUF形式です。

モデル パラメータ数 重みサイズ(概算)
Qwen3-0.6B-GGUF 0.6B ~0.5 GB
Qwen3-1.7B-GGUF 1.7B ~1.2 GB
Qwen3-4B-GGUF 4B ~2.7 GB
Qwen3-8B-GGUF 8B ~5.0 GB
Qwen3.5-27B-GGUF 27B ~17 GB

2-4. Lemonade とは

Lemonade は AMD がスポンサーするオープンソースのローカルLLMサーバーです。llama.cpp / ONNX Runtime / FastFlowLM などの推論エンジンをラップし、OpenAI互換のAPIを提供します。

Vulkan バックエンドにより、ROCm が正式サポートされていない Radeon 760M のような iGPU でも GPU アクセラレーションを利用できます。

インストールは以下の記事を参照してください。
DebianでAMD iGPU(Radeon 760M)にLemonadeを動かすまで #Vulkan - Qiita

実行の概要としては以下のようになります。

# サーバー起動(Vulkan バックエンド)
RADV_PERFTEST=nogttspill lemond --llamacpp vulkan --log-level debug

# モデルを取得して実行
lemonade pull Qwen3-8B-GGUF
lemonade run Qwen3-8B-GGUF --llamacpp vulkan

2-5. アーキテクチャ概要

以下は、今回の検証構成の全体像です。

3. iGPUのVRAM設定に関する発見

3-1. BIOSのShare Memory設定

ASRock 4X4 BOX-8640UのBIOSでは、Advanced → Chipset Configuration → Share Memory でiGPUに予約するVRAMを設定できます。選択肢は Auto / 64M / 128M / 256M / 512M / 1024M / 2048M です。

3-2. RADVドライバーの実際の挙動

Vulkanのメモリヒープを確認すると以下のような結果でした。

$ vulkaninfo | grep -A10 "memoryHeaps"
memoryHeaps: count = 2
    memoryHeaps[0]:
        size   = 15.77 GiB    ← Host Visible(フラグなし)
        flags: None
    memoryHeaps[1]:
        size   = 31.53 GiB    ← Device Local
        flags: MEMORY_HEAP_DEVICE_LOCAL_BIT

BIOSで512MBしか予約していないにもかかわらず、RADVドライバーは31.5GBをDevice Localヒープとして公開しています。

一方、DRM(カーネルのGPU管理層)はBIOS設定通りの値が出力されます

$ cat /sys/class/drm/card0/device/mem_info_vram_total
536870912   # = 512MB

3-3. なぜ影響しないのか

ディスクリートGPU(例: RTX 3090)では、VRAMは物理的に別のメモリチップ(GDDR6X等)です。そのため、VRAMに載るか載らないかで大きな速度差が生じます。

しかし iGPU の場合、「VRAM」もシステムRAMも物理的には同じDDR5メモリです。BIOSの Share Memory はDDR5の中から「GPU専用として予約するか否か」の違いにすぎず、アクセス帯域は同一です。

Mesa RADVはこの事実を反映して、BIOS設定に関係なくシステムRAMの大部分をDevice Localとして公開しています。

結論: BIOSのVRAM設定は512MB(デフォルト)のままで問題ありません。2048MBに変更してもパフォーマンスには問題無さそうです。

4. ベンチマーク結果

4-1. トークン生成速度

各モデルに同一プロンプトを投げ、128トークンを生成させた結果です。各条件3回測定の中央値を採用しています。

モデル Gen TPS 体感
Qwen3-0.6B 142 tok/s 瞬時
Qwen3-1.7B 59 tok/s 非常に速い
Qwen3-4B 27 tok/s 速い
Qwen3-8B 15 tok/s 会話に十分
Qwen3.5-27B 3.9 tok/s やや遅い

モデルサイズが倍になるとTPSがほぼ半減しています。これは典型的なメモリ帯域律速のパターンです。

4-2. Prefill速度とTTFT

Prefill(プロンプト処理)はGPU演算能力がボトルネックになるフェーズです。短いプロンプト(19トークン)と長いプロンプト(144トークン)の2パターンで測定しました。

モデル Prefill TPS (short) Prefill TPS (long) TTFT short TTFT long
Qwen3-0.6B 537 tok/s 1,266 tok/s 35ms 114ms
Qwen3-1.7B 301 tok/s 543 tok/s 49ms 265ms
Qwen3-4B 35 tok/s 227 tok/s 123ms 636ms
Qwen3-8B 90 tok/s 118 tok/s 211ms 1,124ms
Qwen3.5-27B 14 tok/s 28 tok/s 1,481ms 5,256ms

長いプロンプトの方がPrefill TPSが高い傾向が見られます。これはバッチ処理の効率が上がるためです。

4-3. メモリ帯域効率

DDR5-5600デュアルチャネルの理論帯域幅(89.6 GB/s)に対して、各モデルの帯域利用効率を計算しました。

モデル 重みサイズ 理論上限 TPS 実測 TPS 帯域効率
0.6B ~0.5 GB ~179 tok/s 142 tok/s 79%
1.7B ~1.2 GB ~75 tok/s 59 tok/s 79%
4B ~2.7 GB ~33 tok/s 27 tok/s 82%
8B ~5.0 GB ~18 tok/s 15 tok/s 83%
27B ~17 GB ~5.3 tok/s 3.9 tok/s 74%

メモリ帯域の約80%を活用できており、iGPU + Vulkan としては非常に良好な結果です。

5. Radeon 780M との比較

5-1. スペック差

項目 Radeon 760M Radeon 780M
CU数 8 12 +50%
シェーダー数 512 768 +50%
最大クロック 2.8 GHz 3.0 GHz +7%
理論FP32性能 ~2.87 TFLOPS ~4.3 TFLOPS +50%
メモリ システムRAM共有 システムRAM共有 同一

5-2. LLM推論への影響

780MはCU数が50%多いですが、LLM推論への影響はフェーズによって大きく異なります。

フェーズ 760M vs 780M 理由
トークン生成 差は0〜5% メモリ帯域律速のため、CU数は関係しません
プロンプト処理 780Mが30〜50%速い 演算律速のため、CU数の差がそのまま効きます

つまり「返答が出てくる速度」は760Mでも780Mでもほぼ変わらないと推測されます。
差が出るのは長いプロンプトを入力した際のTTFT(初回応答時間)のみでしょう。

5-3. 性能向上に効くのはメモリ帯域

GPU CU数を増やすよりも、メモリ帯域の改善の方がトークン生成速度に直結します。

メモリ構成 帯域 推定 TPS (8B) 対DDR5-5600比
DDR5-5600 (本環境) 89.6 GB/s 15 tok/s 基準
DDR5-7200 115.2 GB/s ~19 tok/s +28%
LPDDR5X-7500 120 GB/s ~20 tok/s +34%

今後の APU では LPDDR5X-7500 搭載機が増えてくるため、同じ760M/780Mでもメモリが速い機種の方がLLM推論に有利です。

6. Proxmox上でのVM容量プランニング

6-1. モデル別メモリ使用量

Proxmoxのベアメタル上でLLMサービスを動かす場合、VMに割り当てられるメモリの残量を把握する必要があります。推論中の free コマンドの出力をもとに計測しました。

LLMモデル メモリ使用量 Available VM割り当て可能
なし (ベースライン) ~34 GB ~60 GB ~56 GB
Qwen3-0.6B 34.6 GB 59.0 GB ~55 GB
Qwen3-1.7B 36.3 GB 57.3 GB ~53 GB
Qwen3-4B 39.5 GB 54.1 GB ~50 GB
Qwen3-8B 44.6 GB 49.0 GB ~45 GB
Qwen3.5-27B 70.6 GB 23.1 GB ~19 GB

※ VM割り当て可能 = Available - 4GB(OS/Proxmox予約分)

6-2. スイートスポット

8Bモデルがスイートスポットです。15 tok/s は人間の読む速度(約5 tok/s)の3倍で、チャット用途に十分な速さです。VM用メモリも45GB残せるため、複数のVMを同時に稼働できます。

27Bモデルは最高品質ですが、メモリの大半(+36GB)を消費し、3.9 tok/s とやや遅めです。常時稼働よりは、必要な時だけロードして使う運用が現実的です。

7. ベンチマーク手法

7-1. 測定方法

再現性を確保するため、自動化したシェルスクリプトで計測しています。

ポイント

  • /api/v1/chat/completions のレスポンスに含まれる timings オブジェクトから直接メトリクスを取得しています
  • /stats エンドポイントはレースコンディションが発生しやすいため使用していません
  • temperature: 0.0 で決定論的な出力を得ることで、再現性を確保しています
// レスポンスに含まれる timings の例
"timings": {
    "predicted_per_second": 14.81,   //  生成TPS
    "prompt_per_second": 118.32,     //  Prefill TPS
    "prompt_ms": 1124.34,            //  TTFT (ms)
    "predicted_ms": 8643.74,         //  生成時間 (ms)
    "predicted_n": 128,              //  生成トークン数
    "prompt_n": 144                  //  プロンプトトークン数
}

7-2. Vulkan最適化設定

# RADVドライバーのGTTスピル防止(llama.cpp Vulkanスレッドの推奨設定)
export RADV_PERFTEST=nogttspill

# GPU電力プロファイルをパフォーマンスモードに
echo "high" > /sys/class/drm/card0/device/power_dpm_force_performance_level

RADV_PERFTEST=nogttspill は llama.cpp の Vulkan Performance Discussion で推奨されている設定で、GTTメモリへの不要なスピルを防止してパフォーマンスを改善します。

8. まとめ

発見 内容
BIOS VRAM設定 変更不要です。RADVが自動的にシステムRAMをDevice Localとして公開します
性能の律速要因 DDR5メモリ帯域(89.6 GB/s)でトークン生成速度が決まります
760M vs 780M トークン生成速度はほぼ同じと考えられます。Prefillのみ780Mが30-50%速くなるでしょう
96GB RAMの恩恵 27Bモデルも問題なく動作します。8Bモデルなら45GB残してVM運用も可能です

iGPUでのLLM推論は「専用GPU買えない環境の妥協策」と思われがちですが、96GBの大容量メモリと組み合わせることで、8Bクラスのモデルを会話用途に十分な速度で動かしつつ、Proxmox上のVM運用も両立できます。

メモリ帯域がボトルネックであるため、今後DDR5-7200やLPDDR5X-7500搭載のAPUに移行すれば、GPU CU数を増やすよりも大きなパフォーマンス向上が見込めます。

9. 参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?