llama.cpp b10306リリースは、SYCLバックエンドのパフォーマンス最適化を導入し、特にゲートド・リニアユニット(GLU)演算を対象としています。この更新では、融合されたGLU演算用の連続した高速パスが追加され、以前は別々だったカーネルが共通のランチャーを共有するように統合されました。

  • f16およびf32で512および2048トークン、17408列を対象としたSWIGLUパフォーマンステストケースを追加。
  • 演算を引数として取り込み、未使用のSYCL_GELU_BLOCK_SIZEおよびSYCL_SILU_BLOCK_SIZE定数を削除することで、融合GLUカーネルを統合。
  • デインターリーブインデックス計算が恒等変換に収束する連続したオペランドに対するフラットなカーネルディスパッチを実装。
  • Arc Pro B70において、分割GLUでf16で+14%、f32で+4%のパフォーマンス向上を達成し、融合演算は変更なし。

これらの変更により、コードの重複を減らし、特定のテンソル構成に対するメモリアクセスパターンを最適化することで、SYCLバックエンドの効率が向上します。