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

llama.cpp发布b11168,改进Hexagon NPU上的动态量化器

该版本修复了Q8_0在N=1 矩阵乘法中的精度问题,消除了寄存器溢出,并为所有动态量化路径启用DMA。

AI解读:具体修复包括Q8_0在N=1 的矩阵乘法中的精度问题,以及寄存器溢出;同时将DMA用于所有动态量化路径,并清理了激活数据传递逻辑。

对在骁龙设备上通过Hexagon NPU运行本地模型的开发者来说,这次更新直接关系到量化推理的准确性和内存效率,但效果仍取决于具体硬件和模型。

llama.cpp发布了构建版本b11168(PR #29395),主要针对高通Hexagon NPU的动态量化器进行了改进。这些修改涉及ggml-hexagon后端的矩阵乘法内核和DMA路径,修复了Q8_0在N=1 的矩阵乘法中的精度问题,并解决了寄存器溢出。

动态量化器改进的具体内容

本次更新围绕Hexagon后端的动态量化器(dyn.quant)展开,由Max Krasnyansky、Aparna M P、Sigbjørn Skjæret等人参与。主要改动包括:修复Q8_0在N=1 MUL_MAT时的精度问题;修复hex-quant的寄存器溢出;为所有动态量化路径启用DMA。

  • hexagon: 修复Q8_0 N=1 MUL_MAT的精度问题
  • hex-quant: 修复寄存器溢出
  • hex-mm: 为所有dyn.quant路径启用DMA
  • hex-mm: 移除过时的run_quant_task
  • hex-mm: 更新tracing以正确包裹事件
  • hex-mm: 在所有路径中使用act表示激活数据(原为src1)
  • hex-mm: 移除或改道剩余的非DMA激活逻辑
  • hex-dma64: 进一步清理dma_addr_t类型转换

可下载的预编译二进制覆盖多个平台

b11168提供了适用于macOS、Linux、Windows、Android以及openEuler的预编译二进制文件,并包含UI组件。Linux版本覆盖CPU、Vulkan、CUDA 12/13、ROCm 10.0、OpenVINO、SYCL FP32/FP16等后端;Windows版本覆盖CPU、CUDA 12.4/13.4、Vulkan、OpenVINO、SYCL、ROCm 10.0以及OpenCL Adreno;Android和Linux arm64还提供了Snapdragon专用构建,支持CPU、Adreno GPU和Hexagon NPU。

  • macOS提供Apple Silicon和Intel版本,iOS有XCFramework
  • Linux提供Ubuntu x64/arm64/s390x的CPU构建,以及CUDA 12.8、CUDA 13.4、ROCm 10.0、Vulkan、OpenVINO、SYCL等变体
  • Windows提供CPU、CUDA 12.4、CUDA 13.4、Vulkan、OpenVINO、SYCL、ROCm 10.0和OpenCL Adreno构建
  • Android和Linux arm64有Snapdragon专用包,声明显式支持CPU、Adreno GPU和Hexagon NPU
  • openEuler构建被标记为禁用(DISABLED)

信息来源

llama.cpp Releases原始来源