El proyecto llama.cpp ha incrementado el límite de filas hoisted para la operación mul_mat_id de Vulkan desde 256 hasta 1024 expertos. Este cambio aborda cuellos de botella de rendimiento en modelos con grandes cantidades de expertos, como Qwen3.8-Flash-Next, que anteriormente se ejecutaba en una ruta de código más lenta debido a restricciones del tamaño del array compartido.
La actualización modifica el shader count_experts.comp para usar una constante MAX_EXPERTS de 1024, aumentando los arrays compartidos a 12 KiB mientras se mantiene dentro de la garantía de 16 KiB de Vulkan. En hardware Strix Halo con un tamaño de lote de 2048, las multiplicaciones de matrices de expertos disminuyen de 12.5 a 9.5 ms para iq3_s y de 14.0 a 7.5 ms para iq4_nl por operación. La velocidad de procesamiento de prompts mejora aproximadamente un 19% en 8k tokens, y las pruebas del backend MUL_MAT_ID pasan con los nuevos casos de 1024 expertos.
Esta optimización permite a llama.cpp manejar eficientemente modelos que superan el umbral anterior de 512 expertos sin degradación del rendimiento en hardware compatible con Vulkan.