llama.cpp b10956 版本为 SYCL 后端引入了基数选择算法,以处理 TOP_K 操作中的大型 k 值,此前当 k > 32 时会回退到 CPU。此更改通过使用基于直方图的传递过程,使 GPU 驻留的大型 k 处理成为可能,并保持共享局部内存占用与 k 无关。

  • 新实现支持高达 2048 及更大的 k 值,消除了如 qwen4exp 的稀疏注意力索引器等操作的后台往返开销。
  • 性能改进包括在 ne=[131072,1] 且 k=2048 时获得 4.98 倍加速,以及在特定批处理配置下比 CPU 回退快多达 118 倍。
  • 在 3x Arc Pro B60 上使用 Qwen3.8-Flash-Next 进行的端到端测试显示,在 d=131072 时吞吐量从 5.91 t/s 增加到 6.05 t/s,困惑度保持不变。
  • 该版本包含适用于 macOS、Linux、Windows、Android 和 openEuler 的二进制文件,覆盖 CPU、CUDA、ROCm、Vulkan、OpenVINO 和 SYCL 后端。

此更新使 SYCL 设备上的高效大型 k top_k 操作成为可能,防止了需要高 k 值进行令牌选择的模型出现性能瓶颈。