Radeon 780M向けVulkan修正:MoE回帰の解消、メモリバグ修正、FlashAttentionのVRAM最適化提案
目次
今回の要点
- MoE推論でIntelとRDNA3/4 iGPUの速度が大幅低下する重大な回帰修正(PR #29936)
- RDNA4向けに過剰だったmat_vecチューニングを修正し、RDNA3(780M)にも恩恵(PR #29934)
- FlashAttentionとsoft_max間で古いメモリバッファを再利用するバグを修正(commit 806eee9841)
- MoEexpert ID重複時に計算がスキップされる不具合を修正(PR #29822)
- 780M向けにFlashAttentionの頭部グループ化によるVRAM節約が提案中(Issue #29965)
llama.cppはggml-orgが開発するC/C++のLLM推論エンジン。VulkanバックエンドでAMD iGPUでも動く。
Vulkan MoE推論の重大な性能回帰修正とRDNA4チューニング
前提
MoE(Mixture of Experts)モデルは、入力ごとに異なる「専門家」を選択して推論を行うアーキテクチャ。Vulkanバックエンドでは、これらの選択された専門家への行列計算(mul_mat_id)を効率的に実行する必要がある。
何が変わったか
PR #29936により、MoE推論の速度低下を招いていた重大な回帰が修正された。これはPR #29182で導入されたMoE対応のtile選択ロジックに起因し、Git bisectで回帰が確認された。修正により、B70 Arc Pro + gemma-4-26B-A4Bの環境で正常な速度が回復した。また、PR #29934ではRDNA4(gfx115x)のmat_vecカーネルチューニングが修正された。これは元々PR #27952でRDNA4追加時に過剰だった設定を修正するものだが、mat_vecチューニングパスはRDNA3(gfx1103 = 780M)と共有されているため、iGPUの性能向上にも寄与する可能性がある。
なぜ重要か
Radeon 780M(gfx1103)ユーザーは、MoEモデルの推論速度が大幅に低下する問題を回避できる。また、RDNA4搭載のRX 7600/7700 XTやRX 7900 XTX、9000シリーズユーザーも、mat_vec演算の最適化により推論速度が改善する。
根拠のリンク
- Vulkan: revert mul_mat_id tile selection PR #29182 (PR #29936)
- Vulkan: fix RDNA4 mat_vec tuning (PR #29934)
- vulkan: fix rdna4 mat_vec tuning (commit 16c163d561)
利用者の報告
Radeon 780M(gfx1103)ユーザーのSkimmenthal13は、CachyOS(kernel 7.2.8)、Mesa 26.2.4、RADVドライバー環境で、GLM-4.7-Flash Q4_K_MモデルをVulkanバックエンドで実行した際、コンテキストが長くなるとトークン生成速度が低下する問題を報告している。この問題はIssue #19081でも報告されていたが、iGPUの制限により自動クローズされていた。今回の修正により、この速度低下が解消される可能性がある。Issue #29965
Windows 11環境でRDNA4 GPU(RX 9070 XT)を使用するthevaprroomops-cmykは、Hermes Agentがピン留めしているllama.cpp Vulkanビルド(b10964)が、LM StudioのVulkanビルドと比較して約4倍遅い(7.4–8.0 tok/s vs 30.5 tok/s)と報告している。特に、GPUオフロード(-ngl 99)とCPU実行(-ngl 0)で速度差がない点が問題視されている。Hermes Agent Issue #133259
Linux Mint 22.3環境でRadeon 780M(Phoenix / gfx1103)を使用するPaco1960は、Unsloth StudioでVulkanバックエンドを用いてGGUF推論を試みた際、VulkanがGPUを正しく検知するも、モデル読み込み時にメモリ割り当てに失敗しErrorOutOfDeviceMemoryが発生すると報告している。環境はllama.cpp build 11160、Mesa 25.2.8、Vulkan API 1.3.275。Unsloth Issue #12695
Vulkanシェーダーのメモリバッファ再利用バグ修正
前提
FlashAttentionとsoft_max演算では、中間結果を保持するための一時バッファ(prealloc_y)が再利用される。このバッファの管理が不適切だと、古いデータが新しい計算に混入し、推論結果が不正になる可能性がある。
何が変わったか
commit 806eee9841により、FlashAttentionとsoft_max間で古いprealloc_yバッファを再利用するバグが修正された。これにより、Vulkanシェーダーでの推論結果の不正が解消される。また、b11407リリースでは、Vulkanテストスイート実行時に未宣言の識別子が発生するビルドエラーも修正された。
なぜ重要か
推論結果の不正は、モデルの出力品質に直接影響する。特にMoEモデルやFlashAttentionを使用する際、この修正により正確な推論が保証される。
根拠のリンク
- Vulkan: fix stale prealloc_y reuse across flash attention and soft_max (commit 806eee9841)
- vulkan: fix undeclared identifiers when -DGGML_VULKAN_RUN_TESTS=ON (b11407)
利用者の報告
Radeon 780M(gfx1103)ユーザーのSkimmenthal13は、CachyOS(kernel 7.2.8)、Mesa 26.2.4、RADVドライバー環境で、GLM-4.7-Flash Q4_K_MモデルをVulkanバックエンドで実行した際、コンテキストが長くなるとトークン生成速度が低下する問題を報告している。この問題はIssue #19081でも報告されていたが、iGPUの制限により自動クローズされていた。今回の修正により、この速度低下が解消される可能性がある。Issue #29965
Windows 11環境でRDNA4 GPU(RX 9070 XT)を使用するthevaprroomops-cmykは、Hermes Agentがピン留めしているllama.cpp Vulkanビルド(b10964)が、LM StudioのVulkanビルドと比較して約4倍遅い(7.4–8.0 tok/s vs 30.5 tok/s)と報告している。特に、GPUオフロード(-ngl 99)とCPU実行(-ngl 0)で速度差がない点が問題視されている。Hermes Agent Issue #133259
Linux Mint 22.3環境でRadeon 780M(Phoenix / gfx1103)を使用するPaco1960は、Unsloth StudioでVulkanバックエンドを用いてGGUF推論を試みた際、VulkanがGPUを正しく検知するも、モデル読み込み時にメモリ割り当てに失敗しErrorOutOfDeviceMemoryが発生すると報告している。環境はllama.cpp build 11160、Mesa 25.2.8、Vulkan API 1.3.275。Unsloth Issue #12695
Vulkan MoE expert ID重複時の計算不具合修正
前提
MoEモデルでは、複数の「専門家」が重複して選択されることがある。Vulkanバックエンドでは、これらの重複IDに対して行列計算(mul_mm_id)を正しく実行する必要がある。
何が変わったか
PR #29822により、入力IDに重複がある場合、各expertのすべての行に対して計算を実行するよう修正された。これにより、重複IDで計算がスキップされていた不具合が解消され、MoEモデルの出力品質が担保される。
なぜ重要か
MoEモデルを使用する際、expert IDの重複が原因で推論結果が不正になる問題を回避できる。特に、780Mのようなリソースが限られた環境では、正確な計算が重要。
根拠のリンク
利用者の報告
Radeon 780M(gfx1103)ユーザーのSkimmenthal13は、CachyOS(kernel 7.2.8)、Mesa 26.2.4、RADVドライバー環境で、GLM-4.7-Flash Q4_K_MモデルをVulkanバックエンドで実行した際、コンテキストが長くなるとトークン生成速度が低下する問題を報告している。この問題はIssue #19081でも報告されていたが、iGPUの制限により自動クローズされていた。今回の修正により、この速度低下が解消される可能性がある。Issue #29965
Windows 11環境でRDNA4 GPU(RX 9070 XT)を使用するthevaprroomops-cmykは、Hermes Agentがピン留めしているllama.cpp Vulkanビルド(b10964)が、LM StudioのVulkanビルドと比較して約4倍遅い(7.4–8.0 tok/s vs 30.5 tok/s)と報告している。特に、GPUオフロード(-ngl 99)とCPU実行(-ngl 0)で速度差がない点が問題視されている。Hermes Agent Issue #133259
Linux Mint 22.3環境でRadeon 780M(Phoenix / gfx1103)を使用するPaco1960は、Unsloth StudioでVulkanバックエンドを用いてGGUF推論を試みた際、VulkanがGPUを正しく検知するも、モデル読み込み時にメモリ割り当てに失敗しErrorOutOfDeviceMemoryが発生すると報告している。環境はllama.cpp build 11160、Mesa 25.2.8、Vulkan API 1.3.275。Unsloth Issue #12695
Vulkan FlashAttentionのVRAM最適化と780M向け機能リクエスト
前提
FlashAttentionは、VRAMの効率的な使用を目的としたAttention機構の実装。しかし、Vulkanバックエンドではタイルサイズに制限があり、頭部(heads)を適切にグループ化しないとVRAMを過剰に消費する可能性がある。
何が変わったか
Issue #29965で、Skimmenthal13がVulkanバックエンドのFlashAttentionにおいて、頭部を等しいグループに分割する機能リクエストを提出した。グループサイズは、qk_ratioの最大約数で、max_gqaを超えない値に設定される。これは、VRAMが限られたiGPU(特に780M)で大きなモデルを動かす際のボトルネックを解消するもの。
なぜ重要か
Radeon 780Mは共有メモリを使用するため、VRAMが限られる。FlashAttentionの頭部グループ化により、VRAM使用量が削減され、より大きなモデルや長いコンテキストを処理可能になる。
根拠のリンク
利用者の報告
Radeon 780M(gfx1103)ユーザーのSkimmenthal13は、CachyOS(kernel 7.2.8)、Mesa 26.2.4、RADVドライバー環境で、GLM-4.7-Flash Q4_K_MモデルをVulkanバックエンドで実行した際、コンテキストが長くなるとトークン生成速度が低下する問題を報告している。この問題はIssue #19081でも報告されていたが、iGPUの制限により自動クローズされていた。今回の修正により、この速度低下が解消される可能性がある。Issue #29965
Windows 11環境でRDNA4 GPU(RX 9070 XT)を使用するthevaprroomops-cmykは、Hermes Agentがピン留めしているllama.cpp Vulkanビルド(b10964)が、LM StudioのVulkanビルドと比較して約4倍遅い(7.4–8.0 tok/s vs 30.5 tok/s)と報告している。特に、GPUオフロード(-ngl 99)とCPU実行(-ngl 0)で速度差がない点が問題視されている。Hermes Agent Issue #133259
Linux Mint 22.3環境でRadeon 780M(Phoenix / gfx1103)を使用するPaco1960は、Unsloth StudioでVulkanバックエンドを用いてGGUF推論を試みた際、VulkanがGPUを正しく検知するも、モデル読み込み時にメモリ割り当てに失敗しErrorOutOfDeviceMemoryが発生すると報告している。環境はllama.cpp build 11160、Mesa 25.2.8、Vulkan API 1.3.275。Unsloth Issue #12695
Vulkan FWHTカーネルの高速化とブロック幅拡張
前提
FWHT(Fast Walsh-Hadamard Transform)は、Vulkanバックエンドで使用される変換演算。従来はF32のみ対応で、ブロック幅も512までだった。
何が変わったか
PR #29101により、FWHTがF16入力をサポートし、変換オーバーヘッドが削減された。また、PR #29772により、ブロック幅が64〜8192に拡張され、より広いHadamardブロックでも密なf32行列乗算にフォールバックしなくなった。
なぜ重要か
変換オーバーヘッドの削減と、より大きなブロック幅のサポートにより、Vulkanバックエンドの全GPUで推論速度が改善する可能性がある。
根拠のリンク
- Vulkan: add F16 input to the FWHT (PR #29101)
- Vulkan: FWHT kernels for block widths above 512 (PR #29772)
出典
- Vulkan: revert mul_mat_id tile selection PR #29182 (PR #29936)
- Vulkan: fix RDNA4 mat_vec tuning (PR #29934)
- vulkan: fix rdna4 mat_vec tuning (commit 16c163d561)
- Vulkan: fix stale prealloc_y reuse across flash attention and soft_max (commit 806eee9841)
- vulkan: fix undeclared identifiers when -DGGML_VULKAN_RUN_TESTS=ON (b11407)
- Vulkan: compute every row of an expert in mul_mm_id when ids repeat (PR #29822)
- Vulkan: group heads in flash attention when they don't fit in a tile (Issue #29965)
- Vulkan: add F16 input to the FWHT (PR #29101)
- Vulkan: FWHT kernels for block widths above 512 (PR #29772)
- Issue #29965
- Hermes Agent Issue #133259
- Unsloth Issue #12695
SwitchBot公式ページ
クーポン「AF-4903」で5%引き(アフィリエイトクーポンになりますのでご協力お願いします)
割引の詳しい仕組みに関してはこちらのページを参照ください。
製品ごとの特徴・紹介動画は SwitchBot 製品ガイド にまとめています。