El lanzamiento b9857 de llama.cpp introduce una reestructuración integral de la implementación de Hexagon Flash Attention, centrada en optimizaciones y mejoras de precisión. Esta actualización incluye cambios significativos en los módulos hex-mm y hex-fa, como la fusión de tareas de cuantización en hilos principales de matmul, la integración con operaciones ADD y la optimización del procesamiento de máscaras.

  • Las optimizaciones de Hexagon Flash Attention (hex-fa) incluyen la factorización de ukernels, el traslado del cálculo de parámetros del kernel al host y la adición de soporte para FA_SELECT y Sinks.
  • Las mejoras de rendimiento implican actualizar los umbrales de fallback Hvx para recuperar regresiones en el throughput, optimizar el almacenamiento en caché DMA de máscaras y utilizar cargas alineadas e índices uint32_t.
  • Las mejoras de precisión numérica incluyen mantener los acumuladores de softmax en fp32, reemplazar vec_exp_f32 con vec_exp2_f16 y evitar desbordamientos de conversión al no usar -inf para la inicialización de máscaras.
  • El lanzamiento proporciona binarios para macOS (Apple Silicon e Intel), Linux (CPU, Vulkan, ROCm, OpenVINO, SYCL), Android, Windows (CPU, CUDA 12/13, Vulkan, OpenCL, HIP, OpenVINO, SYCL) y openEuler.

Esta actualización mejora el rendimiento de inferencia en DSPs Hexagon y expande el soporte de hardware entre múltiples plataformas y aceleradores para los usuarios de llama.cpp.