llama.cpp发布b12274,新增FP8 KV缓存支持
该版本在PR #28392 中加入FP8 KV缓存,并补充了缩放KV缓存的测试;同时记录了几项明确的能力限制,包括在多GPU和OpenVINO相关测试中的排除或禁用。
AI解读:新增针对带缩放的FP8 KV缓存的测试:一部分加入test-backend-ops,端到端(E2E)FP8 KV缓存测试移到test-llama-archs;KV相关测试后续又迁移到test-fp8.cpp。
实现细节上,统一了cache-scale的命名,使其不依赖投影布局;KV缓存现在也允许BF16缩放,并把 *_cache_scale重命名为 *_cache_s;此外,Gemma 4 Assistant通过存储和获取缩放指针在FP8下启用。
版本说明列出了若干限制:OpenVINO排除fp8-kv测试;FP8下禁用kv-ffload=false与多GPU测试;排除直接消费KV缓存的模型。版本说明未给出性能或精度数据。
llama.cpp发布b12274版本,发行说明列出的主要改动是“Add FP8 KV-cache support”(PR #28392)。说明同时提供了macOS、Linux、Windows、Android等平台的预编译包下载链接。
FP8 KV缓存改动与测试调整
该版为KV缓存加入FP8支持,并为带缩放的FP8 KV缓存补充测试:最初加入test-backend-ops,随后把端到端FP8 KV缓存测试移到test-llama-archs,说明给出的理由是这些测试不只针对ggml的后端算子;之后又按PR #27512 的讨论把KV测试移到test-fp8.cpp。
提交说明还记录:修复get_*_scale映射,并在rope shift之前也执行FP8反量化;让cache-scale命名与投影布局解耦;把 *_cache_scale重命名为 *_cache_s;允许KV缓存使用BF16缩放;把is_type_scaled() 移到llama-kv-cache.cpp。
- PR #28392 标题为“Add FP8 KV-cache support”。
- 测试文件多次迁移,最终KV测试位于test-fp8.cpp。
- 提交说明提到,当前对非共享缩放而言,融合KQV尚不实用,但这一改动对未来使用仍有帮助。
范围限制与已知排除
版本说明列出了与FP8 KV缓存相关的限制和CI调整:OpenVINO排除fp8-kv测试;FP8下禁用kv-ffload=false与多GPU测试(说明链接到PR #28413 的CI运行记录);排除直接消费KV缓存的模型;CI执行kv-cache-scale测试。
此外还修复了test-kv-cache的CI失败、test_kv_cache_scales的lint错误、test-kv-cache.cpp的冲突解决错误,以及Windows上test-kv-cache-scales.py临时文件未清理的问题。macOS上KleidiAI启用版本的构建仍处于DISABLED状态。
- OpenVINO不运行fp8-kv测试。
- FP8下禁用kv-ffload=false与多GPU测试。
- 直接消费KV缓存的模型被排除。