モデル実行ソフトウェアllama.cppのb12291は、以前の計算値を再利用するキャッシュ処理の最適化を拡大した。モデル演算を処理するVulkan経路で最適化の範囲を広げ、一部のデータサイズを誤って分類していた不具合を修正した。開発チームは特定のサイズで大幅な高速化を観察し、新たな最適化が適用されない場合にも不具合修正が役立つと説明した。
1. キャッシュデータを演算に使う経路を拡大した
今回のリリースに含まれる変更は、Vulkanでキー・バリューキャッシュの逆量子化最適化を使える経路を広げる。キー・バリューキャッシュは、以前の計算値を保存して再利用する領域だ。逆量子化は、小さく圧縮しておいたデータを演算に使える形に戻す処理だ。今回の変更は、この処理の最適化を利用できる実行経路の拡大に重点を置いている。
この最適化はcoopmat2(CM2)経路でも許可され、適用可否はクエリトークン数とGQA比率の積に基づく判断基準に従う。GQA比率は、クエリヘッド数とキー・バリューヘッド数の比率だ。アテンションは入力要素間の関係を計算する演算であり、入力の長さだけでなく、この演算のヘッド構成も最適化の選択に関わる。
したがってVulkanユーザーが確認すべき変化は、実行環境の名前だけでなく、実際の処理でどの経路が選ばれるかだ。リリース説明に示された二つの要素は、開発者が自身の入力とモデル構成を軸に変更の意味を読み取る手掛かりになる。同じVulkan環境でも、クエリトークン数とモデルのヘッド構成を併せて確認することが、今回の変更を理解する出発点だ。
2. アライメント済みデータを誤分類していた不具合を修正した
開発チームは、作業中に特定のヘッドサイズで非常に大きな高速化を観察したと明らかにした。ヘッドは、アテンション演算を分担する単位だ。リリース説明によると、これらのサイズはアライメントされていないものとして誤って扱われており、アライメント済みとして処理するよう修正した。
アライメント判定は、データのメモリ配置が演算に適した間隔と位置に従っているかを確認する過程だ。GQAはデータへのアクセス間隔であるストライド(stride)にnbq2値を使うため、アライメント検査でもこの値を確認するよう修正した。データを再配置するのではなく、アライメントの有無を検査する基準値を正す変更だ。
開発チームは、逆量子化最適化が適用されない場合にもアライメント修正が役立つと予想した。したがってVulkan環境を運用する開発者は、新たなキャッシュ処理経路の適用可否とは別に、アライメント判定修正の効果も確認できる。
3. 性能上の利点と導入時の検証を併せて判断する必要がある
リリース説明は、スループットや向上倍率、測定に用いたハードウェア・モデル・設定を示していない。したがって性能改善の利点を実際の導入判断につなげるには、使用中のモデルと入力で従来バージョンに対する効果を確認する検証作業も併せて計画する必要がある。
4. 配布済みのVulkanビルドで変更を確認できる
b12291は2026年11月11日にプレビューリリースとして公開された。このバージョンを検討するユーザーは、リリースページの配布ファイル一覧から、OSとプロセッサ構成に合うVulkanビルドを選べる。
Ubuntu向けの配布一覧には、x64とarm64向けのVulkanビルドが含まれている。Windows向けの一覧にも、同じ二つのアーキテクチャのVulkanビルドが掲載されている。これらの環境では、公開済みパッケージを出発点として今回の変更を確認できる。配布一覧はOSだけでなくプロセッサアーキテクチャ別にも分かれているため、ファイルを選ぶ際は両方を確認すればよい。
b12291の要点は、Vulkanキャッシュ最適化の適用経路を広げると同時に、その最適化の対象外でも意味を持つアライメント判定の不具合を修正したことにある。
