开源llama.cpp Releases·原文 2026年10月12日本站收录 2026年10月13日

llama.cpp发布b11574:优化Hexagon后端CPY/CONCAT,修复mdev随机挂起

llama.cpp发布b11574版本,合并PR #30341,针对高通Hexagon NPU后端的拷贝与拼接操作做第三轮优化,并修复多设备场景下的随机挂起问题。

AI解读:PR #30341 的优化方向是让转换型拷贝按行分块提交给DMA描述符,避免短行受DMA延迟拖累;提交信息将此定位为针对short-rows的第三轮修改。

同一PR还调整了CPY/CONCAT的多项细节,包括为f16增加快速路径、支持 3/4 维折叠、引入双缓冲、减少标量除法与寄存器溢出,并让内核参数去重;这些改动是否带来端到端提速,提交信息未给出基准数据。

改动中有一项被明确标注为修复:将mdev场景下关键的vtcm_acquire同步状态改为原子操作,提交信息称这修复了mdev环境中的随机挂起。

构建方面新增了仅构建或安装Hexagon组件的支持;发布页同时列出macOS、iOS、Linux、Android、Windows与openEuler等平台的预编译产物,其中部分后端标注为DISABLED。

llama.cpp发布b11574版本,其中包含PR #30341,标题为“hexagon: optimize CPY/CONCAT — round 3, short-rows edition”。该PR由Ruslan Karymov和Yiwei Shao共同参与署名。

提交说明称,本轮优化把转换型拷贝按行分块送入每个DMA描述符,目的是让短行不再受DMA延迟限制。

提交说明还称,mdev场景下将关键的vtcm_acquire同步状态改为原子操作,修复了mdev环境中的随机挂起。

Hexagon后端CPY/CONCAT的第三轮改动

PR #30341 的提交列表集中在Hexagon后端的拷贝与拼接路径上。除按行分块提交DMA描述符外,还包括清理拷贝游标处理、引入线程化的DMA/HVX行收集辅助函数、移除对扩展缓冲区的遗留拒绝逻辑、放宽快速路径门限、去除标量除法与VTCM访问并改用显式gather_sync、为f16增加快速路径、支持 3/4 维折叠、加入双缓冲、将gather-rows拆分为独立操作、对内核参数去重,以及在尺寸不匹配时逐级下调nr而不是直接失败。

  • 按行分块提交DMA描述符,目标是让短行不受DMA延迟限制
  • 为f16增加快速路径
  • 支持 3/4 维折叠与双缓冲
  • 去除标量除法,减少标量寄存器溢出和函数调用
  • 内核参数去重;nr不匹配时逐级下调而非硬失败

mdev挂起修复与构建选项

提交列表末尾标注了一条修复:将mdev场景下所有关键的vtcm_acquire同步状态改为原子操作,提交信息称这修复了mdev设置中的随机挂起。

构建方面,提交说明称新增了对只构建和安装Hexagon组件的支持。

  • vtcm_acquire同步状态改为原子操作,提交信息称修复mdev随机挂起
  • 新增仅构建/安装Hexagon的支持

发布产物与平台覆盖

发布页列出了b11574在各平台的预编译产物,包括macOS Apple Silicon(arm64)与Intel(x64)、iOS XCFramework、Ubuntu的x64/arm64/s390x CPU版以及Vulkan、CUDA 12.8、CUDA 13.4、ROCm 10.0、OpenVINO、SYCL FP32/FP16版本、Linux arm64 Snapdragon(CPU、Adreno GPU、Hexagon NPU)、Android arm64(含Snapdragon版本)、Windows的CPU、OpenCL Adreno、CUDA 12.4/13.4、Vulkan、OpenVINO、SYCL、ROCm 10.0版本,以及UI包。

发布页同时标注:macOS Apple Silicon的KleidiAI版本为DISABLED,openEuler的x86 310p、x86 910b ACL Graph、aarch64 310p、aarch64 910b ACL Graph产物均为DISABLED。

  • macOS Apple Silicon(arm64,KleidiAI启用版)标注为DISABLED
  • openEuler各产物标注为DISABLED
  • Linux与Android的Snapdragon产物同时包含CPU、Adreno GPU与Hexagon NPU

信息来源

llama.cpp Releases原始来源