【780M向け】Radeon 780M向けVulkan最適化:VRAMリーク修正、Sparse FlashAttention対応、MoE処理の高速化

目次
  1. 今回の要点
  2. 780M向けVulkan最適化と不具合修正
  3. VulkanバックエンドにSparse FlashAttention(coopmat2)対応
  4. MoE推論のMUL_MAT_ID重複処理と密度ゲート最適化
  5. 小規模行列演算のWarp最適化でiGPUリソース競合を緩和
  6. maxComputeWorkGroupCount超過時の行列演算分割対応
  7. 出典

この記事はAIによって編集・作成されています。

llama.cppはggml-orgが開発するC/C++のLLM推論エンジンで、VulkanバックエンドによりAMD iGPUでも動作します。今回の更新では、Radeon 780M (gfx1103) を含むAMD iGPU環境における推論速度の向上、VRAMリークの修正、および長文コンテキストやMoEモデルでの処理効率化が複数行われています。

今回の要点

  • VRAMリーク修正: 1万トークン以上の生成後にGPUがアイドル状態になる不具合が修正されました。
  • Sparse FlashAttention対応: 長文コンテキスト推論時のコスト削減のため、coopmat2経由でSparse FAが利用可能になりました。
  • MoE処理の最適化: 不要な計算を削減するため、MUL_MAT_IDの重複処理と密度ゲートが最適化されました。
  • 小規模行列演算の効率化: ワークグループリソースの使用を削減し、iGPUでの競合を緩和する最適化が行われました。
  • ワークグループ制限の回避: maxComputeWorkGroupCount超過時の行列演算分割により、起動失敗が防止されました。

780M向けVulkan最適化と不具合修正

Radeon 780M (gfx1103) などのAMD iGPU向けに、RMSNormの融合、GET_ROWSの型アライメント、f16アキュムレータベクトルパスの導入など、推論速度向上のための最適化が行われました。また、RDNA4におけるプレフィルの回帰問題も修正されています 。

特に重要なのは、VRAMリークの修正です。従来、780M環境で1万トークン以上の生成を行うとGPUが90〜92°Cまで加熱し、その後にアイドル状態になるという不具合が発生していましたが、これが解消されました。これにより、長時間の推論における安定性が大幅に向上します 。

さらに、AMD iGPUにおけるチェックポイント読み込みの低速化も修正されました https://github.com/ggml-org/llama.cpp/commit/4d756bc7。MUL_MAT_IDにおけるFP32ソース精度の尊重も修正されており、精度面での改善が期待できます https://github.com/ggml-org/llama.cpp/pull/30105。

利用者の報告

Skimmenthal13 氏は、Radeon 780M (gfx1103)、RADVドライバー、Mesa 26.2.4、CachyOS (kernel 7.2.8) の環境で、GLM-4.7-Flash Q4_K_Mモデルを用いたテストを行っています。コンテキストが長くなるにつれてトークン生成速度が低下する問題(Issue #19081)を報告しており、Flash Attentionの最適化による改善が期待されています https://github.com/ggml-org/llama.cpp/issues/29965。

Paco1960 氏は、Linux Mint 22.3、Radeon 780M Graphics (Phoenix / gfx1103)、Vulkan / Mesa RADV、Mesa 25.2.8、Vulkan API 1.3.275の環境で、Unsloth Studioを用いたGGUF推論テストを行っています。VulkanはGPUを正しく検出しますが、VRAM割り当て時に ErrorOutOfDeviceMemory で失敗するという報告があります https://github.com/unslothai/unsloth/issues/12695。

thevaprroomops-cmyk 氏は、Windows 11、AMD Radeon RX 9070 XT (RDNA4) および統合GPU (AMD Radeon(TM) Graphics) の環境で、Hermes Agent v0.21.5+3903 におけるVulkanビルドの性能比較を行っています。LM StudioのVulkanビルドが約30.5 tok/sであるのに対し、Hermesのビルドは約7.4–8.0 tok/sと約4倍の差があり、GPUオフロードが速度向上に繋がっていないという報告があります https://github.com/NousResearch/hermes-agent/issues/133259。

VulkanバックエンドにSparse FlashAttention(coopmat2)対応

長文コンテキスト推論におけるコスト削減のため、VulkanバックエンドにSparse FlashAttentionのサポートが追加されました。特にgfx1103 (RDNA3) iGPUにとって有効な最適化です 。

この機能は、coopmat2経由でSparse FAのサポートが拡張される形で実装されています https://github.com/ggml-org/llama.cpp/pull/30003。これにより、長いコンテキストを扱う際の計算コストを削減し、推論効率を改善することが可能になります。

MoE推論のMUL_MAT_ID重複処理と密度ゲート最適化

MoE (Mixture of Experts) モデルにおける推論効率の改善のため、MUL_MAT_IDの重複処理と密度ゲートの最適化が行われました。従来、ループ処理されていたMoE expertの重複処理がprepassに移行され、不要な計算が削減されました https://github.com/ggml-org/llama.cpp/pull/29998。

また、MUL_MAT_VEC_IDパスにおいて密度ゲートが使用されるようになり、AMD Vulkan環境でのMoE expert選択が最適化されました https://github.com/ggml-org/llama.cpp/pull/27332。これらの変更により、iGPUにおけるMoEモデルの推論パフォーマンスが向上することが期待されます。

利用者の報告

Skimmenthal13 氏は、Radeon 780M (gfx1103)、RADVドライバー、Mesa 26.2.4、CachyOS (kernel 7.2.8) の環境で、GLM-4.7-Flash Q4_K_Mモデルを用いたテストを行っています。コンテキストが長くなるにつれてトークン生成速度が低下する問題(Issue #19081)を報告しており、Flash Attentionの最適化による改善が期待されています https://github.com/ggml-org/llama.cpp/issues/29965。

Paco1960 氏は、Linux Mint 22.3、Radeon 780M Graphics (Phoenix / gfx1103)、Vulkan / Mesa RADV、Mesa 25.2.8、Vulkan API 1.3.275の環境で、Unsloth Studioを用いたGGUF推論テストを行っています。VulkanはGPUを正しく検出しますが、VRAM割り当て時に ErrorOutOfDeviceMemory で失敗するという報告があります https://github.com/unslothai/unsloth/issues/12695。

thevaprroomops-cmyk 氏は、Windows 11、AMD Radeon RX 9070 XT (RDNA4) および統合GPU (AMD Radeon(TM) Graphics) の環境で、Hermes Agent v0.21.5+3903 におけるVulkanビルドの性能比較を行っています。LM StudioのVulkanビルドが約30.5 tok/sであるのに対し、Hermesのビルドは約7.4–8.0 tok/sと約4倍の差があり、GPUオフロードが速度向上に繋がっていないという報告があります https://github.com/NousResearch/hermes-agent/issues/133259。

小規模行列演算のWarp最適化でiGPUリソース競合を緩和

計算ユニットが限られるiGPU向けに、小規模行列演算 (small matmul) のワークグループリソース使用量が削減されました。具体的には、小規模な行列演算タイルにおいて、1つのサブグループにつき1つのwarpタイルを使用するよう最適化されています https://github.com/ggml-org/llama.cpp/pull/30106。

AMD iGPUはワークグループ数が比較的小さいため、この最適化によりリソース競合を緩和し、推論効率を改善することが期待されます。

利用者の報告

Skimmenthal13 氏は、Radeon 780M (gfx1103)、RADVドライバー、Mesa 26.2.4、CachyOS (kernel 7.2.8) の環境で、GLM-4.7-Flash Q4_K_Mモデルを用いたテストを行っています。コンテキストが長くなるにつれてトークン生成速度が低下する問題(Issue #19081)を報告しており、Flash Attentionの最適化による改善が期待されています https://github.com/ggml-org/llama.cpp/issues/29965。

Paco1960 氏は、Linux Mint 22.3、Radeon 780M Graphics (Phoenix / gfx1103)、Vulkan / Mesa RADV、Mesa 25.2.8、Vulkan API 1.3.275の環境で、Unsloth Studioを用いたGGUF推論テストを行っています。VulkanはGPUを正しく検出しますが、VRAM割り当て時に ErrorOutOfDeviceMemory で失敗するという報告があります https://github.com/unslothai/unsloth/issues/12695。

thevaprroomops-cmyk 氏は、Windows 11、AMD Radeon RX 9070 XT (RDNA4) および統合GPU (AMD Radeon(TM) Graphics) の環境で、Hermes Agent v0.21.5+3903 におけるVulkanビルドの性能比較を行っています。LM StudioのVulkanビルドが約30.5 tok/sであるのに対し、Hermesのビルドは約7.4–8.0 tok/sと約4倍の差があり、GPUオフロードが速度向上に繋がっていないという報告があります https://github.com/NousResearch/hermes-agent/issues/133259。

maxComputeWorkGroupCount超過時の行列演算分割対応

ワークグループ制限の小さいiGPUにおいて、行列演算ディスパッチが maxComputeWorkGroupCount を超過する場合、演算を分割する対応が行われました https://github.com/ggml-org/llama.cpp/pull/29533。

これにより、ワークグループ数の制限が小さいiGPU環境での起動失敗が防止され、推論の安定性が向上します。

利用者の報告

Skimmenthal13 氏は、Radeon 780M (gfx1103)、RADVドライバー、Mesa 26.2.4、CachyOS (kernel 7.2.8) の環境で、GLM-4.7-Flash Q4_K_Mモデルを用いたテストを行っています。コンテキストが長くなるにつれてトークン生成速度が低下する問題(Issue #19081)を報告しており、Flash Attentionの最適化による改善が期待されています https://github.com/ggml-org/llama.cpp/issues/29965。

Paco1960 氏は、Linux Mint 22.3、Radeon 780M Graphics (Phoenix / gfx1103)、Vulkan / Mesa RADV、Mesa 25.2.8、Vulkan API 1.3.275の環境で、Unsloth Studioを用いたGGUF推論テストを行っています。VulkanはGPUを正しく検出しますが、VRAM割り当て時に ErrorOutOfDeviceMemory で失敗するという報告があります https://github.com/unslothai/unsloth/issues/12695。

thevaprroomops-cmyk 氏は、Windows 11、AMD Radeon RX 9070 XT (RDNA4) および統合GPU (AMD Radeon(TM) Graphics) の環境で、Hermes Agent v0.21.5+3903 におけるVulkanビルドの性能比較を行っています。LM StudioのVulkanビルドが約30.5 tok/sであるのに対し、Hermesのビルドは約7.4–8.0 tok/sと約4倍の差があり、GPUオフロードが速度向上に繋がっていないという報告があります https://github.com/NousResearch/hermes-agent/issues/133259。

出典

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

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