← 返回信息流
更新于 2026/07/01 14:41

llama.cpp b9857 重写 Hexagon 后端 Flash Attention 内核

llama.cpp 发布 b9857 版本,核心变更是对 Qualcomm Hexagon DSP 后端的 Flash Attention 实现进行了全面重写。该 PR 涉及 30+ 次提交,覆盖从微内核拆分、VTCM 分配重构到 FP16 数学替换等底层优化。

技术核心包括:将量化任务折叠进主 matmul 线程以减少调度开销;用 FP16 数学(tanh_f16、exp2_f16)替代 FP32 向量函数,避免昂贵的 float→__fp16 类型转换;优化 mask 处理(fastdiv、DMA 缓存、循环重排以最大化缓存命中);将 softmax 累加器保持在 FP32 精度下,同时将 O 存储按 f16/f32 特化;预计算每任务行数消除除法;支持 FA_SELECT 和 Sinks 向量化更新。整体在保持精度的前提下显著降低 Hexagon 上的推理延迟。

对于在移动端或边缘设备上运行 llama.cpp 的工程团队,这次重写意味着 Hexagon DSP 加速的推理吞吐量提升,且无需修改上层调用代码。无破坏性变更。

速读

llama.cpp 重写 Hexagon Flash Attention,FP16 数学替换与 DMA 调度优化

相关源 (1)