Intel prepara GCC para Razor Lake y Coral Rapids con una nueva operación para cálculos criptográficos
por Manuel NaranjoIntel ha enviado al proyecto GCC una serie de parches que prepara el reconocimiento de Razor Lake y Coral Rapids. Los mensajes, publicados el 13 de noviembre por Haochen Jiang y con contribuciones de Qin Sun, permiten revisar cómo propone identificar estas futuras familias y qué instrucciones pretende habilitar para ellas.
El cambio más sencillo corresponde a Razor Lake, que aparece como alias de Nova Lake porque ambos comparten el conjunto de funciones recogido en esta propuesta. Coral Rapids recibe una incorporación más extensa, con identificación propia, opciones de compilación y soporte para una nueva operación vectorial llamada VPMLDSABFLYDQ.
Razor Lake comparte inicialmente el perfil de Nova Lake
El parche de Razor Lake añade su nombre a la tabla de procesadores de GCC, pero lo asocia al perfil que ya utiliza Nova Lake. La explicación que acompaña al envío señala expresamente que tienen el mismo conjunto de funciones. El código también incorpora los valores de modelo necesarios para reconocer la familia.
Esta equivalencia tiene un alcance concreto: describe las instrucciones y el tratamiento que propone este compilador. A partir de ella no se puede deducir que los procesadores tengan los mismos núcleos, frecuencias, cachés o consumo. Tampoco permite calcular una diferencia de rendimiento entre ambas generaciones.
La documentación modificada reúne los dos nombres bajo una lista común. Entre las capacidades enumeradas aparecen AVX10.1, AVX10.2, APX_F y MOVRS, junto con extensiones anteriores. Así, el trabajo presentado permite que el nombre Razor Lake se utilice dentro de una infraestructura de generación de código ya existente.
Para quien desarrolla software, esa distinción evita interpretar el nombre nuevo como una obligación de reescribir cada optimización. En esta propuesta inicial, GCC reutiliza el perfil de Nova Lake. Las posibles diferencias posteriores tendrían que aparecer en otros cambios o en documentación adicional del fabricante.

Coral Rapids recibe una identificación independiente
La incorporación de Coral Rapids modifica catorce archivos. Añade un identificador de procesador, reconocimiento mediante los datos de familia y modelo, macros específicas y documentación para seleccionar esta arquitectura. También introduce casos en las pruebas del compilador que comprueban el tratamiento del nuevo destino.
La opción prevista es -march=coralrapids. Este tipo de selección permite compilar tomando como referencia las capacidades del procesador elegido. Su utilización debe corresponderse con el hardware donde vaya a ejecutarse el programa, especialmente cuando se habilitan instrucciones que otros equipos pueden no admitir.
El perfil de funciones parte del de Diamond Rapids y agrega AVX10VPMLDSABFLYDQ. La lista documental incluye AVX10.2 y distintas capacidades de AMX, entre ellas AMX-FP8, AMX-TF32, AMX-AVX512 y AMX-MOVRS. Conviene leer esa relación como el soporte propuesto en el parche, sin convertirla en una ficha comercial completa.
El envío también reutiliza tablas de costes ya existentes e incorpora ajustes de planificación de instrucciones. Son decisiones internas del compilador para organizar el código generado. Esas tablas, por sí solas, no proporcionan una medida del rendimiento del procesador ni sustituyen pruebas sobre aplicaciones reales.
Una operación criptográfica con variantes de 128, 256 y 512 bits
La serie incluye un parche separado para VPMLDSABFLYDQ. Su alcance abarca la detección de la capacidad, una opción para habilitarla y funciones intrínsecas con las que el programador puede solicitar la operación desde código C o C++, sin escribir directamente toda la secuencia en ensamblador.
El archivo añadido contiene variantes para vectores de 128, 256 y 512 bits. Las pruebas comprueban que GCC emita la instrucción correspondiente con registros de cada anchura. Otro bloque compara sus resultados con cálculos de referencia, utilizando operaciones de multiplicación modular y combinaciones de suma y resta.
Este detalle concreta qué añade el soporte: el compilador necesita reconocer la capacidad y disponer de una forma de generar la instrucción, además de identificar el procesador.
La operación está vinculada a cálculos de ML-DSA, un algoritmo de firma digital diseñado para resistir ataques con ordenadores cuánticos. Su función se limita a una parte del procesamiento matemático; el parche no anuncia una aceleración medida de todo el algoritmo.
Para aprovecharla, el software criptográfico tendrá que incorporar una implementación compatible y ejecutarse sobre hardware que la admita. Los mensajes no aportan porcentajes de mejora, latencias ni comparaciones de consumo que permitan cuantificar su ventaja frente a otras instrucciones.
El envío de los parches todavía requiere integración
Los mensajes consultados están identificados como propuestas de soporte inicial. Esa fase permite revisar el código y discutir cambios antes de su incorporación. Publicar una serie en la lista de desarrollo no demuestra, por sí solo, que una versión distribuida de GCC ya incluya todas esas modificaciones.
Los envíos tampoco concretan qué versión final del compilador recibirá el soporte. Para desarrolladores y distribuidores, el siguiente dato verificable será su integración y la documentación de la versión que lo incorpore. La marca no proporciona en estos parches precios, modelos comerciales ni fechas de disponibilidad de Razor Lake o Coral Rapids.
Fin del Artículo. ¡Cuéntanos algo en los Comentarios!




