La version llama.cpp b11405 met à jour le backend CUDA en carrelant l'indexeur éclair sur les clés et les tokens pour 4 têtes, résolvant des problèmes de performance avec de faibles nombres de têtes.

  • Le kernel regroupe les requêtes et les poids pour toutes les têtes simultanément, élargissant chaque élément de clé en demi-précision une fois pour alimenter toutes les têtes sans aller-retour en virgule flottante.
  • Les requêtes restent en format float dans la mémoire partagée pour éviter le débordement des produits half2 lorsque q * k dépasse la plage f16.
  • Chaque thread évalue désormais deux clés pour un seul token, réduisant les lectures partagées et maintenant gfx908 à 63 VGPRs sans débordement de registre.
  • Cette optimisation rend le kernel 36x plus rapide sur un R9700 et légèrement plus rapide sur le matériel CUDA.

La version fournit des binaires pour macOS, Linux, Windows, Android et openEuler sur les backends CPU, GPU (CUDA, ROCm, Vulkan, OpenCL) et NPU.