Articulo de referencia

Extensiones de matriz avanzadas

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 d...

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 ]

donortemetro=donortemetro+j=1JAnortejBjmetro.{\displaystyle C_{nm}=C_{nm}+\sum _{j=1}^{J}A_{nj}B_{jm}.}[ 4 ]

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 son16×J{\textstyle 16\times J}para A yJ×16{\textstyle J\times 16}para B , donde J es 64 para INT8 y 32 para BF16. La multiplicación de matrices requiere256J{\textstyle 256J}multiplicación y256J{\textstyle 256J}adiciones, realizando así512J{\textstyle 512J}operaciones en 16 ciclos. [ 10 ]

Soporte de software

Referencias

  1. Hemsoth, Nicole (19 de agosto de 2021). "Con AMX, Intel añade el brillo de la IA/ML a Sapphire Rapids" . The Next Platform .
  2. ^ 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 .
  3. 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.
  4. 1 2 "Extensiones del conjunto de instrucciones de la arquitectura Intel® y características futuras" .
  5. Schor, David (29 de junio de 2020). "La extensión de matriz avanzada x86 (AMX) trae operaciones de matriz; debutará con Sapphire Rapids" .
  6. Larabel, Michael (12 de julio de 2023). "El soporte para Intel Granite Rapids D se fusionó con GCC 14" . Phoronix .
  7. "Extensión de matriz avanzada (AMX) - x86 - WikiChip" . en.wikichip.org .
  8. "Aceleración generalizada de las operaciones de multiplicación y acumulación de matrices" . patents.google.com .
  9. "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 .
  10. 1 2 "Manual de referencia de optimización de arquitecturas Intel® 64 e IA-32, volumen 1" . Intel.
  11. "Novedades de LLVM para procesadores Intel® Xeon® y Max Series de cuarta generación" . Consultado el 21 de abril de 2023 .
  12. Larabel, Michael (2020-07-02). "Comienza a llegar el soporte para Intel AMX a LLVM" . Phoronix . Consultado el 2020-07-02 .
  13. " [ X86-64 ] Soporte para instrucciones Intel AMX" . GitHub . 2020-07-02 . Consultado el 2020-07-02 .
  14. 1 2 Larabel, Michael (2020-07-02). "El soporte para Intel AMX llega al ensamblador GNU" . Phoronix . Recuperado el 2020-07-02 .
  15. "Serie de lanzamientos de GCC 11: cambios, nuevas características y correcciones - Proyecto GNU" . Consultado el 21 de abril de 2023 .
  16. " [ PARCHE ] Habilitar la compatibilidad de GCC para AMX" . 2020-07-06 . Consultado el 2020-07-09 .
  17. "Habilitar la compatibilidad de GCC para AMX-TILE, AMX-INT8, AMX-BF16. · gcc-mirror/gcc@5c60984" . GitHub . Consultado el 5 de septiembre de 2022 .
  18. "commits con Intel AMX" . 2020-07-02 . Consultado el 2020-07-02 .
  19. "x86: Detectar extensiones de matriz avanzadas de Intel" . 2020-07-02 . Consultado el 2020-07-02 .
  20. "Las características de Linux 5.16 incluyen FUTEX2, Intel AMX, Folios, DG2/Alchemist y mayor compatibilidad con Apple Silicon" . Phoronix .
  21. "Acceso a las instrucciones AMX de Sapphire Rapids en vSphere" . Earl C. Ruby III . 24 de agosto de 2023.
  • Guía de Intel Intrinsics
  • Wikichip: Extensión de matriz avanzada (AMX) - x86