llama.cppは新しいプレビュービルドで、Zamba2系モデルの計算をより多くGPUに移し、生成速度を高めた。対象はCUDAでこのモデルを実行する開発者だ。開発者の測定では、同じハードウェアと量子化、つまりモデルの数値精度を下げて保存する方式の条件下で、一定時間に処理する量を示すスループットが約35%増えた。
1. GPUが担えなかった計算を直接処理する
要点は、モデルの計算方式とGPUの対応範囲の間にあった隙間を埋めたことだ。Zamba2と似た構造は、前の状態を引き継いで計算する再帰的なスキャン段階で、計算中に保持する値の数である状態サイズに64を使う。従来のCUDA処理経路は96、128、256にしか対応せず、このモデルの主要なスキャン計算は毎段階CPUに回されていた。
リリースの説明によると、このボトルネックがある状況でZamba2は毎秒6~7トークンを処理した一方、構成方式が異なるほかのアーキテクチャでは、同じハードウェアで毎秒50~70トークンを処理した。GPUがあっても、モデルが必要とする計算経路が欠けていれば、CPU処理が生成速度を制限し得ることを示す例だ。
今回の修正は既存の実装パターンに沿って状態サイズ64用の経路を追加し、GPU対応の可否を判定する条件とエラーメッセージも更新した。計算の数学的な内容は維持した。
2. 同じ条件での推論、入力に応じてモデルが出力を作る過程の測定で約35%向上した
変更提案の作成者は、Zamba2-7B-Instructのスループットが毎秒約11トークンから15.1トークンに増えたと報告した。同じハードウェアと量子化の条件を維持した推論測定で、再現可能な約35%の改善を観測したという。リリースノートと、コード変更を記録する項目であるコミットの説明にも、同じ変更前後の数値が掲載された。
この結果は、計算をCPUに回していた主要因を取り除いた後の改善幅を示す。モデルの数学的演算を変えるのではなく、GPUが担える範囲を広げてスループットを高めた点が、今回の修正の特徴だ。
3. CPUの基準結果と照合して正確性を確認した
変更提案の作成者は、GPUの結果を組み込みの正確性テストのCPU基準実装と比較したと説明した。Zamba2の実際の次元属性、つまりモデルの計算構造を決めるサイズ情報を反映した新しいテストを三つ追加し、全28テストが通過した。GPUの処理範囲を広げても、基準計算と結果が一致するか確認する手順だ。
追加されたテストには、複数のトークンを処理する場合と、1トークンずつ生成する場合が含まれる。以下は、原文コードで状態サイズ64用のGPU計算を選択する部分の抜粋だ。
if (d_state == 64) { // Zamba2
constexpr int threads = 64;
constexpr int num_warps = threads/WARP_SIZE;
const dim3 blocks((n_head * head_dim + (num_warps - 1)) / num_warps, n_seq, 1);
const ggml_cuda_kernel_launch_params launch_params = ggml_cuda_kernel_launch_params(blocks, threads, 0, stream);
ggml_cuda_kernel_launch(ssm_scan_f32_group<64/WARP_SIZE, 64>, launch_params,
src0, src1, src2, src3, src4, src5, src6, dst,4. 主要なボトルネックを減らしてもCPU処理の負担は残る
今回の変更の利点は、主要なスキャン計算をGPUが直接担うようになることだ。計算を担当する装置が変わったもので、CPUに回されていた経路をGPUの対応範囲に含める最適化だ。
ただし変更提案の作成者は、別の原因によりスキャン呼び出しの約28%が依然としてCPUに回され、ほかのアーキテクチャ並みのスループットには達しなかったと報告した。原文は、ボトルネック調査段階の毎秒6~7トークンと改善測定の約11トークンとの差や、具体的なGPUと量子化形式を説明していない。
残るCPU処理は、利点と併せて検討すべきコストだ。主要な計算経路をGPUに移した後もCPUが担う処理は残るため、今後の最適化の焦点は、別途残っているフォールバックの原因を探ることにある。
5. プレビューリリースのCUDAビルドで提供される
b12207は2026年11月8日に公開されたプレビューリリースだ。配布物にはLinuxとWindows向けのCUDAビルドが含まれる。これらの環境でZamba2を実行する開発者は、OSに合ったCUDAビルドを選べる。
利用方法を選ぶ際の要点は、今回の修正がCUDAの計算経路に組み込まれたことだ。リリースではLinuxとWindows向けにCUDA 12と13のビルドを提供し、併せて配布するCUDAライブラリへのリンクも案内している。
b12207の価値は、計算式を変えずにGPU対応の隙間を埋め、Zamba2の生成スループットを高めたことにある。
