llama.cppプロジェクトは、テンソル分割Regexパターンのパフォーマンス最適化を搭載したバージョンb9966をリリースしました。`llama_meta_device_get_split_state()`関数は、以前は呼び出しごとに29個の`std::regex`オブジェクトを再コンパイルしており、-smテンソルモードでのプロファイリング時にデコードスレッドの大部分を占めていました。

  • これらのパターンをstatic constとしてマークすることで、一度だけコンパイルされ、動作を変更せずに効率性が向上します。
  • macOS Apple Silicon (arm64) のビルドが利用可能ですが、KleidiAIサポートは無効になっています。
  • Linuxバイナリは、Ubuntu x64およびarm64(CPU)、s390x(CPU)、Vulkan、ROCm 7.2、OpenVINO、SYCL FP32/FP16用に提供されています。
  • Android arm64(CPU)ビルドが含まれています。
  • Windowsリリースには、CPU、OpenCL Adreno、CUDA 12/13、Vulkan、OpenVINO、SYCL、HIPが対応しています。
  • openEulerサポートは部分的に無効化されており、特定のハードウェア向けにx86およびaarch64ビルドが利用可能です。

このアップデートにより、複数のプラットフォームとアクセラレータにわたって最適化されたバイナリが提供され、テンソル分割のパフォーマンスボトルネックが解消されました。