La versión b11405 de llama.cpp actualiza el backend CUDA aplicando tiles al indexador lightning sobre las claves y los tokens para 4 cabezas, abordando problemas de rendimiento con un número reducido de cabezas.

  • El kernel almacena en búfer las consultas y los pesos para todas las cabezas a la vez, ampliando una vez cada elemento de clave de media precisión para alimentar a todas las cabezas sin realizar un viaje de ida y vuelta en punto flotante.
  • Las consultas permanecen en punto flotante dentro de la memoria compartida para evitar desbordamientos por productos half2 cuando q * k excede el rango f16.
  • Cada hilo ahora evalúa dos claves para un único token, reduciendo las lecturas compartidas y manteniendo gfx908 en 63 VGPRs sin derrame de registros.
  • Esta optimización hace que el kernel sea 36 veces más rápido en una R9700 y ligeramente más rápido en hardware CUDA.

La versión proporciona binarios para macOS, Linux, Windows, Android y openEuler a través de los backends CPU, GPU (CUDA, ROCm, Vulkan, OpenCL) y NPU.