llama.cpp b11405 リリースは、CUDA バックエンドを更新し、4 つのヘッド向けにキーとトークンに対してライトニングインデクサをタイル化することで、小さなヘッド数におけるパフォーマンスの問題に対処します。

  • カーネルはすべてのヘッドに対してクエリと重みを一度にステージングし、半精度のキー要素を1回だけ拡張して、float への変換を経由せずにすべてのヘッドに供給します。
  • クエリは共有メモリ内で float のまま維持され、q * k が f16 の範囲を超えた際に half2 積によるオーバーフローを防ぎます。
  • 各スレッドは現在、単一のトークンに対して2つのキーをスコアリングし、共有メモリの読み込みを削減し、gfx908 で VGPR を63個に保ちつつレジスタのスパイルを回避します。

この最適化により、R9700 上でカーネルが36倍高速化し、CUDA ハードウェアでもわずかに高速化します。

本リリースでは、CPU、GPU(CUDA、ROCm、Vulkan、OpenCL)、NPU バックエンドに対応した macOS、Linux、Windows、Android、openEuler 用のバイナリが提供されます。