【780M向け】Radeon 780M向けVulkan最適化:VRAMリーク修正、Sparse FlashAttention対応、MoE処理の高速化
目次
この記事は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。
出典
- https://github.com/ggml-org/llama.cpp/commit/4d756bc7
- https://github.com/ggml-org/llama.cpp/pull/30106
- https://github.com/ggml-org/llama.cpp/pull/30105
- https://github.com/ggml-org/llama.cpp/pull/30003
- https://github.com/ggml-org/llama.cpp/pull/29998
- https://github.com/ggml-org/llama.cpp/pull/27332
- https://github.com/ggml-org/llama.cpp/pull/29533
- https://github.com/ggml-org/llama.cpp/issues/29965
- https://github.com/unslothai/unsloth/issues/12695
- https://github.com/NousResearch/hermes-agent/issues/133259
SwitchBot公式ページ
クーポン「AF-4903」で5%引き(アフィリエイトクーポンになりますのでご協力お願いします)
割引の詳しい仕組みに関してはこちらのページを参照ください。