llama.cpp Vulkan 最適化で Ryzen 780M の推論速度と安定性が向上

ローカルLLMAMDVulkaniGPULLM最適化

目次
  1. 今回の要点
  2. Vulkan RDNA4 性能低下修正と 780M 向け最適化
  3. Vulkan 安定性向上:VRAM リーク・クラッシュ修正
  4. Vulkan での Qwen4Exp 対応と MoE 最適化
  5. Vulkan 新量子化 IQ4_XS/IQ3_S 対応で推論品質向上
  6. Vulkan Sparse FA と新量子化カーネルの統合
  7. 出典

llama.cpp は ggml-org が開発する C/C++ の LLM 推論エンジン。Vulkan バックエンドで AMD iGPU でも動く。

今回の要点

  • 推論速度の向上: RMS norm や GET_ROWS などの最適化により、AMD iGPU (gfx1103) での処理速度が改善。
  • 安定性の向上: VRAM リークやクラッシュを修正し、長時間の生成でも安定して動作するようになった。
  • 新量子化フォーマット対応: IQ4_XS や IQ3_S などの新量子化形式がサポートされ、より高品質な推論が可能に。
  • 大規模モデル対応: MoE 推論の最適化により、より大規模なモデルの動作範囲が広がった。

Vulkan RDNA4 性能低下修正と 780M 向け最適化

今回の更新では、Vulkan バックエンドにおける推論速度の最適化が行われた。具体的には、RMS norm 演算の融合や GET_ROWS 演算の型単位最適化、そして f16 accumulator の vector path 追加などが行われている。これらの最適化により、AMD iGPU (gfx1103) での推論速度が改善することが期待される。

特に、Vulkan RMS norm fusion により正規化段の高速化が図られ、Vulkan GET_ROWS 演算を型単位に最適化することで embedding look-up 速度が改善された。また、dot product instruction がない GPU 向けに、2 つの scalar FMA を v_pk_fma_f16 に統合する f16 accumulator の vector path が追加された。これにより、RDNA4 での prefill 低下が修正され、780M 向けの Vulkan 最適化が統合された。

これらの変更は、AMD iGPU ユーザーにとって推論速度の向上に直結する重要な改善である。

根拠: llama.cpp Vulkan RMS norm fusion (#28024), llama.cpp Vulkan type-aligned GET_ROWS (#28253), llama.cpp PR#29877: vulkan pack FMA for f16 accumulation (no dot product op)

利用者の報告

giovannimanzoni による Linux + NVIDIA (RTX PRO 4000 Blackwell) および Ryzen 9 9950X3D CPU-only の環境での報告がある。4B Q8_0 CUDA での推論結果は、Windows での実行結果と同等であった。また、Vulkan 構成 (4B Q8_0) での実行も確認された。giovannimanzoni の報告

juliaanvaneijndt による AMD Radeon 780M iGPU via Vulkan (~22 tokens/s) の環境での報告がある。Qwen3.5-4B with vision を使用した "Read with AI" 機能で、5 ページの lab-report PDF の読み取りに失敗する問題が発生した。これは、HealthLog のクライアント側で 60 秒のタイムアウトが設定されていたため、llama-server が 4 分後に完了する前に接続が切断されたことが原因であった。juliaanvaneijndt の報告

Vmarcelo49 による RX 9070 XT 16 GB の環境での報告がある。llama.cpp:server-vulkan b11176 @ 65536 での decode は 43.7 tok/s、prefill (30k cold) は 700.8 t/s であった。一方、llama.cpp:server-rocm b10884 @ 65536 では decode が 33.5 tok/s、prefill が 714.1 t/s であった。Vmarcelo49 の報告

andyholst による AMD (ROCm/Vulkan) を first-class backend として追加する提案がある。AMD Radeon RX 7900 XTX / RX 9070 XT / RX 7800 XT の測定結果を index に追加し、AMD iGPU (Radeon 680M/890M, Strix Halo) の GGUF モデルの実行状況を把握できるようになった。andyholst の報告

Vulkan 安定性向上:VRAM リーク・クラッシュ修正

今回の更新では、Vulkan バックエンドにおける安定性向上のための修正が行われた。具体的には、長い生成 (10k+ トークン) 後に GPU がアイドルに戻らない VRAM リークのバグ、Gemma 4 31B の MTP speculative decoding でのクラッシュ/segfault、DeepSeek V4 Flash + DSpark での VRAM リーク、DFlash 使用時の device lost などが修正された。

これらの修正により、AMD iGPU ユーザーにとって、長時間の生成でも安定して動作するようになった。特に、VRAM リークの修正は、VRAM が約 90-92°C に熱を持ち続ける問題を解決し、GPU の温度低下に寄与した。

根拠: llama.cpp: Vulkan VRAM leak / GPU memory never returns to idle after long generations (#25939), llama.cpp: Vulkan MTP crash and segfault on Gemma 4 31B (#27279), llama.cpp: Eval bug: VRAM leak with DeepSeek V4 Flash + DSpark (#27264), llama.cpp: Eval bug: E ggml_vulkan: device lost on Vulkan0 with DFlash (#28243)

利用者の報告

giovannimanzoni による Linux + NVIDIA (RTX PRO 4000 Blackwell) および Ryzen 9 9950X3D CPU-only の環境での報告がある。4B Q8_0 CUDA での推論結果は、Windows での実行結果と同等であった。また、Vulkan 構成 (4B Q8_0) での実行も確認された。giovannimanzoni の報告

juliaanvaneijndt による AMD Radeon 780M iGPU via Vulkan (~22 tokens/s) の環境での報告がある。Qwen3.5-4B with vision を使用した "Read with AI" 機能で、5 ページの lab-report PDF の読み取りに失敗する問題が発生した。これは、HealthLog のクライアント側で 60 秒のタイムアウトが設定されていたため、llama-server が 4 分後に完了する前に接続が切断されたことが原因であった。juliaanvaneijndt の報告

Vmarcelo49 による RX 9070 XT 16 GB の環境での報告がある。llama.cpp:server-vulkan b11176 @ 65536 での decode は 43.7 tok/s、prefill (30k cold) は 700.8 t/s であった。一方、llama.cpp:server-rocm b10884 @ 65536 では decode が 33.5 tok/s、prefill が 714.1 t/s であった。Vmarcelo49 の報告

andyholst による AMD (ROCm/Vulkan) を first-class backend として追加する提案がある。AMD Radeon RX 7900 XTX / RX 9070 XT / RX 7800 XT の測定結果を index に追加し、AMD iGPU (Radeon 680M/890M, Strix Halo) の GGUF モデルの実行状況を把握できるようになった。andyholst の報告

Vulkan での Qwen4Exp 対応と MoE 最適化

今回の更新では、Vulkan バックエンドにおける Qwen4Exp 対応と MoE 推論の最適化が行われた。具体的には、qwen4exp の hc ops (hyper-connection ops) のサポート、MoE 推論における mul_mm_id 演算の BN/2 境界処理の修正、mul_mat_id における hoisted row-id の制限の拡張、そして topk_moe fusion の追加などが行われている。

これらの変更により、Qwen4Exp シリーズのモデルが Vulkan/iGPU で動作するようになり、MoE 推論の prefll 速度が向上した。また、大規模 MoE モデル (VRAM に載る範囲) での MoE ルーティング精度も向上した。

根拠: llama.cpp: Vulkan support qwen4exp hc ops (#28988), llama.cpp: Vulkan mul_mm_id BN/2 tail unconditional (#28923), llama.cpp: Vulkan raise hoisted row-id limit for mul_mat_id from 256 to 512 experts (#28501), llama.cpp: Vulkan add topk_moe fusion for prefill (#28422)

Vulkan 新量子化 IQ4_XS/IQ3_S 対応で推論品質向上

今回の更新では、Vulkan バックエンドにおける新量子化フォーマット (IQ4_XS/IQ3_S) の対応が行われた。具体的には、IQ3_S MMQ matmul カーネルと IQ4_XS MMQ/MMV matmul カーネルが追加された。

これらの変更により、IQ4_XS や IQ3_S などの新量子化形式の GGUF モデルが Vulkan/iGPU で高速に動作可能になった。32GB UMA の 780M 環境では、IQ4_XS/IQ3_S でより大規模モデルが実行可能になる可能性がある。

根拠: llama.cpp: Vulkan IQ3_S MMQ matmul kernels (#28822), llama.cpp: Vulkan IQ4_XS MMQ/MMV matmul kernels (#28415)

Vulkan Sparse FA と新量子化カーネルの統合

今回の更新では、Vulkan バックエンドにおける Sparse Flash Attention の実装が行われた。これにより、長文脈推論における attention 計算コストが削減された。gfx1103 (RDNA3)/iGPU でも有効な最適化である。

根拠: llama.cpp: Vulkan sparse Flash Attention (#28105)

出典

【宣伝】SwitchBot 購入はこちらから

SwitchBot公式ページ
クーポン「AF-4903」で5%引き(アフィリエイトクーポンになりますのでご協力お願いします)
割引の詳しい仕組みに関してはこちらのページを参照ください。
製品ごとの特徴・紹介動画は SwitchBot 製品ガイド にまとめています。