Проект 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.