llama.cppのリリースb11292では、カーネルにBF16(16ビット数値形式)を使うdepthwise 1D convolutionで、CPUバックエンドにあった制限が修正されました。CPUバックエンドは計算時に入力を32ビット浮動小数点数へ拡張するようになり、Metalの行列ベクトルカーネルで使われる演算方式と一致します。
このリリースではVulkanの判定も変更されました。2つ目の行列入力にBF16を使えるのは、1つ目の入力もBF16の場合に限られます。それ以外の組み合わせは非対応として扱われ、スケジューラーによってCPUで処理されます。リリースノートにはテストの追加が記載されていますが、パッケージ版アプリに変更が反映される時期や、対象ユーザーについては触れられていません。
なぜ重要か
BF16のdepthwise convolutionを実行する開発者は、これまでCPUバックエンドで処理できなかった組み合わせを扱えるようになりました。ただし、下流のアプリにこの修正が反映される時期は、リリースノートに記載されていません。