llama.cppプロジェクトは、Apple Siliconハードウェア向けのMetalバックエンドに重要な更新をもたらすビルドb11059をリリースしました。主な変更点は、高速ウォルシュ・アダマール変換(FWHT)カーネルへのF16入力サポートの追加であり、変換されたコピーを必要とせずにF16ソースを直接読み取ることが可能になります。

  • Metal FWHTカーネルは、ソース型をテンプレートパラメータにすることでF16入力を許可し、F32インスタンス化は変更されません。
  • FWHT SIMDグループカーネルの分岐なしバタフライ選択が三項演算子を置き換え、M5 Proでの大規模アダマール行列積において3.0%の性能向上(1285.0 us対1324.6 us)をもたらしました。
  • ディスパッチ述語はmacos-latest-arm64のビルドを修正し、supports_opとディスパッチロジック間の整合性を確保するためにggml-metal-commonに移動されました。
  • このリリースには、CPU、CUDA、ROCm、Vulkan、OpenVINO、SYCLバックエンド across macOS、iOS、Linux、Windows、Android、openEulerのバイナリが含まれています。

この更新は、MetalバックエンドでのF16操作のメモリオーバーヘッドとレイテンシを削減することで、Apple Siliconにおける効率性を向上させます。