Выпуск llama.cpp b9857 представляет собой комплексную переработку реализации Hexagon Flash Attention, сфокусированную на оптимизациях и улучшении точности. Это обновление включает значительные изменения в модулях hex-mm и hex-fa, такие как объединение задач квантования с основными потоками умножения матриц (matmul), слияние с операциями ADD и оптимизация обработки масок.
- Оптимизации Hexagon Flash Attention (hex-fa) включают факторизацию ukernels, перенос вычисления параметров ядра на хост и добавление поддержки FA_SELECT и Sinks.
- Улучшения производительности включают обновление порогов отката Hvx для восстановления пропускной способности, оптимизацию кэширования DMA масок и использование выровненных загрузок и индексов uint32_t.
- Улучшения числовой точности включают сохранение аккумуляторов softmax в fp32, замену vec_exp_f32 на vec_exp2_f16 и предотвращение переполнений преобразования путем отказа от использования -inf для инициализации масок.
- Выпуск предоставляет бинарники для macOS (Apple Silicon и Intel), Linux (CPU, Vulkan, ROCm, OpenVINO, SYCL), Android, Windows (CPU, CUDA 12/13, Vulkan, OpenCL, HIP, OpenVINO, SYCL) и openEuler.
Это обновление улучшает производительность вывода на DSP Hexagon и расширяет поддержку оборудования для пользователей llama.cpp на нескольких платформах и ускорителях.