Le projet llama.cpp a publié la version b9928, introduisant de nouvelles dispositions VTCM et des pipelines améliorés pour le backend Hexagon. Ces modifications ciblent spécifiquement les améliorations de performance pour les opérations MUL_MAT, MUL_MAT_ID et FLASH_ATTN_EXT.

  • Refactorisation du calcul des paramètres du noyau pour utiliser un générateur de disposition commun.
  • Ajout de barrières de compilateur explicites pour rendre les fonctions hmx plus robustes.
  • Implémentation d'un générateur de disposition VTCM plus générique pour les noyaux de multiplication matricielle et flash-attn.
  • Déroulement des noyaux internes et remplacement des intrinsèques par de l'assemblage en ligne pour éviter les problèmes de compilateur.
  • Optimisation des pipelines DMA, du préchargement et des chemins de repli de synchronisation.
  • Ajout d'un sondage hybride au workpool et amélioration des mécanismes de réveil de file d'attente.

La version fournit des binaires pour macOS (Apple Silicon et Intel), iOS, Linux (Ubuntu x64, arm64, s390x), Android, Windows et openEuler sur divers backends matériels incluant CPU, CUDA, ROCm, Vulkan, OpenVINO, SYCL et HIP.