AMD Ryzen 780M (RADV) 向け Vulkan 推論最適化:MMVQ 高速化とマルチ GPU 対応
目次
llama.cpp は ggml-org が開発する C/C++ の LLM 推論エンジン。Vulkan バックエンドで AMD iGPU でも動く。
今回の要点
- RDNA3 環境 (780M) 向けに proprietary driver での MMVQ 最適化が適用され、推論速度が改善した。
- Qwen3.6-35B-A3B や Gemma4 26B 等の大規模モデルでも、Vulkan 経由で 20 tok/s 前後の生成速度が実測されている。
- 複数の GPU がホストメモリを共有可能になり、初期化バグも修正された。
- Vulkan バックエンドが IQ4_XS 量子化を正式サポートし、32GB UMA 環境での選択肢が広がった。
- RADV (Mesa) ドライバ側でも gfx1103 向けの SPIR-V 最適化とパフォーマンス修正が行われている。
Vulkan MMVQ最適化で780Mの推論速度が改善
llama.cpp では RDNA3 世代の AMD proprietary driver 向けに、4-row MMVQ workgroup が 8 列のみ適用され、5〜7 列はデフォルトの fallback に切り替わる最適化が行われた。これにより、gfx1103 (780M) を搭載した環境でも proprietary driver 使用時に推論速度の改善が確認されている PR#29679。
この最適化の効果は、実測データでも確認できる。Lenovo ThinkPad T14 Gen 5 (Ryzen 7 8840U, 780M, 64GB DDR5) 環境では、Qwen3.6-35B-A3B MoE モデルが llama.cpp Vulkan Q6_K で 20 tok/s の生成速度を達成した theagenttimes。また、MINISFORUM UM890 Pro (780M, 32GB LPDDR5) では Gemma4 26B Q4_K_M が tg64: 25.00 t/s, pp128: ~208.72 t/s を記録し、Ollama の 4.5 t/s と比較して 5-6 倍の改善が見られた Discussion #24222。
MoE モデルの prefill 実測でも、gpt-oss-20B MXFP4 MoE の Vulkan tg128 は 20.84 t/s、Qwen3.6-35B-A3B の Vulkan tg128 は 15.81 t/s となり、ROCm との比較でも安定した性能が示されている Discussion #27519。
利用者の報告
16GB メモリ環境では、Vulkan バックエンドが ROCm 実装では発生する Out Of Memory (OOM) 問題を回避し、128K のコンテキスト長でも推論可能にする報告がある。Vmarcelo49 は RX 9070 XT 16 GB 環境で、Vulkan 版の llama.cpp server (b11176) を使用した際、131072 のコンテキスト長で 37.4 tok/s のデコード速度を達成したと報告している。一方、ROCm 版 (b10884) では 65536 コンテキストでも 33.5 tok/s にとどまり、Vulkan 側が長文コンテキスト処理で優位であることを示した Issue #119。
macOS 環境では、Vulkan/MoltenVK 経由で AMD 離散 GPU (RX 6800 XT) を使用する場合、デフォルトの 4 server slots 設定で 70 トークン以上のプロンプトを処理すると ErrorDeviceLost が発生し GPU ドライバリセットを引き起こす報告がある。ronwal は、この問題が --parallel 1 に設定することで回避できることを確認した Issue #29352。
VulkanバックエンドのマルチGPUホストメモリ共有対応
llama.cpp の Vulkan バックエンドにおいて、複数の GPU デバイスが host-visible メモリにアクセス可能になる変更が行われた。これにより、マルチ GPU 構成での読み込み時間の短縮や transfers の改善が期待できる PR#29741。
同時に、Vulkan バックエンドの初回デバイス初期化で vkCreateFence: Invalid device が発生し、並列起動時にクラッシュするバグが修正された PR#29766。この問題は NeMo-Speech.cpp の ggml-vulkan でも再現し、Windows 11 + RTX 3090 環境で確認されていた Issue #29764。
VulkanバックエンドがIQ4_XS量子化を正式サポート
Vulkan バックエンドが IQ4_XS 量子化フォーマットを正式サポートした PR#29415。これにより、32GB UMA 環境を持つユーザーは新しい量子化タイプを使用可能になった。また、WebGPU 向けに MMVQ 量子化フォーマット (Q1_0/Q5_0/Q5_1/Q3_K/Q5_K/Q6_K/MXFP4) のサポートも追加されており、Vulkan 環境でもフォーマット認識が改善される可能性がある PR#29483。
RADV Vulkanドライバのパフォーマンス修正
Mesa の RADV Vulkan ドライバにおいて、gfx1103 (780M) に影響するパフォーマンス修正と SPIR-V 最適化の改善が行われた PR#15193 PR#15190。これらの修正は、Vulkan バックエンド経由の llama.cpp 推論速度に波及する。
Ollamaの最新モデル追加とAMD iGPU対応
Ollama が gemma4、qwen3.5、qwen3.8-flash-next、kimi-k3、glm-5.3 等の最新モデルを追加した Ollama Search。これらのモデルは AMD iGPU でも GGUF 経由で使用可能である。
780M 等の AMD iGPU 環境では、llama.cpp PR#26081 (Auto load-mode for iGPU) が重要となる。この変更は Vulkan バックエンドで mmap を自動回避し、BIOS 設定 (Fixed VRAM) の確認も必須となる 。
出典
- llama.cpp PR#29679: RDNA3 AMD proprietary driver MMVQ最適化
- Community: Qwen3.6-35B-A3B on 780M (20 tok/s generation) - theagenttimes
- GitHub Discussion #24222: Gemma4 26B on 780M iGPU via Vulkan
- GitHub Discussion #27519: MoE prefill on 780M via Vulkan measurements
- Issue #119: Proposal: an `amd-vulkan` backend for AMD cards
- Issue #25: First Linux + NVIDIA run
- Issue #3676: 2 AMD GPU (gfx103X,gfx120X), lemonade backends install llamacpp
- Comment on Issue #3676: Implemented in PR #3721
- Issue #29352: Eval bug: Vulkan/MoltenVK + AMD discrete GPU: ErrorDeviceLost
- llama.cpp PR#29741: Vulkan複数デバイスホストメモリ共有
- Vulkan: 並列初期化バグ修正 (PR #29766)
- Vulkan bug: 並列初回初期化でvkCreateFence Invalid device (Issue #29764)
- llama.cpp PR#29415 (merged): Vulkan IQ4_XS MMQ/MMV support
- llama.cpp PR#29483 (merged): WebGPU MMVQ for Q1_0/Q5_0/Q5_1/Q3_K/Q5_K/Q6_K/MXFP4
- Mesa PR#15193: RADV Vulkan performance fixes
- Mesa PR#15190: RADV SPIR-V optimization improvements
- Ollama: gemma4, qwen3.5, qwen3.8-flash-next, kimi-k3 最新モデル追加
- Ollama: note.com [For 780M] llama.cpp PR#26081 automatically optimizes memory loading
SwitchBot公式ページ
クーポン「AF-4903」で5%引き(アフィリエイトクーポンになりますのでご協力お願いします)
割引の詳しい仕組みに関してはこちらのページを参照ください。
製品ごとの特徴・紹介動画は SwitchBot 製品ガイド にまとめています。