機械学習ライブラリ「ggml v0.25.0」公開、FlashAttentionやMoEの最適化を拡充

機械学習ライブラリ「ggml v0.25.0」公開、FlashAttentionやMoEの最適化を拡充

基本情報

項目 内容
リポジトリ ggml-org/ggml
v0.25.0
公開日 2026-09-23
ライセンス MIT
出典の種類 公開元の一次情報(公式GitHubリポジトリのリリースノート)

収集・肉付けの時点で当サイトのコードが確定させた値です。日付はJST。

概要

ggml-org/ggml の最新バージョン「v0.25.0」が公開されました。ggmlは、手元の環境で効率的な推論を実現するために開発されている、C++製のオープンソース機械学習テンソルライブラリです(MITライセンス、GitHubスター数15,398)。

本バージョンにおける利用者に最も大きな影響のある変更点は、CPU、GPU、各種アクセラレータバックエンド全般にわたるFlashAttention、MoE(Mixture of Experts)、SSM(State Space Model)、およびHyper-connection(超接続)処理の適用拡大と融合カーネルの最適化です。最新のLLMアーキテクチャを実行する際のパフォーマンスと互換性が向上しています。

破壊的変更・非推奨

本リリースでは、ネットワーク越しに処理を分散するRPCプロトコルや、GGUFフォーマットのアライメント計算に関する変更が含まれます。

変更対象 変更前 (旧) 変更後 (新)
RPCプロトコル 旧メジャーバージョン Major version 7 に変更
GGUFデータアライメント ファイル先頭からの相対位置 GGUF開始位置からの相対位置 (llama/28993)

プロトコルバージョンの更新に伴い、旧バージョンのRPCサーバーとクライアントを混ぜて通信させることはできません。ネットワーク分散推論機能(RPCバックエンド)を利用しているユーザーは、サーバー側とクライアント側の両方のバイナリを同一バージョンへ更新する必要があります。また、GGUFファイルを直接解析する独自のパーサー等を開発・運用している方は、アライメントの計算基準が変わる点に注意が必要です。

主な変更点

FlashAttentionの機能追加とバックエンド最適化

CUDA/HIP、Metal、Vulkan、OpenCL、SYCL、Hexagonといった主要バックエンドにおいて、FlashAttention(FA)カーネルの機能拡張と高速化が行われました。CUDAではNVIDIA Ampere以降のアーキテクチャ向けに形状チューニングが施され、Sparse Flash AttentionやGemma 4向けの最適化が有効化されました。MetalではMiniCPM3などで用いられるヘッドサイズ(HSK=96, HSV=64)に対応したカーネルが追加され、VulkanにはIntel Xeアーキテクチャ(Xe-LPG Plus/Xe2/Xe3)向けの最適化カーネルが実装されています。対応ハードウェア上で長文文脈を処理する際のメモリ効率と計算速度が向上します。モデルの再変換等は不要で、ライブラリの更新のみで反映されます。

Fused MoEおよびSSMカーネルの強化

MoE(Mixture of Experts)およびSSM(State Space Model)モデルの計算効率化に向け、カーネル融合(Fusion)の最適化が推進されました。MetalバックエンドではMoEおよびSSM_CONVの融合最適化が追加され、OpenVINOではGPUでのMoE推論やステートフルデコードの最適化、圧縮MoEパスが拡張されました。また、Vulkanでは mul_mat_id の行ID制限が256から512エキスパートに引き上げられ、より大規模なMoEモデルのディスパッチに対応しています。SYCLでもRMS Norm+ScaleやSSM Conv+SiLUの融合が実装されました。MoE構成のモデルやMamba等のSSM系モデルを運用する環境において推論遅延の削減が期待できます。

Hyper-connection(超接続)構造への対応拡張

Qwen4Expなどのモデルで採用されているHyper-connection(超接続)演算への対応が各バックエンドで拡充されました。C++コア部分にはgated処理を行う ggml_dsv4_hc_pre_gated() が追加されたほか、Metal、Vulkan、SYCLバックエンドにおいて専用の超接続演算子(dsv4_hc_prehc_post など)が追加・最適化されました。これにより、ハイパーコネクション技術を用いた最新アーキテクチャのモデルを各種GPUで直接・高速に実行できるようになります。

IQ1_Mなどの量子化形式における処理高速化

量子化フォーマットの計算処理にも改善が入っています。極小量子化形式であるIQ1_Mにおいて、ブロックごとにプレフィックスサムを一度だけ構築する変更(llama/28706)が行われ、計算効率が向上しました。さらに、VulkanバックエンドへIQ3_S MMQ行列積カーネルが実装され、HIP(ROCm)環境ではSWAR技術を用いたIQ2およびIQ3の低ビット量子化カーネルの高速化が図られています。Hexagon NPU環境向けにもQ4_KおよびQ6_K量子化形式のサポートが追加されました。該当する量子化モデルを運用している環境では、再量子化を行うことなく推論実行速度の向上が得られます。

対応モデル・ハードウェア

本バージョンでは、多様なモデルアーキテクチャや各種アクセラレータ、量子化形式に対する機能拡張および最適化が行われました。

追加・最適化されたモデルアーキテクチャ

  • Gemma 4:NVIDIA Ampere以降のGPU環境において、gemma4-26b-a4b などのFlashAttention形状に対するパフォーマンスチューニング(llama/28450)が適用されました。
  • Qwen4 / qwen4exp:Qwen4向けのSparse Flash Attention(llama/28770)に対応したほか、qwen4expで使われる超接続(Hyper-connection)演算子(dsv4_hc_prehc_post など)がMetal、Vulkan、SYCL等の各バックエンドで拡充されました。
  • MiniCPM3:Metalバックエンドにおいて、MiniCPM3で必要とされるヘッドサイズ(HSK=96, HSV=64)向けの専用FlashAttentionカーネル(llama/28599)が追加されました。
  • Gated Delta Net:Qualcomm Hexagon NPU向けにHMX(Hexagon Matrix Extensions)で最適化されたGated Delta Netカーネル(llama/29199)が実装されたほか、WebGPU環境でもFused Gated Delta Net + Copy処理(llama/28976)に対応しました。

ハードウェアおよびバックエンドの拡張

  • Intel GPU(Vulkan / SYCL / OpenVINO):Vulkanバックエンドにおいて、Intel Xeアーキテクチャ(Xe-LPG Plus / Xe2 / Xe3)向けのFlashAttention最適化カーネル(llama/24406)が追加されました。また、OpenVINOバックエンドが2026.4に更新され(llama/29009)、GPU環境でのMoE推論やステートフルデコードの処理が最適化されました。
  • Qualcomm Hexagon NPU:64ビットマッピングに対応したバッファおよびDMA処理の全面的な見直し(llama/29197)が行われ、ダイレクトマップDMAキャッシュによるFlashAttentionマスク処理の高速化(llama/29282)やDMAを用いた連続メモリコピーに対応しました。
  • OpenCL対応デバイス:A8精度を組み合わせたQ4_0非MoE向けdp4aバイナリカーネル(llama/29055)や、q4_K/q8_1(llama/29056)、q6_K(llama/28678)向けのバイナリGEMMカーネル、さらにFlashAttention(llama/29046)および汎用 ssm_scanllama/28881)のバイナリカーネルが実装されました。
  • NVIDIA / AMD GPU(CUDA / HIP):CUDAではImplicit-GEMMを用いた conv2d の高速化(llama/29135)やSM70(Volta)におけるMMVQからMMQへのクロスオーバー最適化(llama/28912)が施されました。HIP(ROCm)ではAllReduceが有効化され(llama/27825)、RDNA3.5におけるMoEタイルのヒューリスティクスが最適化されました(llama/28935)。
  • CPU / その他のアーキテクチャ:ARM環境向けにQ1_0量子化用のRepackカーネル(llama/23492)が追加されたほか、SpacemiT環境におけるint16転置の修正(llama/25161)が行われました。

量子化形式の対応拡張

  • Hexagon向けK-Quants対応:Qualcomm Hexagon NPU環境において、K-Quants形式である Q4_K および Q6_Kllama/28994)のサポートが追加されました。
  • Vulkan向けIQ3_S対応:Vulkanバックエンドに IQ3_S 量子化形式向けのMMQ行列積カーネル(llama/28822)が導入されました。
  • OpenCL向けA8量子化カーネルA8 Q4_0A8 q4_K/q8_1A8 q6_K などの各種量子化フォーマットを高速処理するバイナリカーネルが追加されました。

アップデート方法

ソースコードからビルドする場合は、GitHubリポジトリからソースを取得してCMakeでビルドします。READMEに記載されている基本手順は以下の通りです。

git clone https://github.com/ggml-org/ggml
cd ggml

mkdir build && cd build
cmake..
cmake --build. --config Release -j 8

CUDA、Metal、Vulkan、SYCLなどの特定バックエンドを有効化する場合は、必要に応じて cmake 実行時に各バックエンド用のオプションを指定してください。

関連記事

出典