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

Оптимизация Gated Delta Net и FlashAttention в llama.cpp для Qualcomm Hexagon

4.0/10

В релизе llama.cpp b11095 представлена низкоуровневая оптимизация архитектуры Gated Delta Net (GDN) и ядер внимания FlashAttention под аппаратные ускорители Qualcomm Hexagon HMX и HVX. Разработчики переписали распределение локальной памяти VTCM, настроили конвейеризацию операций тензорного ядра HMX с прямым доступом к памяти DMA, а также увеличили размер очереди HMX до 128 для пакетной отправки всех GDN GEMM. Дополнительно векторизованы вычисления экспоненты в FP16, устранены лишние приведения типов float в горячих циклах и внедрена регистровая аккумуляция VKQ32 для инлайн-softmax.

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

Оптимизация архитектуры Gated Delta Net (GDN) и механизма внимания для DSP Qualcomm Hexagon реализована за счет глубокого конвейерирования вычислений матричного сопроцессора HMX и асинхронных операций DMA с реорганизацией структуры памяти VTCM. Очередь HMX была увеличена до 128 слотов для пакетной диспетчеризации всех GEMM-операций GDN, а вычисления и векторизованная экспонента в формате FP16 распараллелены через расширения HVX с выровненным доступом к буферам. Дополнительно в ядрах внимания внедрен inline-softmax с внутрирегистровым накоплением VKQ32 и оптимизирован DMA-конвейер, что устранило лишние приведения типов в горячих циклах.

Эффективность и выигрыш ресурсов

Оптимизация конвейера DMA и выравнивания памяти в HVX-ядре FlashAttention снизила объем операций чтения из оперативной памяти DDR на 20–30% на этапе пошаговой генерации токенов. Данное сокращение трафика к системной шине памяти критически важно для энергоэффективности мобильных NPU и edge-устройств на базе Snapdragon.

Источники