La version b9857 de llama.cpp introduit une refonte complète de l'implémentation Hexagon Flash Attention, axée sur les optimisations et les améliorations de précision. Cette mise à jour comprend des modifications significatives des modules hex-mm et hex-fa, telles que le regroupement des tâches de quantification dans les threads principaux de matmul, la fusion avec les opérations ADD et l'optimisation du traitement des masques.
- Les optimisations de Hexagon Flash Attention (hex-fa) incluent la factorisation des ukernels, le déplacement du calcul des paramètres du noyau vers l'hôte et l'ajout du support pour FA_SELECT et Sinks.
- Les améliorations de performances impliquent la mise à jour des seuils de repli Hvx pour récupérer les régressions de débit, l'optimisation de la mise en cache DMA des masques et l'utilisation de chargements alignés et d'indices uint32_t.
- Les améliorations de précision numérique incluent le maintien des accumulateurs softmax en fp32, le remplacement de vec_exp_f32 par vec_exp2_f16 et l'évitement des débordements de conversion en n'utilisant pas -inf pour l'initialisation du masque.
- La version fournit des binaires pour macOS (Apple Silicon et Intel), Linux (CPU, Vulkan, ROCm, OpenVINO, SYCL), Android, Windows (CPU, CUDA 12/13, Vulkan, OpenCL, HIP, OpenVINO, SYCL) et openEuler.
Cette mise à jour améliore les performances d'inférence sur les DSP Hexagon et élargit le support matériel pour les utilisateurs de llama.cpp sur plusieurs plateformes et accélérateurs.