ggml-org/llama.cpp 是用 C/C++ 编写的本地 LLM 推理引擎。在 2026-10-29 KST 这一天,从 b11963 到 b11982 共公开了 9 个构建标签,没有单独统计成组的提交。内容以 SYCL 与 Hexagon 后端的运算优化为中心,随后是面向 Adreno 的 OpenCL 路径新增与若干错误修正。
最引人注目的是 SYCL 方面的三项。b11963 对较短的 TOP_K 行应用了 workgroup argmax(在一行中寻找最大值的运算),引入了与既有路径不同的计算方式,发布说明中还附有在 Arc Pro B70 与 oneAPI 2026.1 上比较多种行大小和 k 值的性能表。b11979 把重排布局量化的反量化与写回改用向量运算,提高了 Q4_0 与 K 量化系列的吞吐量;b11980 则为 q4_0、q8_0 的 key cache 新增了直接运行的 flash attention(把 key 与 value 组合起来计算 Attention Score 的方式)内核,可处理 decode 以及 query token 数为 1~31 个的小批次。
Hexagon 后端方面,b11981 提高了转置连接(CONCAT)的 DDR 带宽利用率,把行分组大小扩大到两倍,并扩大了缓冲区临时空间;b11982 则新支持 UPSCALE 运算,细化了最近邻 2 倍与 4 倍插值以及双线性 4 倍放大。Adreno 的 OpenCL 一侧,b11971 新增了 tile 型的 q4_k 矩阵乘法路径,使 batch 大于 1 时语言模型输出层能够使用 tile 运算。此外,b11966 将 s390x 的持续集成 runner 换成了 Ubuntu 26.04,b11977 修复了 OpenVINO SCALE 对带行间隔的视图输入乘以整个源张量、导致结果缓冲区溢出的问题,b11978 纠正了 CUDA graph 预留余量的计算测试。
不过,当天的大部分改动仍是对特定后端的细粒度优化。b11963 的性能对比中也一并出现了部分条件下比原来更慢的结果,b11980 的内核仅用于 decode 和小批次,V.P 运算仍保持 f16,b11982 的 UPSCALE 内核也尚未完全向量化。由于发布说明中没有整体吞吐量数据,实际收益究竟有多大目前还难以判断。