llama.cpp 补上 Arm NEON 内核:低比特量化提示词处理最高提速 6.5 倍

一个针对 Arm CPU 的 NEON 内核补丁,填补了 llama.cpp 在图块化 K-quant 矩阵乘法上的 Arm 空缺,让部分低比特量化模型的提示词处理速度最高提升 6.5 倍;但生成速度不变,且尚未在手机端验证。

一句话看懂:一个针对 Arm CPU 的 NEON 内核补丁,填补了 llama.cpp 在图块化 K-quant 矩阵乘法上的 Arm 空缺,让部分低比特量化模型的提示词处理速度最高提升 6.5 倍;但生成速度不变,且尚未在手机端验证。

事件核心:发生了什么

llama.cpp 在 2026 年 9 月通过 PR #27851 引入了“图块化 K-quant matmul”(tiled K-quant matmul),但当时只提供了 AVX-512 VNNI、AVX2 和 AVX 的内核。在 Arm 平台上,Q3_K、Q2_K 和 IQ 系列等格式只能回退到一条每次点积都重新解包权重的路径,导致提示词处理明显慢于 x86。

名为 silicon-forge-arm-neon-study 的仓库补上了缺失的 Arm 内核:使用带点积指令(SDOT)的 NEON 实现,改动约 164 行,集中在 llama.cpp v0.9.0 的两个文件中。在 Qwen2.5 1.5B、4 线程、512 token 提示词的测试中,IQ3_M 在 Neoverse N1 上从 11.5 tokens/s 提升到 74.5 tokens/s,约 6.5 倍;N1、V1、V2 三代 Arm 服务器核心都有提升。Q4_K_M、Q5_K_M、Q6_K、Q8_0 这些原本已有 Arm 内核的格式基本不变。

为什么重要

Arm 服务器的 AI 推理场景正在扩大,从云厂商的 Graviton 实例到边缘设备都有部署需求。llama.cpp 是本地和低成本推理的重要开源工具,低比特量化又是把大模型塞进有限内存的常用手段。此前 Arm 在这类格式上的提示词处理存在明显短板,这次补丁说明问题可能不在硬件能力,而在内核实现层面:一个缺失的内核就能带来数倍差距。这也会影响开发者对 Arm 与 x86 推理成本的比较判断。

对用户/开发者/创作者的影响

对在 Arm 服务器上跑 llama.cpp 的开发者,最直接的价值是处理长提示词更快,尤其是使用 IQ2、IQ3 等低比特量化格式时。但需要注意:提升只发生在提示词处理阶段,生成速度不变;测试基于 Qwen2.5 1.5B 单一小模型和 AWS Graviton2/3/4 租用服务器,没有覆盖手机。作者也明确列出未完成项:未经过人类内核工程师评审、未跑 test-backend-ops、未做 sanitizer 构建,也未对比真实提示词下的模型输出。目前公开信息显示,这仍是一个实验性补丁,而非已合并的官方功能。

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

值得关注的后续

一是补丁是否被 llama.cpp 上游合并,以及是否扩展到更多量化格式。二是是否有人在手机 Arm 核心上实测,毕竟手机缓存更小、内存更慢、散热受限,结果可能完全不同。三是 x86 与 Arm 在提示词处理上的差距缩小后,云厂商的推理实例选型是否会随之调整。

来源:Hacker News (黑客新闻)

celebrityanime
celebrityanime
文章: 34878

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注