La versión b10956 de llama.cpp introduce un algoritmo de selección de radix para el backend SYCL con el fin de manejar valores grandes de k en la operación TOP_K, que anteriormente recurría a la CPU cuando k > 32. Este cambio permite el procesamiento residente en GPU para k grande mediante pasadas basadas en histogramas que mantienen el uso de memoria local compartida independiente de k.
- La nueva implementación admite valores de k hasta 2048 y superiores, eliminando las idas y vueltas del backend para operaciones como el indexador de atención dispersa de qwen4exp.
- Las mejoras de rendimiento incluyen una aceleración de 4.98x con ne=[131072,1] y k=2048, y hasta 118x más rápido en configuraciones de lote específicas en comparación con el recurso a la CPU.
- Las pruebas de extremo a extremo en 3x Arc Pro B60 con Qwen3.8-Flash-Next muestran un aumento del rendimiento de 5.91 a 6.05 t/s en d=131072, manteniéndose invariable la perplejidad.
- La versión incluye binarios para macOS, Linux, Windows, Android y openEuler a través de los backends CPU, CUDA, ROCm, Vulkan, OpenVINO y SYCL.
Esta actualización permite operaciones top_k con k grande eficientes en dispositivos SYCL, evitando cuellos de botella de rendimiento en modelos que requieren valores altos de k para la selección de tokens.