Проект llama.cpp выпустил версию b9893, вносящую общие оптимизации производительности для декодирования OpenCL flash attention. Это обновление добавляет векторизованные ядра декодирования flash-attention для форматов KV-кэша f16, q8_0 и q4_0, а также улучшает ядра умножения матриц KQ без использования flash-attention.
- Операции декодирования DK=512 перекладываются на процессор, поскольку они ограничены пропускной способностью и выполняются быстрее там, чем на GPU по мере увеличения глубины.
- Ядра многозапросного flash attention компилируются в минимальную программу, чтобы предотвратить нехватку памяти у компилятора Adreno при больших размерностях.
- Размер разбиения по умолчанию для декодирования f16-KV уменьшен с 2048 до 512 для лучшего использования ресурсов GPU в задачах с одним запросом.
- Исправление сбоя устраняет чтение за пределами диапазона, когда block_n не задан для сценариев декодирования DK=512.
Релиз включает бинарные файлы для macOS, Linux, Android, Windows и openEuler для CPU, CUDA, Vulkan, ROCm и других бэкендов.