Сборка llama.cpp b10835 устраняет критическую ошибку расхождения в FlashAttention f16 на бэкэндах CUDA. Обновление также оптимизирует пути выполнения на оборудовании NVIDIA, предотвращая избыточное назначение указателей метаданных. Построить адреса b10835...
Сборка llama.cpp b10835 устраняет критическую ошибку расхождения в FlashAttention f16 на бэкэндах CUDA. Обновление также оптимизирует пути выполнения на оборудовании NVIDIA, предотвращая избыточное назначение указателей метаданных.
Что изменилось
Сборка b10835 устраняет проблему № 27870 в репозитории llama.cpp, направленную на проблемы корректности и эффективности, характерные для серверной части CUDA. Основное исправление касается различных путей выполнения в реализации FlashAttention f16. При обработке механизмов внимания с плавающей запятой половинной точности на графических процессорах NVIDIA синхронизация потоков и расхождение ветвей ранее могли привести к нестабильному выполнению или ошибкам вычислений при определенных рабочих нагрузках.
Помимо исправления ошибки барьера ветвления, в этом выпуске удалены избыточные назначения указателей метаданных в ядрах выполнения CUDA. Избегая этих накладных расходов, обновление оптимизирует путь отправки на оборудовании NVIDIA, гарантируя, что поток выполнения продолжается без ненужных пересчетов указателей.
Двоичные файлы и дистрибутивы исходного кода, включающие эти изменения, доступны на GitHub для macOS, Linux и Windows, хотя основные алгоритмические исправления и исправления ядра напрямую приносят пользу CUDA.