Проект llama.cpp выпустил версию b9948, включающую ключевую оптимизацию библиотеки ggml для CUDA. Обновление изменяет `ggml_top_k()` и `ggml_argsort()` для обработки данных меньшими чанками, тем самым снижая использование памяти временных буферов.

  • Реализована обработка чанками в обеих реализациях top-k и argsort на базе CUDA CUB.
  • `tmp_dst` выделяется только один раз перед циклом для дальнейшей оптимизации памяти.
  • Тернарные операторы заменены на функции min/max для повышения ясности кода.
  • Выпущены бинарные файлы для macOS (Apple Silicon и Intel), Linux, Windows, Android и openEuler с поддержкой бэкендов CPU, CUDA, Vulkan, ROCm, OpenVINO, SYCL и HIP.

Это обновление предоставляет пользователям актуальные сборки для различных платформ, одновременно решая проблему эффективности использования памяти в определённых операциях CUDA.