llama.cpp、b12274でFP8 KVキャッシュに対応

llama.cppはリリースb12274で、変更#28392によりFP8 KVキャッシュのサポートを追加しました。スケール付きFP8 KVキャッシュのテスト、スケール取得とマッピングの修正、Gemma 4 AssistantのFP8対応をまとめた変更です。

llama.cppはggml-orgが公開するC/C++実装の推論ソフトウェアで、CPUや各社GPUで実行でき、量子化とCPU・GPUの併用に対応します。

何が新しいか

  • スケール付きFP8 KVキャッシュに対応し、scaled KVを汎用化
  • get_*_scaleのマッピングを修正し、RoPEシフト前にもFP8をdequantize
  • KVキャッシュのスケールにBF16も許可
  • キャッシュスケール名をプロジェクションのレイアウトに依存せず正規化し、*_cache_scaleを*_cache_sへ改名
  • Gemma 4 Assistantで、スケールポインタを保存・取得することでFP8を利用可能に
  • is_type_scaled()をllama-kv-cache.cppへ移動

原文によると、非共有スケールではfused KQVは現時点で実用的ではないものの、スケール名の正規化は将来の利用に向けた改善と位置づけられています。

テストと適用条件

項目 内容
test-backend-ops scaled FP8 KVキャッシュのテストを追加
E2Eテスト ggmlのバックエンド演算だけのテストではないためtest-llama-archsへ移動
KVテスト test-fp8.cppへ移動(#27512関連)
OpenVINO FP8 KVキャッシュテストを除外
マルチGPU FP8のkv-ffload=false+マルチGPUテストを無効化
対象モデル KVキャッシュを直接消費するモデルをテストから除外

CIではkv-cache-scaleテストを実行するよう設定しています。

この記事の固有名詞

コメント (0)

まだコメントはありません。

コメントを書く

2000文字以内