Intel publicó hoy su nuevo APX (Advanced Performance Extensions) y también reveló el nuevo AVX10 [PDF] eso brindará soporte unificado para las capacidades AVX-512 tanto para P-Core como para E-Core por primera vez. Esta evolución del conjunto de instrucciones AVX ayudará a Intel a sortear los graves problemas que encontró con su nueva arquitectura híbrida x86 que se encuentra en los procesadores Alder y Raptor Lake.
Sin embargo, el nuevo AVX10 ISA no será compatible con las CPU de generación actual de Intel; está previsto que llegue en futuros chips. Intel dice que AVX10 será su vector ISA de elección que avanza hacia el futuro tanto para procesadores de consumo como de servidor.
Intel AVX10 (Extensiones de instrucciones avanzadas 10)
En su nivel más básico, AVX10 permitirá que los chips de Intel que tienen núcleos E y núcleos P sigan siendo compatibles con AVX-512, aunque las instrucciones de 512 bits solo pueden ejecutarse en núcleos P. Mientras tanto, las instrucciones convergentes AVX10 de 256 bits pueden ejecutarse en p-cores o e-cores, lo que permite que el chip completo siga siendo compatible con las capacidades AVX-512.
Como tal, Intel no tendrá que deshabilitar la compatibilidad con vectores de 512 bits como lo hizo cuando desactivó AVX-512 para Alder Lake y Raptor Lake.
Profundizando más, el AVX10 (Advanced Instruction Extensions 10) ISA es un superconjunto de AVX-512 y viene con todas las características del AVX-512 ISA para procesadores con tamaños de registro vectorial de 256 bits y 512 bits.
El AVX10 ISA convergente incluirá «instrucciones vectoriales AVX-512 con un indicador de función AVX512VL, una longitud máxima de registro vectorial de 256 bits, así como ocho registros de máscara de 32 bits y nuevas versiones de instrucciones de 256 bits compatibles con el redondeo integrado», y esta versión se ejecutará tanto en p-cores como en e-cores.
Sin embargo, los núcleos electrónicos se limitarán a la longitud de vector máxima de 256 bits del AVX10 convergente, mientras que los núcleos P pueden usar vectores de 512 bits. Esto se parece al soporte de Arm para anchos de vector variables con SVE.
Intel dice que las aplicaciones existentes proporcionarán el mismo nivel de rendimiento con AVX10 que con AVX-512, al menos en las mismas longitudes de vector. Intel también afirma:
- Las aplicaciones compiladas con Intel AVX2, recompiladas a Intel AVX10, deberían obtener ganancias de rendimiento sin necesidad de ajustes de software adicionales.
- Las aplicaciones Intel AVX2 sensibles a la presión del registro vectorial obtendrán el máximo rendimiento gracias a los 16 registros vectoriales adicionales y las nuevas instrucciones.
- Es probable que las aplicaciones vectorizables con muchos subprocesos logren un mayor rendimiento agregado cuando se ejecutan en procesadores Intel Xeon basados en E-core o en productos Intel con arquitectura híbrida de rendimiento.
Intel admitirá AVX10 versión 1 (AVX10.1) a partir de sus chips Xeon «Granite Rapids» de sexta generación, pero esa generación solo admitirá instrucciones vectoriales de 512 bits y no las nuevas instrucciones vectoriales convergentes de 256 bits. En cambio, esta primera generación servirá como chip de transición de AVX-512 a AVX10.
Los chips que lleguen después de Granite Rapids admitirán AVX10.2, que agrega soporte para las longitudes de vector convergentes de 256 bits y otras características nuevas, como nuevos tipos y conversiones de datos de IA, optimizaciones de movimiento de datos y compatibilidad con estándares. Todos los futuros procesadores Xeon seguirán siendo totalmente compatibles con todas las instrucciones AVX-512 para garantizar que las aplicaciones heredadas funcionen con normalidad.
Para abordar los comentarios de los desarrolladores (obviamente negativos), Intel también planea simplificar significativamente sus métodos de enumeración AVX10 en comparación con AVX-512. Intel también planea asegurarse de que cada paso a una nueva revisión de AVX10 tenga suficientes instrucciones y capacidades nuevas para merecer un cambio, reduciendo así el exceso de versiones y enumeraciones.
Intel congelará el AVX-512 ISA cuando se estrene el AVX10, y todo uso futuro de las instrucciones del AVX-512 ocurrirá a través del AVX10 ISA. Mientras tanto, el nuevo AMX no se verá afectado.
Intel APX (Extensiones de rendimiento avanzado)
Intel también anunció hoy el nuevo APX (Advanced Performance Extensions) (que no debe confundirse con el iAPX 432 de la vieja escuela).
Intel afirma que el código compilado por APX contiene un 10 % menos de cargas y un 20 % menos de almacenamiento que el mismo código compilado para una base Intel 64. Intel también dice que los accesos a registros son más rápidos y consumen significativamente menos energía dinámica que las operaciones complejas de carga y almacenamiento. Curiosamente, el nuevo APX encuentra un nuevo uso para el área 128B que no se usó cuando Intel abandonó MPX en 2019 y lo reutiliza para XSAVE.
Estas son las características de nivel superior de APX:
- 16 registros adicionales de uso general (GPR) R16–R31, también denominados GPR extendidos (EGPR) en este documento
- Formatos de instrucciones de tres operandos con un nuevo registro de destino de datos (NDD) para muchas instrucciones de enteros
- Mejoras condicionales de ISA: nuevas instrucciones condicionales de carga, almacenamiento y comparación, combinadas con una opción para que el compilador suprima las escrituras de indicadores de estado de instrucciones comunes
- Operaciones de guardado/restauración de estado de registro optimizadas
- Una nueva instrucción de salto directo absoluto de 64 bits
Intel afirma que ha implementado APX de tal manera que no afectará el área de silicio ni el consumo de energía del núcleo de la CPU. Puede leer mucho más sobre APX aquí, e Intel tiene una lista de recursos tanto para APX como para AVX10 en la parte inferior de la página vinculada.
APX y AVX10 vienen inmediatamente después del reciente anuncio de Intel de que está investigando la reducción de la arquitectura Intel 64 a una versión simplificada de x86 llamada x86S.