Перейти к содержанию

llama.cpp b11362: кернел Flash Attention через Metal Tensor API для F16 KV-кэша

4.0/10

В релизе llama.cpp b11362 внедрена реализация кернела Flash Attention с использованием Metal Tensor API, оптимизированная для обработки KV-кэша в формате F16 на устройствах с поддержкой Metal. Обновление включает тензорные ядра FA для специализированных размерностей голов внимания: конфигураций DK=DV=512, DK=576 с DV=512, а также DK=192 с DV=128. В новый вычислительный кернел также интегрирована прямая поддержка механизмов attention sinks, позиционного кодирования ALiBi и ограничения логитов (logit softcap). Официальный список изменений не содержит эмпирических замеров пропускной способности (tok/s) или задержек TTFT, оставляя оценку точного прироста производительности для пользовательских бенчмарков.

Механизм оптимизации

В бэкенд Metal добавлены специализированные ядра Flash Attention на базе Metal Tensor API для работы с KV-кэшем в формате F16. Реализация охватывает нестандартные размерности голов внимания (DK=DV=512, DK=576/DV=512 и DK=192/DV=128), выполняя блочные вычисления внимания непосредственно на аппаратных матричных ускорителях Apple Silicon. Кроме того, ядра нативно интегрируют поддержку attention sinks, позиционного кодирования ALiBi и ограничения логитов (logit softcap) без дополнительных проходов по памяти.