La versión b10306 de llama.cpp introduce optimizaciones de rendimiento para el backend SYCL, específicamente dirigidas a las operaciones de Unidad Lineal con Puerta (GLU). La actualización añade una ruta rápida contigua para las operaciones GLU fusionadas y consolida kernels previamente distintos para compartir un lanzador común.

  • Añade casos de prueba de rendimiento SWIGLU que cubren 17408 columnas con 512 y 2048 tokens en f16 y f32.
  • Consolida los kernels GLU fusionados tomando la operación como argumento, eliminando las constantes SYCL_GELU_BLOCK_SIZE y SYCL_SILU_BLOCK_SIZE no utilizadas.
  • Implementa un despacho de kernel plano para operandos contiguos donde las matemáticas del índice de desintercalado se colapsan en identidad.
  • Logra una mejora de rendimiento del +14% en f16 y del +4% en f32 para GLU dividido en un Arc Pro B70, con las operaciones fusionadas sin cambios.

Estos cambios mejoran la eficiencia del backend SYCL reduciendo la duplicación de código y optimizando los patrones de acceso a la memoria para configuraciones de tensor específicas.