llama.cpp b11980 版本新增了一个 SYCL flash-attention 解码内核,支持使用 q4_0 和 q8_0 量化键值缓存。该内核可处理包含 1 到 31 个查询 token 的批次,无需逐个进行标量反量化,也不必在每次调用时将整个缓存转换为 f16。
发行说明称,在 Intel Arc B580 上,使用 q4_0 缓存的 Llama 3.1 8B Q4_K_M 在 16K 上下文下达到每秒 54.2 个 token,高于此前的 31.3。该结果仅针对说明中列出的配置;提示词处理仍使用现有内核,并且可以通过 GGML_SYCL_FA_DPAS=0 禁用新内核。
为什么重要
对于使用量化缓存、在 Intel Arc B580 上进行解码的用户,这项改动有望在测试配置下加快 token 生成;但该版本没有证据表明提示词处理或其他硬件也会有类似提速。