llama.cppプロジェクトはバージョンb9948をリリースしました。このバージョンには、CUDA向けのggmlライブラリに対する重要な最適化が含まれています。今回の更新では、`ggml_top_k()`と`ggml_argsort()`がより小さなチャンクでデータを処理するように変更され、一時バッファのメモリ使用量が削減されました。

  • CUDA CUBのtop-kおよびargsortの実装にチャンク処理を実装。
  • メモリをさらに最適化するために、ループの前に`tmp_dst`を一度だけ割り当て。
  • コードの可読性を向上させるため、三項演算子をmin/max関数に置き換え。
  • CPU、CUDA、Vulkan、ROCm、OpenVINO、SYCL、HIPの各バックエンド向けに、macOS(Apple SiliconおよびIntel)、Linux、Windows、Android、openEuler用のバイナリをリリース。

このリリースにより、ユーザーは各種プラットフォーム向けの更新されたビルドを利用可能になり、特定のCUDA操作におけるメモリ効率の問題も解決されました。