开源llama.cpp Releases·原文 2026年10月12日

llama.cpp b11560为Hexagon后端加入IM2COL_3D与DMA支持

llama.cpp发布b11560构建,变更日志显示本次提交为Hexagon后端新增IM2COL_3D支持及DMA路径,并重写hex-im2col内核;作者列为Max Krasnyansky,提交说明标注Assisted-by: OpenCode。

AI解读:这次更新针对的是llama.cpp的Hexagon后端(高通骁龙平台的NPU路径),而不是通用CPU或CUDA后端。来源中新增的IM2COL_3D支持与DMA路径都归在该后端条目下,能影响的范围限于使用Hexagon NPU的构建。

提交说明给出了若干工程细节:重写后的hex-im2col采用规范化的DMA双缓冲流水线,去掉了除法运算和效率很低的浮点转换;kernel_params与VTCM布局预计算被移到主机侧执行。

针对老设备有一条明确限制:提交说明提到为pre-v81设备移除循环内溢出(remove in-loop spills),说明该项改动与Hexagon v81之前的设备相关。

来源只列出仓库中与Max Krasnyansky的合著关系,并以Assisted-by: OpenCode标注协助工具;没有给出跑分、加速比例或与其他后端的对比数据,因此无法从本次记录推断性能提升幅度。

b11560同时发布了大量预编译包,覆盖macOS/iOS、Linux、Android、Windows等平台的CPU、Vulkan、CUDA 12/13、ROCm 10.0、OpenVINO、SYCL及骁龙(CPU、Adreno GPU、Hexagon NPU)等组合;其中macOS Apple Silicon(启用KleidiAI)与openEuler相关条目被标记为DISABLED。

llama.cpp发布b11560构建,变更日志显示本次提交为Hexagon后端新增IM2COL_3D支持,并加入对应的DMA路径。

提交说明称hex-im2col被重写为使用规范化的DMA双缓冲流水线,去掉了除法运算和效率很低的浮点转换;kernel_params和VTCM布局的预计算被移到主机侧。

作者信息标注为Co-authored-by: Max Krasnyansky,多项改动附有Assisted-by: OpenCode标记。

提交中的Hexagon后端改动

来源列出的条目包括:为Hexagon添加IM2COL_3D支持、为其添加DMA路径、在IM2COL中避免标量fp16转换,以及为pre-v81设备移除循环内溢出。

重写后的hex-im2col采用规范化DMA双缓冲流水线,不再显式跟踪DMA push次数,去除了不正确的uint64_t强制转换,并改用cursor模式、tracing与正确的n_threads处理,支持非连续视图(non-contiguous views)。

  • 新增IM2COL_3D支持与DMA路径(Hexagon后端)
  • 避免IM2COL中的标量fp16转换
  • 为pre-v81设备移除循环内溢出
  • kernel_params与VTCM布局预计算移到主机侧

发布产物与状态标记

b11560提供的预编译包覆盖macOS/iOS、Linux、Android、Windows等平台,后端包括CPU、Vulkan、CUDA 12.8/13.4、ROCm 10.0、OpenVINO、SYCL FP32/FP16,以及骁龙平台的CPU、Adreno GPU与Hexagon NPU组合。

来源中macOS Apple Silicon(arm64,KleidiAI enabled)与openEuler相关条目被标记为DISABLED,其中后者链接指向PR 23705,前者链接指向PR 23780。

  • macOS/iOS:arm64、x64、iOS XCFramework
  • Linux:Ubuntu x64/arm64/s390x、CUDA 12.8与 13.4、ROCm 10.0、OpenVINO、SYCL、骁龙(CPU/Adreno/Hexagon)
  • Android:arm64 CPU、arm64骁龙(CPU/Adreno/Hexagon)
  • Windows:x64/arm64 CPU、OpenCL Adreno、CUDA 12.4与 13.4、Vulkan、OpenVINO、SYCL、ROCm 10.0

信息来源

llama.cpp Releases原始来源