开源llama.cpp Releases·原文 2026年9月22日

llama.cpp发布b11095:为Hexagon加入HMX优化的GATED_DELTA_NET

提交记录显示,新版本为GDN增加HMX支持并重写VTCM布局、引入流水线与HVX线程化,其中一项改动让token生成期间DDR读取减少 20%–30%。

AI解读:提交记录里最实在的数字是:优化HVX kernel的DMA流水线后,token生成期间DDR读取减少 20%–30%。这属于内存搬运层面的节省,不直接等同于端到端推理速度提升,实际收益要看模型和硬件配置。

过程并不顺:HMX支持最初能跑但未流水线化、速度慢,随后才逐步加入VTCM布局重写、HMX与DMA流水线、多数流水线阶段的HVX线程化、expf向量化,以及把exp() 放到f16计算以提高HVX利用率。

对直接跑llama.cpp Hexagon后端的人来说,这是可以试的版本;对其他人,它主要是移动端推理持续下沉到DSP的一个进展信号,无需立即行动。

llama.cpp发布b11095,主要变化是为Hexagon后端加入HMX优化的GATED_DELTA_NET(GDN),对应PR #29199。

提交记录同时提到,优化HVX kernel的DMA流水线后,token生成期间的DDR读取减少 20%–30%。

GDN的HMX支持从能跑到流水线化

提交日志显示,Hexagon GDN的HMX支持是分步搭起来的:先做出可运行的HMX版本,但当时未流水线化、速度慢;随后重写VTCM布局处理并为流水线做准备,接着开始对HMX和DMA做流水线化。

后续步骤包括为大多数流水线阶段加入HVX线程化、加入详细的trace事件、向量化expfs并改用对齐的HVX读写、把剩余的expf向量化,以及优化尾部处理(对不完整块做填充)。

  • hex-gdn:搭建HMX支持,最初可用但未流水线化且慢
  • hex-gdn:重写VTCM布局处理,为流水线做准备
  • hex-gdn:开始流水线化HMX与DMA
  • hex-gdn:为大多数流水线阶段加入HVX线程化
  • hex-gdb:加入详细trace事件

精度与调度层面的调整

在计算精度与调度上,提交记录列出若干改动:在热循环中避免float向上/向下转换;用f16执行exp() 以提高HVX利用率;优化tiler;把hmx-queue提升到 128,并一次性派发所有GDN gemm。

GDN prep阶段与GDN_SOLVE任务及流水线经过多轮调整,记录中还提到进一步提升精度并继续优化gdn-prep。

  • hex-gdn:在热循环中避免float向上/向下转换
  • hex-fa:从内层循环移除float向上/向下转换
  • hex-gdn:用f16执行exp() 以提升HVX利用率
  • hex-gdn:优化tiler
  • hex-hmx:将hmx-queue提升到 128,并一次性派发所有GDN gemm

DDR读取减少与其它清理

性能相关的一条明确数字是:对HVX kernel的DMA流水线做小幅改进后,token生成期间DDR读取减少 20%–30%。记录还称改进了内联softmax(使用寄存器内VKQ32累加),并为HVX VTCM spad做正确对齐。

其它改动包括:撤回max_bufsize的强制限制,仅保留max_vmem限制;改进inspect脚本,避免寄存器溢出检测器误报;修复rebase冲突。

  • hex-fa:改进内联softmax,使用寄存器内VKQ32累加
  • hex-fa:token生成期间DDR读取减少 20%–30%
  • hex-gdn:为HVX VTCM spad做正确对齐
  • hex-bufs:撤回max_bufsize强制限制,仅强制max_vmem
  • hex-scripts:改进inspect脚本,避免寄存器溢出检测器误报

发布产物覆盖的平台

b11095的发布产物覆盖macOS/iOS、Linux、Android、Windows和openEuler等平台。Linux侧包含Ubuntu x64/arm64/s390x CPU、Vulkan、CUDA 12.8、CUDA 13.4、ROCm 10.0、OpenVINO 2026.4、SYCL FP32/FP16等构建;Windows侧包含CPU、OpenCL Adreno、CUDA、Vulkan、OpenVINO、SYCL、ROCm等构建。

记录显示,macOS Apple Silicon的KleidiAI启用版本与openEuler构建目前处于DISABLED状态。

  • macOS/iOS:Apple Silicon arm64、Intel x64、iOS XCFramework;KleidiAI启用版本DISABLED
  • Linux:Ubuntu x64/arm64/s390x CPU,以及Vulkan、CUDA 12.8、CUDA 13.4、ROCm 10.0、OpenVINO 2026.4、SYCL FP32/FP16
  • Android:arm64 CPU
  • Windows:x64/arm64 CPU、OpenCL Adreno、CUDA 12.4、CUDA 13.4、Vulkan、OpenVINO 2026.4、SYCL、ROCm 10.0
  • openEuler:x86 310p、x86 910b ACL Graph、aarch64 310p、aarch64 910b ACL Graph,均为DISABLED

信息来源

llama.cpp Releases原始来源