llama.cpp 项目发布了 b9893 版本,引入了针对 OpenCL flash attention 解码的通用性能优化。此更新为 f16、q8_0 和 q4_0 KV 缓存格式添加了向量化 flash-attention 解码内核,并改进了非 flash-attention KQ 矩阵乘法内核。
- DK=512 解码操作被卸载到 CPU,因为它们受带宽限制,且随着深度增加,在 CPU 上比在 GPU 上更快。
- 多查询 flash attention 内核被编译为最小化程序,以防止 Adreno 编译器在较大维度下内存不足。
- f16-KV 解码的默认拆分大小从 2048 减少到 512,以便更好地利用单查询工作负载下的 GPU 资源。
- 崩溃修复解决了当 block_n 未设置时 DK=512 解码场景中的越界读取问题。
该版本包括适用于 macOS、Linux、Android、Windows 和 openEuler 的二进制文件,支持 CPU、CUDA、Vulkan、ROCm 和其他后端。