llama.cpp v0.9.0发布:新增OCP FP8 E4M3量化与多序列KV缓存优化
llama.cpp发布v0.9.0,新增OCP FP8 E4M3量化、flash_attn_ext_rows算子、批量张量拷贝API,支持Clover、Limite、Metis-1.6、Mistral Large 4四个新架构,音频侧加入Chatterbox TTS与Nemotron 3.5 Transcribe,ggml同步升至v0.29.0。
AI解读:这次更新最实际的变化在统一KV缓存:新增的flash_attn_ext_rows让每个查询切片只关注自己的K/V行列表,按发布说明的说法,用于让统一KV缓存在多序列推理(multi-seq)下更高效,并恢复了非统一KV的prefill性能。
OCP FP8 E4M3(饱和模式)作为新张量类型加入,带转换辅助函数和新的ftype,llama.h增加LLAMA_FTYPE_MOSTLY_F8_E4M3。这项改动面向量化与模型格式,不涉及具体硬件性能数据。
ggml升级到v0.29.0后,同步带来基于NCCL的多节点张量并行、批量张量拷贝API(ggml_backend_tensor_copy_n/set_n/get_n,取代 _2d API,已在Metal和CUDA实现),以及多个后端的性能改动。
架构支持新增Clover-35B-A3B-Preview(AR模式)、Limite 1B - Violetto、Metis-1.6(Praxis约 2.9B与Logos约 10.2B,混合Mamba-2 / GQA注意力)与Mistral Large 4。
多模态侧新增Chatterbox TTS、Nemotron 3.5 Transcribe(40 种语言离线转写,支持提示上下文与说话人归属)、Pocket TTS预定义音色;Gemma 4 E2B/E4B获得发布说明所称的prefill大幅优化,但未给出具体数值。
llama.cpp发布v0.9.0,对应nightly构建b12110。发布说明列出的主要新功能包括OCP FP8 E4M3量化支持、新的flash_attn_ext_rows算子、通用批量张量拷贝API,并新增四个模型架构支持。
随本次版本同步的ggml升至v0.29.0。发布说明称,llama.cpp连续第三年成为GitHub Octoverse报告的featured repo。
量化与KV缓存的改动
量化方面加入OCP FP8 E4M3张量类型(饱和模式),附带转换辅助函数和新的ftype,llama.h新增LLAMA_FTYPE_MOSTLY_F8_E4M3(#27512)。
新增flash_attn_ext_rows(#29510),发布说明对其的描述是:让统一KV缓存在多序列推理下更高效,并恢复非统一KV的prefill性能。
ggml侧新增批量张量拷贝API(ggml_backend_tensor_copy_n / set_n / get_n),取代 _2d API,已在Metal和CUDA实现(#30881)。
新增模型架构
本次加入支持的模型包括:Clover-35B-A3B-Preview扩散模型(AR模式,#31306)、Limite 1B - Violetto(#29433)、Metis-1.6(Praxis约 2.9B与Logos约 10.2B,使用混合Mamba-2 / GQA注意力、固定深度循环与LatentMoE,#31134)、Mistral Large 4(#31376)。
音频、转写与Gemma 4优化
多模态部分新增Chatterbox TTS支持(#30993),并在mtmd.h中增加MTMD_GEN_AUDIO_TYPE_CHATTERBOX、n_voices及预定义音色相关API(mtmd_gen_audio_voice_name、mtmd_gen_audio_get_voice、mtmd_gen_state_set_ref、mtmd_bitmap_is_voice、mtmd_gen_audio_read_tensor)。服务端GET /props会报告模型预定义TTS音色,TTS端点接受预定义音色名。
Nemotron 3.5 Transcribe支持离线转写,覆盖 40 种语言,支持提示上下文与说话人归属(#31471)。Pocket TTS支持不依赖声音克隆的预定义音色(#31429)。
Gemma 4 E2B/E4B获得图优化,发布说明称prefill有大幅提升(#31356),未给出具体数值。另有Qwen3-VL视频提示模板MTMD_VIDEO_TEMPLATE_QWEN3VL的准确格式支持(#31619)。
ggml v0.29.0与后端变化
ggml v0.29.0增加OCP FP8 E4M3张量类型、ggml_flash_attn_ext_rows算子、批量张量拷贝API,并通过新的多进程通信接口提供多节点张量并行的初始支持。
发布说明列出的核心改动包括:用张量stride可达字节数约束张量视图、宿主缓冲张量的零拷贝GGUF导出、Apple平台改用vm_allocate分配。性能改动覆盖CPU(SVE内核)、SYCL(量化KV的DPAS flash attention)、CUDA(融合MoE MMQ)、Metal(更快的MXFP4 mat-vec)、Vulkan(split-K调优)、OpenCL(扩大量化GEMM/GEMV覆盖)以及Hexagon(新增lightning indexer、top-k mask、conv2d、upscale等算子)。
服务端与UI
服务端改动包括:共享决策前缀在首次输出处截断(#30710)、为长于n_rs_seq的草稿恢复投机检查点(#31350)、/v1/responses将extra_params(seed、min_p等)合并进转换后的chat-completions响应(#30959)。
UI改动包括工具设置中的MCP分组复选框、启动时请求持久存储、聊天窗口在读者上滚前保持在底部、输入框有内容时显示提交按钮、在工具调用未返回时显示中断状态、禁止服务端会拒绝的模型删除等。