llama.cpp 新 PR:用 AVX2 大幅加速 IQ 量化 CPU 推理
llama.cpp 收到 AVX2 优化 PR,IQ 量化模型在大 batch 场景下 CPU 推理速度提升最高达约 1…
llama.cpp 项目近日收到一项针对 IQ 系列量化模型的 AVX2 优化草案 PR(#27402,作者 bartowski1182),重点解决 IQ 量化在 CPU 上、特别是大 batch size 场景下 prompt processing 偏慢的问题。在作者提供的 benchmark 中,多个 IQ 量化档位的 token/s 出现数倍乃至十余倍的提升,而 perplexity(PPL)的变化几乎可以忽略不计。
优化背景与适用范围
IQ(I-quants)是 llama.cpp 生态中常见的低比特量化方案,常被用于在 CPU 或低显存设备上跑大模型。作者指出,IQ 量化在 CPU 上面对大 batch size(如 imatrix 校准、perplexity 评测等场景)时,原有实现存在明显的性能瓶颈。本次 PR 通过新增 AVX2 SIMD 内核来加速这一路径,从而在不改变量化精度的前提下提升吞吐。
需要注意的是,该优化面向的是 CPU 上的 prompt processing(即 prefill 阶段),而非逐 token 的生成阶段,因此受益最明显的是离线批量处理与评测任务。
Benchmark 关键数据
作者在 EPYC 9654、24 线程环境下,使用 --chunks 50 跑 PPL,对比 master 分支与本 PR。测试覆盖了纯 IQ1_S、IQ1_M、IQ2_XXS、IQ2_XS、IQ2_S、IQ3_XXS、IQ3_S、IQ4_XS、IQ4_NL 等多种纯量化档位,模型包括 Qwen3.6-27B 与 Qwen3.6-35B-A3B,batch size 取 512。
- Qwen3.6-27B 系列:IQ1_M 从 9.10 tok/s 提升到 69.59 tok/s(+664.7%);IQ1_S 从 8.57 提升到 70.10(+718.0%);IQ2_S 从 7.62 提升到 67.81(+789.9%);IQ3_S 从 4.75 提升到 65.45(+1277.9%)。
- Qwen3.6-35B-A3B 系列:IQ1_M 从 111.28 提升到 244.04 tok/s(+119.3%);IQ2_S 从 111.48 提升到 229.51(+105.9%);IQ3_S 从 74.47 提升到 205.42(+175.8%);IQ4_XS 从 156.09 提升到 245.02(+57.0%)。
PPL 方面,所有档位的差异均在 ±0.25% 以内,例如 27B 的 IQ1_M 由 12.1242 变为 12.1355(+0.09%),35B-A3B 的 IQ3_S 由 6.4325 变为 6.4316(−0.01%),可视为精度无损。
注意事项与当前状态
- 该 PR 仍处于 Draft 状态,尚未合并到主线,README 中也强调部分长时间运行的测试数据可能存在轻微波动,但加速效果在不同轮次中均稳定复现。
- 低 batch size 场景下加速幅度会明显缩小,PR 主要面向 imatrix、PPL、批量评测等高 batch 场景。
- 由于依赖 AVX2 指令集,仅适用于支持 AVX2 的 x86 CPU,老旧或非 x86 平台无法获得加速。
对在 CPU 上跑量化模型的本地玩家与研究者而言,若该 PR 合入,原本动辄数小时的 perplexity 评测和 imatrix 校准流程有望被压缩到一个更可接受的时间窗口。
