Выпуск llama.cpp b9820 вносит улучшения производительности за счёт повторного введения меньшего количества синхронизаций при разделённых вычислениях, ориентированных на бэкенды CUDA. Это обновление также предоставляет предварительно собранные бинарные файлы для macOS, Linux, Windows, Android и openEuler для процессоров, графических ускорителей и специализированных аппаратных ускорителей.
- Улучшает производительность CUDA за счёт уменьшения синхронизаций между токенами.
- Добавляет возможность копирования CPU-to-CUDA в ggml_backend_cuda_cpy_tensor_async().
- Ослабляет требования к синхронизации между копиями входных данных на поддерживаемых бэкендах, таких как CUDA.
- Заменяет синхронное копирование на функцию асинхронного копирования и добавляет макросы защиты для сборок без CUDA.
- Переделывает обнаружение бэкенда в ggml-backend.cpp, чтобы избежать конфликтов линковки.
- Исправляет ошибки конвейерного параллелизма в hip-бэкенде, добавляя синхронизации на одном GPU в настройках с несколькими GPU.
- Исключает hip/MUSA из оптимизации копирования от разделённого CPU к разделённому GPU в качестве меры предосторожности.
Выпуск обеспечивает более быстрый вывод данных на устройствах CUDA за счёт оптимизированных асинхронных операций, сохраняя совместимость с широким спектром операционных систем и аппаратных бэкендов.