C++テンソルライブラリ「ggml v0.25.2」公開、各バックエンドの最適化を実施

2026年9月25日

C++テンソルライブラリ「ggml v0.25.2」公開、各バックエンドの最適化を実施

基本情報

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

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

概要

ggml-org/ggmlの最新バージョン「v0.25.2」がリリースされました。ggmlは、ローカル環境でのLLM推論などで広く活用されている、機械学習用のC++製テンソルライブラリです。MITライセンスのもとでオープンソースとして開発されており、GitHubでは15,000以上のスターを獲得しています。

本バージョンは、各種ハードウェアバックエンドの改善に焦点を当てた小規模なポイントリリースです。利用者に最も影響の大きい変更として、CUDA、Vulkan、OpenCL、Hexagonといった主要なバックエンドにおける最適化や不具合修正、新しいカーネルの追加が行われています。特に、CUDA環境における3D畳み込み(conv3d)の高速化や、モバイル向けGPUであるAdrenoでのVulkan協調行列サポートの最適化などが含まれており、対象の環境を利用しているユーザーにとってパフォーマンス向上や安定性の改善が期待できるアップデートとなっています。

主な変更点

CUDAにおけるconv3dカーネルの追加

CUDAバックエンドにおいて、新しい conv3d カーネルが追加されました。このカーネルは、F16ウェイトを用いた処理において「implicit-GEMM」と呼ばれる高速パス(fast path)を利用できるのが特徴です。また、F32の形状(shapes)に対しては、直接的なフォールバック処理(direct fallback)が用意されています。

これにより、CUDA環境で3D畳み込み処理を行う際のパフォーマンス向上が期待できます。本変更は、CUDAを利用して特定のテンソル演算を行うユーザーに影響します。アップデート後に特別な設定変更は不要ですが、該当する演算の処理効率が向上します。(PR #29137)

Vulkanにおけるアライメント対応とAdreno向け最適化

Vulkanバックエンドでは、2つの重要な改善が行われました。

まず、conv_2d および conv_3d の行列乗算シェーダーにおいて、アライメントのずれ(misalignment)を適切に処理できるよう修正されました。(PR #29365)

次に、ハードウェア行列コア(hardware matrix cores)を搭載したAdreno GPU向けに、VK_KHR_cooperative_matrix サポートの有効化とチューニングが行われました。(PR #29328)

Vulkanバックエンドを日常的に使用しているユーザーや、Android端末などのモバイル環境でローカルモデルを動かしている開発者に直接影響する変更です。

OpenCLでのQ6_K向けDP4Aカーネル最適化

OpenCLバックエンドにおいて、Q6_K量子化を用いた非MoE(non-MoE)モデルのGEMM(行列乗算)処理向けに、最適化されたDP4Aバイナリカーネルが追加されました。(PR #29057)

DP4A命令をサポートするハードウェア上でOpenCLバックエンドを使用し、Q6_K量子化モデルを動かすユーザーに対して、演算の高速化をもたらします。該当する環境でQ6_K量子化モデルを推論させている場合は、アップデートによって処理速度の向上が見込めます。

Hexagonバックエンドでのプレシジョンガード追加

QualcommのHexagon DSP向けバックエンドにおいて、入力テンソル src1 の精度がF32である場合に、サポート対象外として MUL_MAT_ID 処理を拒否(reject)するプレシジョンガードが導入されました。(PR #29348)

これまでサポートされていなかったF32精度での処理が実行されて予期しない動作を引き起こすのを防ぎ、エラーハンドリングを厳密にすることでシステムの安定性を高める変更です。Hexagonバックエンドを利用して開発や推論を行っているユーザーに影響します。

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

本バージョンでは、特定のハードウェアアクセラレータやGPU、および特定の量子化モデル形式に対するサポートの追加や最適化が行われています。具体的には以下の環境において、機能の有効化や処理の効率化、安定性の向上が図られています。

CUDA環境とF16/F32演算

NVIDIA製GPUを使用するCUDAバックエンドにおいて、F16ウェイトを用いた3D畳み込み(conv3d)演算が新たにサポートされました。これにより、F16ウェイトを使用するモデルでの3D畳み込み処理において、高速な「implicit-GEMM」パスが利用可能になります。また、F32の形状(shapes)に対しては直接的なフォールバック処理が提供されており、幅広い形状のテンソル演算に対応しています。

Adreno GPUとVulkanバックエンド

モバイル端末などに搭載されているQualcommのAdreno GPUにおいて、Vulkanバックエンド経由での処理が最適化されました。具体的には、ハードウェア行列コア(hardware matrix cores)を搭載したAdreno GPUにおいて、協調行列拡張である VK_KHR_cooperative_matrix のサポートが有効化され、チューニングが施されています。これにより、モバイル環境におけるVulkanを利用したモデル推論のパフォーマンス向上が期待できます。また、Vulkanバックエンド全体として、conv_2d および conv_3d 行列乗算シェーダーにおけるアライメントのずれ(misalignment)への対応も行われています。

OpenCL環境とQ6_K量子化形式

OpenCLバックエンドにおいては、Q6_K量子化形式を用いた非MoE(Mixture of Expertsではない通常の)モデルの行列乗算(GEMM)処理が最適化されました。DP4A命令をサポートするハードウェア環境において、専用の最適化されたDP4Aバイナリカーネルが追加されたことで、Q6_K量子化モデルをOpenCL経由で実行する際の処理効率が向上しています。

Hexagon DSP

QualcommのHexagon DSP向けバックエンドにおいて、入力テンソル src1 の精度がF32である場合の処理制限が導入されました。HexagonバックエンドではF32精度がサポートされていないため、MUL_MAT_ID 処理においてF32が指定された場合に、これを明示的に拒否(reject)するプレシジョンガードが機能するようになっています。

アップデート方法

ggmlをソースコードからビルドしてアップデートする手順は以下の通りです。リポジトリをクローンし、CMakeを使用してリリース構成でビルドを行います。

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

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

既存のローカル環境を更新する場合は、リポジトリのディレクトリ内で最新のタグ(v0.25.2)をチェックアウトするか、git pull を実行した上で、上記と同様にビルドディレクトリ内で再コンパイルを行ってください。

前回の記事からの更新履歴

当サイトがGitHubのリリース一覧から機械的にまとめた、この版と前回取り上げた版の間に出た版です(単独記事にはしていません)。 全ての版はエンジン別ページにあります。

版 公開日 リリースノート
v0.25.1 2026-09-24 GitHub

関連記事

次に読むなら

出典