llama.cpp b11260为Hexagon后端加入FP32 GELU_ERF与GEGLU_ERF
该版本在Hexagon上支持FP32精度的GELU_ERF和GEGLU_ERF激活函数,并通过调整内核降低寄存器压力;同时照例发布全平台预编译包。
AI解读:这次更新解决的是高通Hexagon NPU上部分模型的算子缺口:GELU_ERF和GEGLU_ERF此前没有FP32实现,现在补上了,跑在骁龙NPU上的模型遇到这两种激活函数时不必再回退到CPU或换精度。
配套改动是“降低内核寄存器压力”,说明新算子在Hexagon上写出来还不够,还得压得住寄存器占用,否则性能会被寄存器溢出拖垮。对用骁龙设备本地跑模型的人,这决定了能不能真正用上NPU加速。
影响范围限于Hexagon后端,CUDA、Vulkan、Metal等其他后端不在这次改动内。不涉及相关硬件的人可以忽略,继续用旧版本即可。
llama.cpp发布b11260版本,主要变更是为Hexagon后端添加FP32精度的GELU_ERF和GEGLU_ERF支持(PR #29631)。
该PR包含两项改动:一是hexagon加入FP32 GELU_ERF和GEGLU_ERF支持,二是hex-erf在kernel中降低寄存器压力。
版本同时发布各平台预编译产物,涵盖macOS/iOS、Linux、Android、Windows和openEuler等目标。
Hexagon后端新增两个FP32激活函数
根据版本说明,b11260的合并内容是PR #29631,标题为“hexagon: add FP32 GELU_ERF and GEGLU_ERF support”。该PR在Hexagon后端上加入FP32精度的GELU_ERF与GEGLU_ERF支持,并在第二个提交中“reduce register pressure in kernels”,即降低内核的寄存器压力。
GELU_ERF与GEGLU_ERF是神经网络中常见的激活函数变体,出现在部分模型的FFN结构中。Hexagon是高通骁龙SoC中的NPU单元,llama.cpp通过Hexagon后端把部分计算卸载到该单元执行。
受影响的后端与平台
改动范围是Hexagon后端。发布页列出的预编译产物中,带Snapdragon标识的包包含CPU、Adreno GPU与Hexagon NPU三种执行路径:Linux arm64和Android arm64各有对应的snapdragon压缩包,并附有安装指南链接。
其余产物按常规后端分发,包括macOS Apple Silicon(arm64)与macOS Intel(x64)、iOS XCFramework、Ubuntu x64与arm64的CPU包、Ubuntu x64与arm64的Vulkan包、Ubuntu与Windows上的CUDA 12和CUDA 13包、Ubuntu与Windows的ROCm 10.0包、OpenVINO 2026.4包、SYCL FP32与FP16包,以及Windows arm64的OpenCL Adreno包。macOS Apple Silicon的KleidiAI版本标记为DISABLED,openEuler产物同样标记为DISABLED。