llama.cpp b10306 版本引入了针对 SYCL 后端的性能优化,特别针对门控线性单元(GLU)操作。此次更新为融合的 GLU 操作添加了连续的快速路径,并将之前不同的内核整合以共享一个通用的启动器。

  • 添加了 SWIGLU 性能测试用例,涵盖 17408 列,在 f16 和 f32 精度下分别使用 512 和 2048 个 token。
  • 通过将操作作为参数传入来整合融合 GLU 内核,并移除未使用的 SYCL_GELU_BLOCK_SIZE 和 SYCL_SILU_BLOCK_SIZE 常量。
  • 实现了针对连续操作数的扁平内核分发机制,其中去交错索引数学计算简化为恒等映射。
  • 在 Arc Pro B70 上,针对拆分 GLU 实现了 f16 精度下 +14% 的性能提升和 f32 精度下 +4% 的提升,而融合操作的性能保持不变。

这些更改通过减少代码重复并优化特定张量配置的内存访问模式,提高了 SYCL 后端的效率。