llama.cpp b12059发布:多序列统一KV缓存改用kv_rows路径
该版本以PR #29510 为核心,将统一注意力改为使用llm_attn_mask与kv_rows构建注意力路由;发布页同时列出macOS、Linux、Windows、Android等多平台预编译包。
llama.cpp发布b12059版本,核心变更为PR #29510,标题为「flash_attn_ext_rows - more efficient unified kv for multi-seq」,由Georgi Gerganov等人提交。
发布说明称,统一注意力现在使用llm_attn_mask与kv_rows;多序列统一KV缓存的注意力路由方式随之调整。
kv_rows的构建与切片规则
PR描述显示,每个序列维护一份cell位图,是seq的转置,在seq_pos_inc/dec时更新;构建cell列表时遍历位图的置位位。列表保持cell顺序,被多个序列共享的cell会进入每个相关列表,删除cell时无需重建。
标准SWA与分块SWA中,被所有token隐藏的cell不进入列表。get_kv_rows_p_min被改为私有,get_kv_rows_seq_ids与get_kv_rows_p_min合并为get_kv_rows_slices。
- 等长、每个run只含单一序列的ubatch(例如多个slot的草稿)拆分为按序列的切片。
- 交错、不等长或耦合序列的ubatch变成覆盖其全部序列cell的单个切片,不再回退到稠密KQ mask,以保持预留图的拓扑。
- 提交信息附带Assisted-by标注,涉及DeepSeek-V4-Flash-Vision-Exp-GGUF与GLM-5.3-Flash-GGUF,运行环境标注为Mac Studio M2 Ultra 192GB与M5 Ultra 256GB。
发布产物范围
b12059提供macOS Apple Silicon(arm64)与macOS Intel(x64)包、iOS XCFramework,以及Ubuntu x64/arm64/s390x的CPU包。Ubuntu还提供Vulkan、CUDA 12.8、CUDA 13.4、ROCm 10.0、OpenVINO 2026.4.1、SYCL FP32/FP16等构建。
Windows侧包含CPU、CUDA 12.4/13.4、Vulkan、OpenVINO、SYCL、ROCm 10.0等x64与arm64包;Android提供arm64 CPU与Snapdragon版本;另有Linux arm64 Snapdragon(CPU、Adreno GPU、Hexagon NPU)包。openEuler相关构建标注为DISABLED。