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