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.