Intel prepara GCC para soportar extensiones APX y AVX10.2

Junto con algunos ajustes del compilador GCC para Nova Lake y Diamond Rapids para abordar ciertas capacidades nuevas de APX que no estaban resultando beneficiosas para el rendimiento, hoy se ha registrado una nueva actividad de parches. Este trabajo prepara a GCC para el versionado múltiple de funciones (FMV) destinado a las extensiones del conjunto de instrucciones AVX10.2 y APX.

El versionado múltiple de funciones permite al programador crear múltiples versiones de una misma función, las cuales son seleccionadas en tiempo de ejecución basándose en las extensiones de arquitectura presentes en la CPU que está ejecutando el código. Con un toolchain de GCC moderno, esto resulta útil para que los desarrolladores creen rutas de código optimizadas para CPUs modernas con AVX2, AVX-512 y otras características de ISA mediante selección en tiempo de ejecución, manteniendo la capacidad de recurrir a rutas de código genéricas o versiones menos optimizadas según la CPU anfitriona utilizada.

El soporte para FMV es una característica excelente del compilador y la GNU Compiler Collection está siendo extendida ahora para soportar FMV en AVX10.2 y APX. Este parche permite utilizar FMV con las funciones de AVX10.2 y APX en preparación para la próxima generación de procesadores Intel que contarán con estas capacidades.

¿Qué permite exactamente este nuevo parche de Intel?

El parche habilita el uso de atributos de destino como "avx10.2", "apxf", "arch=diamondrapids" y "arch=novalake". Actualmente, el parche se encuentra bajo revisión para el mainline de GCC, integrándose en lo que se convertirá en la versión estable de GCC 17 durante el próximo año. Esta actualización es vital para asegurar que el software aproveche al máximo los 256 bits y las nuevas capacidades de registro que definen a las arquitecturas de alto rendimiento de Intel.

La implementación técnica busca reducir la latencia de ejecución al evitar que el software dependa únicamente de las instrucciones base, permitiendo que los binarios compilados se adapten dinámicamente al hardware. Esto es particularmente importante para el ecosistema de computación de alto rendimiento (HPC) y servidores, donde la eficiencia en el uso de los ciclos de CPU impacta directamente en el costo operativo por operación.

Vía Phoronix.