桃子桃子快讯
←返回首页
工具

llama.cpp 新 PR:k-quants 矩阵乘法改用 VNNI,CPU 提示词处理提速 3-7 倍

llama.cpp 合并 PR 引入基于 VNNI 的 tiled mul_mat 实现,使 k-quants 在 CP…

2026.09.26 · 周六约 3 分钟阅读

llama.cpp 项目近日合并了一项针对 CPU 推理的性能优化 PR(ggml-cpu: tiled mul_mat for k-quants),作者 jbooth 称该改动在 k-quants 量化格式下,可将 CPU 上的「mul_mat」矩阵乘法运算速度提升 3 至 7 倍,对应到实际场景即为大模型在纯 CPU 环境中的提示词(prompt)处理阶段获得显著加速。

改动核心:引入 VNNI 指令与分块矩阵乘法

据 PR 描述,新实现的核心思路是利用现代 x86 CPU 上的 VNNI(Vector Neural Network Instructions,矢量神经网络指令集)来加速矩阵乘法,并配合分块(tiled)策略降低缓存压力。作者在标题中点明该方案「IMO minimal complexity」,意在强调实现复杂度可控、易于维护。

  • 适用对象:ggml 中的 k-quants 量化格式(Q2_K、Q3_K、Q4_K、Q5_K、Q6_K 等),这是 llama.cpp 用户最常使用的本地量化方案之一。
  • 加速阶段:聚焦 CPU 端的 prompt processing(预填充阶段),即处理用户输入的提示词并生成 KV cache 的过程,而非 token-by-token 的解码阶段。
  • 硬件依赖:需要 CPU 支持 VNNI 指令集(典型代表为 Intel Cascade Lake 及更新架构、部分 AMD Zen4+ 处理器)。

对本地部署的意义

llama.cpp 是目前本地运行 Llama、Qwen、DeepSeek、Mistral 等开源大模型最主流的推理引擎之一,覆盖 macOS、Linux、Windows 以及多种硬件后端。CPU 推理虽然速度不及 GPU,但仍然是大量无独显或算力受限场景下的默认选择,例如边缘设备、低配工作站以及大量开发测试环境。

此前 CPU 端的 prompt processing 往往是大段上下文输入时的明显瓶颈,尤其是 4K、8K 甚至更长上下文时,用户需要等待数秒甚至数十秒。新 PR 带来的 3-7 倍提升,意味着:

  • 长上下文场景下,首 token 生成前的等待时间显著缩短。
  • 在不支持 GPU 加速的环境中,本地 LLM 的可用体验明显改善。
  • 配合现有的 GGUF 量化模型文件,无需用户重新转换格式即可受益。

现状与局限

需要注意的是,目前公开信息仅来自该 PR 自身的简短描述与社区讨论(r/LocalLLaMA 帖子),尚无官方博客或完整 benchmark 文档披露:

  • 测试覆盖的具体模型与上下文长度。
  • 在不同 CPU 架构(Intel vs AMD、不同代际)下的实际加速比分布。
  • 对内存带宽、功耗与解码阶段(token generation)的影响。

用户如需验证实际收益,可在更新至包含此 PR 的 llama.cpp 版本后,使用 llama-bench 或 llama-batched-bench 在自己常用模型与硬件组合上跑一轮对比。对于仍在使用较老 CPU(不支持 VNNI)的用户,该优化不会带来收益;对于服务器端批量推理场景,GPU 路径仍然是更优选择。

信源