Las extensiones de matrices avanzadas ( AMX ), también conocidas como extensiones de matrices avanzadas de Intel ( Intel AMX ), son extensiones de la arquitectura del conjunto de instrucciones (ISA) x86 para microprocesadores de Intel , diseñadas para trabajar con matrices y acelerar las cargas de trabajo de inteligencia artificial (IA) y aprendizaje automático (ML). [ 1 ] En particular, realizan la multiplicación de matrices a nivel de hardware, lo que las hace idóneas para problemas y algoritmos que utilizan la multiplicación de matrices como núcleo.
Extensiones
AMX fue presentado por Intel en junio de 2020 y recibió soporte inicial de Intel con la microarquitectura Sapphire Rapids para servidores Xeon , lanzada en enero de 2023. [ 2 ] [ 3 ] Introdujo registros bidimensionales llamados teselas sobre los cuales los aceleradores pueden realizar operaciones. Está concebido como una arquitectura extensible; el primer acelerador implementado se llama unidad de multiplicación de matriz de teselas (TMUL). [ 4 ] [ 5 ]
En la revisión 46 de Intel Architecture Instruction Set Extensions and Future Features, publicada en septiembre de 2022, se documentó una nueva extensión AMX-FP16. Esta extensión añade compatibilidad con números de coma flotante de precisión media . En la revisión 48 de marzo de 2023, se documentó AMX-COMPLEX, que añade compatibilidad con números complejos de coma flotante de precisión media . Ambas extensiones están disponibles en la gama de procesadores para servidores Granite Rapids (aunque la compatibilidad con AMX-COMPLEX solo está disponible en Granite Rapids-D [ 6 ] ).
Unidad multiplicativa de matriz de mosaicos
La unidad TMUL admite los tipos de entrada BF16 e INT8 . [ 7 ] AMX-FP16 y AMX-COMPLEX también añaden soporte para números FP16 reales y complejos . El archivo de registros consta de 8 bloques, cada uno con 16 filas de 64 bytes (32 elementos BF16/FP16 o 64 elementos INT8). La única operación admitida es la multiplicación y acumulación de matrices (MMA) , que es la extensión de la operación de multiplicación-suma fusionada (FMA) para valores escalares aplicada a operandos de matriz: [ 8 ]
El núcleo del procesador Intel Xeon Scalable de cuarta generación puede realizar 2048 operaciones INT8 o 1024 operaciones BF16 por ciclo: [ 9 ] [ 10 ] los tamaños máximos de entrada sonpara A ypara B , donde J es 64 para INT8 y 32 para BF16. La multiplicación de matrices requieremultiplicación yadiciones, realizando asíoperaciones en 16 ciclos. [ 10 ]
Soporte de software
- Compatibilidad con compiladores y ensambladores
- Soporte del sistema operativo
- Soporte de glibc para la detección de la característica AMX en las CPU, implementado el 25 de junio de 2020 [ 19 ].
- Soporte del kernel de Linux desde la versión 5.16 [ 20 ]
- Compatibilidad de VMware vSphere con AMX en máquinas virtuales lanzada en ESXi versión 8.0u1 para máquinas virtuales que utilizan la versión de hardware 20 [ 21 ]
Referencias
- ↑ Hemsoth, Nicole (19 de agosto de 2021). "Con AMX, Intel añade el brillo de la IA/ML a Sapphire Rapids" . The Next Platform .
- ^ en línea, heise (28 de junio de 2020). "Intel AMX: primera información sobre la arquitectura avanzada de extensiones de matriz" . Heise en línea .
- ↑ Cutress, Ian. "Intel Xeon Sapphire Rapids: Cómo adoptar una arquitectura monolítica con módulos" . AnandTech . Archivado del original el 31 de agosto de 2021.
- 1 2 "Extensiones del conjunto de instrucciones de la arquitectura Intel® y características futuras" .
- ↑ Schor, David (29 de junio de 2020). "La extensión de matriz avanzada x86 (AMX) trae operaciones de matriz; debutará con Sapphire Rapids" .
- ↑ Larabel, Michael (12 de julio de 2023). "El soporte para Intel Granite Rapids D se fusionó con GCC 14" . Phoronix .
- ↑ "Extensión de matriz avanzada (AMX) - x86 - WikiChip" . en.wikichip.org .
- ↑ "Aceleración generalizada de las operaciones de multiplicación y acumulación de matrices" . patents.google.com .
- ↑ "Acelere las cargas de trabajo de inteligencia artificial (IA) con Intel Advanced Matrix Extensions (Intel AMX)" (PDF) . Intel . Consultado el 13 de abril de 2023 .
- 1 2 "Manual de referencia de optimización de arquitecturas Intel® 64 e IA-32, volumen 1" . Intel.
- ↑ "Novedades de LLVM para procesadores Intel® Xeon® y Max Series de cuarta generación" . Consultado el 21 de abril de 2023 .
- ↑ Larabel, Michael (2020-07-02). "Comienza a llegar el soporte para Intel AMX a LLVM" . Phoronix . Consultado el 2020-07-02 .
- ↑ " [ X86-64 ] Soporte para instrucciones Intel AMX" . GitHub . 2020-07-02 . Consultado el 2020-07-02 .
- 1 2 Larabel, Michael (2020-07-02). "El soporte para Intel AMX llega al ensamblador GNU" . Phoronix . Recuperado el 2020-07-02 .
- ↑ "Serie de lanzamientos de GCC 11: cambios, nuevas características y correcciones - Proyecto GNU" . Consultado el 21 de abril de 2023 .
- ↑ " [ PARCHE ] Habilitar la compatibilidad de GCC para AMX" . 2020-07-06 . Consultado el 2020-07-09 .
- ↑ "Habilitar la compatibilidad de GCC para AMX-TILE, AMX-INT8, AMX-BF16. · gcc-mirror/gcc@5c60984" . GitHub . Consultado el 5 de septiembre de 2022 .
- ↑ "commits con Intel AMX" . 2020-07-02 . Consultado el 2020-07-02 .
- ↑ "x86: Detectar extensiones de matriz avanzadas de Intel" . 2020-07-02 . Consultado el 2020-07-02 .
- ↑ "Las características de Linux 5.16 incluyen FUTEX2, Intel AMX, Folios, DG2/Alchemist y mayor compatibilidad con Apple Silicon" . Phoronix .
- ↑ "Acceso a las instrucciones AMX de Sapphire Rapids en vSphere" . Earl C. Ruby III . 24 de agosto de 2023.
Enlaces externos
- Guía de Intel Intrinsics
- Wikichip: Extensión de matriz avanzada (AMX) - x86
- Instrucciones X86
- computación SIMD
- Tecnologías AMD
- Extensiones del conjunto de instrucciones