llama.cpp b9857 版本引入了对 Hexagon Flash Attention 实现的全面重构,重点在于优化和精度提升。此次更新对 hex-mm 和 hex-fa 模块进行了重大更改,包括将量化任务折叠到主矩阵乘法线程中、与 ADD 操作融合以及优化掩码处理。

  • Hexagon Flash Attention (hex-fa) 优化包括分解 ukernels、将内核参数计算移至主机端,并添加对 FA_SELECT 和 Sinks 的支持。
  • 性能增强涉及更新 Hvx 回退阈值以恢复吞吐量回归问题、优化掩码 DMA 缓存,以及使用对齐加载和 uint32_t 索引。
  • 数值精度改进包括保持 softmax 累加器为 fp32、用 vec_exp2_f16 替换 vec_exp_f32,并通过不在掩码初始化中使用 -inf 来避免转换溢出。
  • 该版本提供了适用于 macOS(Apple Silicon 和 Intel)、Linux(CPU、Vulkan、ROCm、OpenVINO、SYCL)、Android、Windows(CPU、CUDA 12/13、Vulkan、OpenCL、HIP、OpenVINO、SYCL)以及 openEuler 的二进制文件。

此更新提升了 Hexagon DSP 上的推理性能,并为 llama.cpp 用户扩展了跨多个平台和加速器的硬件支持。