llama.cpp b11580发布:Hexagon后端扩展标量DMA广播支持二元运算
llama.cpp新版本b11580合并PR #30245,扩展Hexagon后端对标量DMA广播的支持,覆盖二元运算;同时提供macOS、Linux、Windows、Android及Snapdragon等多平台预编译包。
AI解读:llama.cpp发布b11580版本,合并PR #30245,主题为“hexagon: extend scalar DMA broadcasting support for binary ops”。
该PR由Max Krasnyansky共同署名,包含多项提交:ggml支持扩展标量DMA二元运算、hex-binary移除所有非DMA路径并新增非连续步幅支持、REPEAT与COMPLEX内核改用DMA、hex-add-id为src2(索引)添加DMA支持。
hex-geglu-erf新增仅限F32的门控,因为该运算不支持F16。测试覆盖了加权标量广播和加权重复广播。
发布包覆盖macOS(Apple Silicon arm64、Intel x64)、iOS XCFramework、Linux(Ubuntu x64/arm64/s390x,含Vulkan、CUDA 12.8/13.4、ROCm 10.0、OpenVINO、SYCL FP32/FP16,以及Snapdragon Linux arm64)、Android arm64(含Snapdragon CPU/Adreno GPU/Hexagon NPU)、Windows(CPU、OpenCL Adreno、CUDA 12.4/13.4、Vulkan、OpenVINO、SYCL、ROCm 10.0)等平台。
补丁说明由自动机器人生成,提交信息注明Assisted-by: OpenCode。macOS Apple Silicon的KleidiAI启用版本状态为DISABLED,openEuler构建也处于DISABLED状态。
来源未提供该变更的性能数据、基准测试结果或对推理速度的具体影响,因此无法判断实际加速幅度。
llama.cpp发布b11580版本,合并PR #30245,扩展Hexagon后端对标量DMA广播的二元运算支持。该PR由Max Krasnyansky共同署名,提交信息中注明Assisted-by: OpenCode。
Hexagon后端改动细节
根据发布说明,此次改动涉及多项提交:ggml层面支持扩展标量DMA二元运算;hex-binary移除所有非DMA路径,并新增对非连续步幅的支持,同时清理DMA前言并简化DMA重试逻辑。
REPEAT和COMPLEX内核一并改用DMA,此前版本遗漏了这两项。hex-add-id为src2(索引)添加DMA支持。hex-geglu-erf新增仅限F32的门控,因为该运算不支持F16。
测试方面,提交覆盖了加权标量广播和加权重复广播。
- ggml:支持扩展标量DMA二元运算(Assisted-by: OpenCode)
- hex-binary:移除所有非DMA路径,新增非连续步幅支持,清理DMA前言并简化重试
- hex-binary:REPEAT与COMPLEX内核改用DMA
- hex-add-id:为src2(idx)添加DMA支持
- hex-geglu-erf:新增F32-only门控,不支持F16
- 测试:覆盖加权标量广播与加权重复广播
各平台预编译包
发布页面附带多个平台的预编译二进制文件。macOS/iOS提供Apple Silicon(arm64)、Intel(x64)和iOS XCFramework;其中macOS Apple Silicon的KleidiAI启用版本标记为DISABLED。
Linux提供Ubuntu x64、arm64、s390x的CPU包,以及Vulkan、CUDA 12.8、CUDA 13.4、ROCm 10.0、OpenVINO 2026.4.1、SYCL FP32/FP16等变体,另有Snapdragon(CPU、Adreno GPU、Hexagon NPU)的arm64包。
Android提供arm64 CPU包和Snapdragon(CPU、Adreno GPU、Hexagon NPU)包。Windows提供x64与arm64的CPU包、arm64 OpenCL Adreno包,以及CUDA 12.4/13.4、Vulkan、OpenVINO、SYCL、ROCm 10.0等变体。openEuler构建标记为DISABLED。
- macOS/iOS:Apple Silicon arm64、Intel x64、iOS XCFramework;KleidiAI版本DISABLED
- Linux Ubuntu:x64/arm64/s390x CPU、Vulkan、CUDA 12.8/13.4、ROCm 10.0、OpenVINO、SYCL FP32/FP16
- Linux arm64 Snapdragon:CPU、Adreno GPU、Hexagon NPU
- Android arm64:CPU与Snapdragon(CPU/Adreno/Hexagon NPU)
- Windows:CPU x64/arm64、OpenCL Adreno arm64、CUDA 12.4/13.4、Vulkan、OpenVINO、SYCL、ROCm 10.0
- openEuler:DISABLED