llama.cppプロジェクトは、Vulkanの最適化を含むビルドb11266をリリースしました。この最適化では、2アラインメントされたF32 A行列を一度に2要素ずつ読み込みます。この変更は、浮動小数点数を一つずつ読み込むのが非効率なIntelハードウェアでのパフォーマンス問題を解決し、元のパッチで`a_offset`の整列に関する検証が欠落していた点も修正します。
- この変更は、Intel BMGアーキテクチャのスループット向上のために、`mul_mat_vec`内の既存の2アラインメント読み込みロジックを活用しています。
- Intel B60でのベンチマーク結果では、特定の行列乗算形状で顕著な高速化が見られ、あるテストケースでは153.08 GFLOPSから221.66 GFLOPSへ、別のケースでは最大1.63 TFLOPSまでパフォーマンスが向上しました。
- このリリースでは、macOS (Apple SiliconおよびIntel)、Linux (CPU、Vulkan、CUDA、ROCm、OpenVINO、SYCL、Snapdragon)、Android、Windows、openEuler向けのバイナリが提供されています。
このアップデートは、浮動小数点数行列演算のメモリアクセスパターンを最適化することで、Vulkanバックエンドを使用するIntel GPUでの推論パフォーマンスを向上させます。