La industria x86 da un paso más hacia la aceleración nativa de cargas de trabajo de inteligencia artificial con la presentación de la especificación ACE (AI Compute Extensions), un nuevo conjunto de extensiones que amplía la arquitectura existente AMX para soportar de forma más eficiente la multiplicación de matrices y los formatos de baja precisión, claves en el aprendizaje automático.
Según el Grupo Asesor del Ecosistema x86, ACE define primitivas de multiplicación de matrices que complementan el código AVX y escalar añadiendo nuevos registros y operaciones. Entre los elementos introducidos destacan un nuevo estado de registros ACE que incluye registros de tile y de escala por bloque, operaciones de procesamiento de datos que consumen entradas AVX y operan sobre tiles, instrucciones para mover datos entre registros ACE y AVX, y soporte de gestión a nivel de sistema. La especificación busca una integración estrecha entre los vectores AVX y los registros de tile ACE, combinando la alta densidad computacional de las operaciones sobre tiles con las capacidades de procesamiento de datos de AVX. Además, bajo el marco AVX10 se incluyen operaciones dedicadas de conversión de formatos.
El análisis publicado por Chips and Cheese profundiza en el contexto técnico de la propuesta. Hasta ahora, la aceleración de multiplicación matricial en x86 venía de la mano de AMX, cuya primera implementación llegó con los procesadores Intel Sapphire Rapids mediante una unidad TMUL (Tile Matrix Multiply). ACE se plantea como un segundo tipo de acelerador dentro del ecosistema AMX, diseñado para complementar a TMUL y responder a la evolución de los modelos de IA.
Una de las diferencias clave es que AMX TMUL ofrecía una configuración muy flexible de los tiles: cada registro podía definirse, por ejemplo, como una matriz de 16x64 valores INT8, y operaciones como TDPBSSD realizaban multiplicaciones de matrices completas aprovechando esa configuración. ACE, en cambio, elimina la configuración variable de los registros y fija un tamaño único de 64 bytes por 16 filas. A cambio, abandona el soporte de números complejos e incorpora FP8, un formato de ocho bits cada vez más demandado por los modelos de aprendizaje automático modernos.
Otro cambio fundamental es de enfoque matemático: mientras que AVX-512 VNNI y AMX aceleran productos internos, ACE se basa en productos externos, igual que la extensión SME de Arm. Aunque históricamente el producto interior ha sido predominante por requerir menos estado en registros, prácticamente todo el álgebra lineal puede reformularse como una combinación lineal de productos externos. La propia multiplicación de matrices es, de hecho, una suma de productos externos, por lo que adoptar este enfoque abre la puerta a implementar de forma eficiente algoritmos como la descomposición en valores singulares o incluso la FFT, para la que Arm ya ha publicado ejemplos.
En cuanto a la conversión de tipos de datos, tanto ACE como SME procesan los vectores de entrada por software, lo que les permite soportar prácticamente cualquier formato cuantizado y no solo un conjunto limitado de tipos nativos, como ocurre con los Tensor Cores de NVIDIA. ACE se apoya en el ancho fijo de 512 bits de AVX-512 y AVX10 para acelerar la desquantización. Un vector de 512 bits basta para almacenar una tabla de búsqueda que mapee tipos de hasta 6 bits a salida de 8 bits mediante la instrucción VPERMB, y para entradas de 7 bits puede combinarse un par de registros con VPERMI2B. A esto se suma la nueva instrucción VUNPACKB, introducida en ACE/AVX10.3, que desempaqueta elementos de entre 2 y 7 bits en posiciones alineadas a byte, lista para que las instrucciones de permutación realicen la conversión final.
Comparado con SME y SME2 de Arm, ACE hereda los 8 KB de registros de tile de AMX, un tamaño fijo, mientras que la solución de Arm utiliza una longitud de vector "streaming" variable entre 128 y 2048 bits que define el tamaño del array ZA, que puede ir desde 256 bytes hasta 64 KB. La flexibilidad de Arm contrasta con la estrategia de Intel y del ecosistema x86 de apostar por anchos fijos y una integración profunda con AVX.
En definitiva, ACE representa la respuesta del ecosistema x86 a la creciente presión por ejecutar cargas de inferencia y entrenamiento de IA directamente en la CPU, con baja latencia y sin depender exclusivamente de GPUs o aceleradores externos. Si la industria adopta la especificación, los desarrolladores dispondrán de primitivas más alineadas con los formatos y operaciones que dominan los modelos actuales, con una ruta clara para soportar nuevos tipos de datos mediante software. La implementación en hardware y su adopción real por parte de compiladores y frameworks serán los próximos hitos a seguir.
