llama.cpp b11043发布:Hexagon HMX flash-attention支持head_dim非 64 倍数(DK=DV=72)
llama.cpp新版本b11043让Hexagon HMX的flash-attention能在head_dim不是 64 倍数时运行,例如SigLIP的head_dim=72;做法是把DK/DV向上取整到 64,并用零填充尾部通道。
AI解读:这条更新解决的是一个很具体的兼容问题:Hexagon HMX上的flash-attention原先要求head_dim是 64 的倍数,而SigLIP的head_dim是 72,正好卡住。
做法不是改模型,而是把DK/DV向上取整到 64,多出来的尾部通道用零填充。这样head_dim=72 的模型也能在这条路径上跑起来,代价是计算量按 128 而不是 72 算,零填充部分不带来有效结果。
直接影响的是在高通Hexagon DSP上跑量化模型、尤其是带SigLIP视觉编码器的多模态模型的人。如果你不用Hexagon后端,这个改动对你不产生行为变化。
这是b11043里的一个提交,同版本照例发布了各平台预编译包,包括macOS、Linux、Windows、Android以及CUDA、Vulkan、ROCm、OpenVINO、SYCL等后端。KleidiAI的macOS构建和openEuler构建在本次发布中标记为DISABLED。
llama.cpp发布b11043版本,其中一项改动是让Hexagon后端的HMX flash-attention支持head_dim不是 64 倍数的情况,例如SigLIP的head_dim=72。
实现方式是把DK/DV向上取整到 64 的倍数,用零填充尾部通道,再执行HMX flash-attention。
该版本同时发布了多个平台的预编译包。
Hexagon HMX flash-attention的head_dim填充
根据发布说明,这项改动的提交信息为“hexagon: HMX flash-attention head_dim padding (support DK=DV=72) (#26539)”。
它允许HMX flash-attention在head_dim不是 64 倍数时运行,举例是SigLIP的head_dim=72。
具体做法是对DK/DV按 64 向上取整,并对多出来的尾部通道做零填充。
b11043提供的预编译包
- macOS:Apple Silicon (arm64)、Intel (x64);iOS提供XCFramework。Apple Silicon的KleidiAI构建标注为DISABLED。
- Linux:Ubuntu x64/arm64/s390x的CPU构建,x64与arm64的Vulkan构建,CUDA 12.8与CUDA 13.3的x64构建及对应arm64 CUDA 13构建,ROCm 10.0、OpenVINO 2026.4、SYCL FP32/FP16的x64构建。
- Windows:x64与arm64的CPU构建,arm64的OpenCL Adreno构建,CUDA 12.4与CUDA 13.4的x64构建及arm64 CUDA 13.4构建,Vulkan、OpenVINO 2026.4、SYCL、ROCm 10.0的x64构建。
- Android:arm64 CPU构建。UI:单独的UI包。
- openEuler构建在本次发布中标注为DISABLED。