La versión b10858 de llama.cpp introduce la fusión de núcleos de Vulkan para activaciones UNARY adyacentes (GELU, SIGMOID, SILU, SOFTPLUS) y operaciones MUL. Esta optimización recupera una regresión del 10-18% en la velocidad de procesamiento de prompts al eliminar accesos redundantes a memoria y ramificaciones en tiempo de ejecución.
- Las tuberías fusionadas manejan GELU, SIGMOID, SILU y SOFTPLUS con MUL, utilizando shaders SPIR-V especializados para f32 y f16.
- El optimizador de gráficos ahora programa pares fusionados incluso cuando están separados por nodos de cómputo nulo como VIEW o RESHAPE, extendiendo el soporte a patrones encontrados en modelos como Gemma4.
- El soporte para la fusión OP-on-B permite activaciones en el operando MUL más pequeño, habilitando un gating eficiente en arquitecturas de expertos compartidos.
- Las pruebas del backend cubren nuevos layouts incluyendo 'gate' y 'view_mid' para validar la corrección a través de varias formas de tensores.
El cambio mejora significativamente la latencia de inferencia para modelos que dependen en gran medida de mecanismos de gating de activación al reducir la sobrecarga computacional en el backend de Vulkan.