llama.cppプロジェクトはバージョンb10675をリリースし、Vulkanバックエンドの重要な更新を含んでいます。このリリースでは、シェーダーコード内での行IDとエキスパート数のホイスティングサポートが追加されました。

  • 実装ではcoopmat2内でホイスティングされた行IDを使用しています。
  • count_expertsに関するレビューフィードバックに対応し、生のuintベクトルの代わりにvk_op_count_experts_push_constantsを使用しています。
  • fastdivトリックがcount_experts内のne00 div/mod操作に適用されています。
  • エキスパートごとのオフセットはサポートされている場合subgroupExclusiveAddで計算され、フォールバックとしてシリアルパスを維持しています。

この更新により、CUDA、ROCm、OpenCLを含むさまざまなハードウェアバックエンド上で、macOS、Linux、Windows、Android向けの最適化されたVulkanビルドが提供されます。