stringtranslate.com

AVX-512

AVX-512 son extensiones de 512 bits de las instrucciones SIMD de extensiones vectoriales avanzadas de 256 bits para la arquitectura de conjunto de instrucciones (ISA) x86 propuestas por Intel en julio de 2013 e implementadas por primera vez en Intel Xeon Phi x200 (Knights Landing) de 2016, [1 ] y luego en varias CPU AMD y otras CPU Intel (consulte la lista a continuación). AVX-512 consta de múltiples extensiones que pueden implementarse de forma independiente. [2] Esta política se aparta del requisito histórico de implementar todo el bloque de instrucciones. Todas las implementaciones de AVX-512 solo requieren la extensión principal AVX-512F (AVX-512 Foundation).

Además de ampliar la mayoría de las instrucciones de 256 bits, las extensiones introducen varias operaciones nuevas, como nuevas conversiones de datos, operaciones de dispersión y permutaciones. [2] El número de registros AVX aumenta de 16 a 32 y se agregan ocho nuevos "registros de máscara", que permiten la selección variable y la combinación de los resultados de las instrucciones. En las CPU con la extensión de longitud vectorial (VL), incluida en la mayoría de los procesadores compatibles con AVX-512 (consulte § CPU con AVX-512), estas instrucciones también se pueden utilizar en los tamaños vectoriales de 128 y 256 bits. AVX-512 no es el primer conjunto de instrucciones SIMD de 512 bits que Intel ha introducido en los procesadores: las instrucciones SIMD de 512 bits anteriores utilizadas en los coprocesadores Xeon Phi de primera generación , derivadas del proyecto Larrabee de Intel , son similares pero no compatibles binariamente y solo parcialmente compatible con la fuente. [1]

Conjunto de instrucciones

El conjunto de instrucciones AVX-512 consta de varios conjuntos separados, cada uno de los cuales tiene su propio bit de característica CPUID único; sin embargo, normalmente se agrupan según la generación de procesador que los implementa.

F, CD, ER, PF
Introducido con Xeon Phi x200 (Knights Landing) y Xeon Gold/Platinum ( Skylake SP "Purley"), siendo los dos últimos (ER y PF) específicos de Knights Landing.
  • AVX-512 Foundation (F) : amplía la mayoría de las instrucciones AVX  basadas en 32 y 64 bits con el esquema de codificación EVEX para admitir registros de 512 bits, máscaras de operación, transmisión de parámetros y control integrado de excepciones y redondeo, implementado por Knights Landing y Skylake Xeon
  • AVX-512 Instrucciones de detección de conflictos (CD)  : detección eficiente de conflictos para permitir vectorizar más bucles , implementado por Knights Landing [1] y Skylake X
  • AVX-512 Instrucciones exponenciales y recíprocas (ER): operaciones exponenciales y recíprocas diseñadas para ayudar a implementar operaciones trascendentales , implementadas por Knights Landing [1]
  • Instrucciones de captación previa (PF) AVX-512  : nuevas capacidades de captación previa, implementadas por Knights Landing [1]
VL, DQ, BW
Introducido con Skylake X y Cannon Lake .
  • Extensiones de longitud vectorial (VL) AVX-512  : amplía la mayoría de las operaciones de AVX-512 para operar también en registros XMM (128 bits) e YMM (256 bits) [3]
  • Instrucciones AVX-512 de doble palabra y cuádruple (DQ)  : agrega nuevas instrucciones AVX-512 de 32 y 64 bits [3]
  • AVX-512 Instrucciones de bytes y palabras (BW)  : extiende AVX-512 para cubrir operaciones enteras de 8 y 16 bits [3]
IFMA, VBMI
Introducido con Cannon Lake . [4]
  • AVX-512 Suma multiplicada fusionada de enteros (IFMA) : suma multiplicada fusionada de números enteros con precisión de 52 bits.
  • Las instrucciones de manipulación de bytes vectoriales (VBMI) de AVX-512 agregan instrucciones de permutación de bytes vectoriales que no estaban presentes en AVX-512BW.
4VNNIW, 4FMAPS
Introducido con Knights Mill . [5] [6]
  • Instrucciones de red neuronal vectorial AVX-512 Precisión variable de palabras (4VNNIW) : instrucciones vectoriales para aprendizaje profundo, palabras mejoradas y precisión variable.
  • AVX-512 Precisión simple empaquetada de acumulación multiplicada fusionada (4FMAPS) : instrucciones vectoriales para aprendizaje profundo, punto flotante y precisión simple.
VPOPCNTDQ
Instrucción de recuento de población de vectores . Introducido con Knights Mill y Ice Lake . [7]
VNNI, VBMI2, BITALG
Introducido con Ice Lake. [7]
  • Instrucciones de red neuronal vectorial (VNNI) AVX-512 : instrucciones vectoriales para aprendizaje profundo.
  • AVX-512 Instrucciones de manipulación de bytes vectoriales 2 (VBMI2) : carga, almacenamiento y concatenación de bytes/palabras con desplazamiento.
  • Algoritmos de bits AVX-512 (BITALG) : instrucciones de manipulación de bits de bytes/palabras que expanden VPOPCNTDQ.
VP2INTERSECTO
Introducido con Tiger Lake.
  • Intersección de par vectorial AVX-512 con un par de registros de máscara (VP2INTERSECT) .
GFNI, VPCLMULQDQ, VAES
Introducido con Ice Lake. [7]
  • Estas no son características del AVX-512 en sí. Junto con AVX-512, habilitan versiones codificadas EVEX de instrucciones GFNI, PCLMULQDQ y AES.

Codificación y características.

El prefijo VEX utilizado por AVX y AVX2, aunque flexible, no dejaba suficiente espacio para las funciones que Intel quería agregar a AVX-512. Esto les ha llevado a definir un nuevo prefijo llamado EVEX .

En comparación con VEX, EVEX agrega los siguientes beneficios: [6]

Los registros extendidos, el bit de ancho SIMD y los registros de máscara de operación de AVX-512 son obligatorios y todos requieren soporte del sistema operativo.

Modos SIMD

Las instrucciones AVX-512 están diseñadas para combinarse con instrucciones AVX/AVX2 de 128/256 bits sin penalización en el rendimiento. Sin embargo, las extensiones AVX-512VL permiten el uso de instrucciones AVX-512 en registros XMM/YMM de 128/256 bits, por lo que la mayoría de las instrucciones SSE y AVX/AVX2 tienen nuevas versiones de AVX-512 codificadas con el prefijo EVEX que permiten el acceso a nuevas funciones. como opmask y registros adicionales. A diferencia de AVX-256, las nuevas instrucciones no tienen mnemónicos nuevos, pero comparten espacio de nombres con AVX, lo que hace que la distinción entre las versiones codificadas VEX y EVEX de una instrucción sea ambigua en el código fuente. Dado que AVX-512F solo funciona con valores de 32 y 64 bits, las instrucciones SSE y AVX/AVX2 que operan con bytes o palabras solo están disponibles con la extensión AVX-512BW (compatible con bytes y palabras). [6]

Registros extendidos

El ancho del archivo de registros SIMD aumenta de 256 bits a 512 bits y se expande de 16 a un total de 32 registros ZMM0–ZMM31. Estos registros se pueden direccionar como registros YMM de 256 bits de extensiones AVX y registros XMM de 128 bits de Streaming SIMD Extensions , y las instrucciones AVX y SSE heredadas se pueden ampliar para operar en los 16 registros adicionales XMM16-XMM31 e YMM16-YMM31 cuando se usa EVEX. forma codificada.

Registros de máscara de operación

La mayoría de las instrucciones AVX-512 pueden indicar uno de los 8 registros de máscara de operación (k0 – k7). Para instrucciones que utilizan un registro de máscara como máscara de operación, el registro 'k0' es especial: una constante codificada que se utiliza para indicar operaciones desenmascaradas. Para otras operaciones, como aquellas que escriben en un registro de máscara de operaciones o realizan operaciones aritméticas o lógicas, 'k0' es un registro válido y funcional. En la mayoría de las instrucciones, la máscara de operación se utiliza para controlar qué valores se escriben en el destino. Una bandera controla el comportamiento de la máscara de operación, que puede ser "cero", que pone a cero todo lo que no está seleccionado por la máscara, o "fusionar", que deja intacto todo lo que no está seleccionado. El comportamiento de combinación es idéntico a las instrucciones de combinación.

Los registros de máscara de operación normalmente tienen 16 bits de ancho, pero pueden tener hasta 64 bits con la extensión AVX-512BW. [6] Sin embargo, la cantidad de bits que se utilizan realmente depende del tipo de vector de las instrucciones enmascaradas. Para las palabras flotantes simples o dobles de 32 bits, se utilizan 16 bits para enmascarar los 16 elementos en un registro de 512 bits. Para palabras flotantes dobles y cuádruples, se utilizan como máximo 8 bits de máscara.

El registro de máscara de operación es la razón por la cual se agregaron varias instrucciones bit a bit que naturalmente no tienen anchos de elementos en AVX-512. Por ejemplo, la combinación AND, OR o aleatoria de 128 bits ahora existe tanto en variantes de dos palabras como de cuatro palabras, con la única diferencia en el enmascaramiento final.

Nuevas instrucciones de máscara de operación

Los registros opmask tienen una nueva mini extensión de instrucciones que opera directamente sobre ellos. A diferencia del resto de las instrucciones AVX-512, todas estas instrucciones están codificadas en VEX. Las instrucciones iniciales de opmask son todas versiones de 16 bits (Word). Con AVX-512DQ se agregaron versiones de 8 bits (Byte) para satisfacer mejor las necesidades de enmascarar 8 valores de 64 bits, y con AVX-512BW se agregaron versiones de 32 bits (Doble) y 64 bits (Cuádruple) para que puedan enmascara hasta 64 valores de 8 bits. Las instrucciones KORTEST y KTEST se pueden usar para configurar los indicadores x86 según los registros de máscara, de modo que se puedan usar junto con instrucciones condicionales y de rama x86 que no sean SIMD.

Nuevas instrucciones en la base AVX-512.

Muchas instrucciones AVX-512 son simplemente versiones EVEX de instrucciones SSE o AVX antiguas. Sin embargo, hay varias instrucciones nuevas e instrucciones antiguas que han sido reemplazadas por nuevas versiones de AVX-512. Las instrucciones nuevas o muy modificadas se enumeran a continuación. Estas instrucciones básicas también incluyen las extensiones de AVX-512VL y AVX-512BW, ya que esas extensiones simplemente agregan nuevas versiones de estas instrucciones en lugar de nuevas instrucciones.

Mezclar usando mascarilla

No hay versiones con prefijo EVEX de las instrucciones de mezcla de SSE4 ; en cambio, AVX-512 tiene un nuevo conjunto de instrucciones de combinación que utilizan registros de máscara como selectores. Junto con las instrucciones generales de comparación en máscara que aparecen a continuación, se pueden utilizar para implementar operaciones ternarias genéricas o cmov, similares a VPCMOV de XOP .

Dado que la combinación es una parte integral de la codificación EVEX, estas instrucciones también pueden considerarse instrucciones de movimiento básicas. Usando el modo de fusión de puesta a cero, también se pueden usar como instrucciones de enmascaramiento.

Comparar en máscara

AVX-512F tiene cuatro nuevas instrucciones de comparación. Al igual que sus homólogos XOP , utilizan el campo inmediato para seleccionar entre 8 comparaciones diferentes. Sin embargo, a diferencia de su inspiración XOP, guardan el resultado en un registro de máscara e inicialmente solo admiten comparaciones de palabras dobles y cuádruples. La extensión AVX-512BW proporciona las versiones de bytes y palabras. Tenga en cuenta que se pueden especificar dos registros de máscara para las instrucciones, uno para escribir y otro para declarar el enmascaramiento normal. [6]

Máscara de conjunto lógico

La última forma de configurar máscaras es usar Máscara de conjunto lógico. Estas instrucciones realizan AND o NAND y luego configuran la máscara de operación de destino en función de que los valores del resultado sean cero o distintos de cero. Tenga en cuenta que, al igual que las instrucciones de comparación, estas toman dos registros de máscara de operación, uno como destino y otro como máscara de operación normal.

Comprimir y expandir

Las instrucciones de compresión y expansión coinciden con las operaciones APL del mismo nombre. Usan la máscara de operación de una manera ligeramente diferente a otras instrucciones AVX-512. Comprimir solo guarda los valores marcados en la máscara, pero los guarda compactados omitiendo y sin reservar espacio para valores no marcados. Expandir opera de manera opuesta, cargando tantos valores como se indica en la máscara y luego extendiéndolos a las posiciones seleccionadas.

Permutar

Se ha agregado un nuevo conjunto de instrucciones de permutación para dos permutaciones de entrada completas. Todos toman tres argumentos, dos registros fuente y un índice; el resultado se genera sobrescribiendo el primer registro fuente o el registro índice. AVX-512BW amplía las instrucciones para incluir también versiones de 16 bits (palabra), y la extensión AVX-512_VBMI define las versiones de bytes de las instrucciones.

Lógica ternaria bit a bit

Se agregaron dos nuevas instrucciones que pueden implementar lógicamente todas las operaciones bit a bit posibles entre tres entradas. Toman tres registros como entrada y un campo inmediato de 8 bits. Cada bit de la salida se genera mediante una búsqueda de los tres bits correspondientes en las entradas para seleccionar una de las 8 posiciones en el inmediato de 8 bits. Dado que solo son posibles 8 combinaciones usando tres bits, esto permite realizar todas las operaciones bit a bit de 3 entradas posibles. [6] Estas son las únicas instrucciones vectoriales bit a bit en AVX-512F; Las versiones EVEX de las dos instrucciones vectoriales bit a bit SSE y AVX de origen AND, ANDN, OR y XOR se agregaron en AVX-512DQ.

La diferencia entre las versiones de dos y cuatro palabras es solo la aplicación de la máscara de operación.

Conversiones

Se agregaron varias instrucciones de conversión o movimiento; estos completan el conjunto de instrucciones de conversión disponibles en SSE2.

Descomposición en coma flotante

Entre las nuevas características únicas de AVX-512F se encuentran instrucciones para descomponer valores de punto flotante y manejar valores especiales de punto flotante . Dado que estos métodos son completamente nuevos, también existen en versiones escalares.

Aritmética de punto flotante

Este es el segundo conjunto de nuevos métodos de punto flotante, que incluye nueva escala y cálculo aproximado del recíproco y del recíproco de la raíz cuadrada. Las instrucciones recíprocas aproximadas garantizan tener como máximo un error relativo de 2 −14 . [6]

Transmisión

Misceláneas

Nuevas instrucciones por conjuntos.

Detección de conflictos

Las instrucciones de detección de conflictos AVX-512 (AVX-512CD) están diseñadas para ayudar a calcular de manera eficiente subconjuntos de elementos libres de conflictos en bucles que normalmente no se podrían vectorizar de forma segura. [8]

Exponencial y recíproco

Las instrucciones AVX-512 exponencial y recíproca (AVX-512ER) contienen instrucciones recíprocas aproximadas más precisas que las de la base AVX-512; El error relativo es como máximo 2 −28 . También contienen dos nuevas funciones exponenciales que tienen un error relativo de como máximo 2 −23 . [6]

captación previa

Las instrucciones de captación previa de AVX-512 (AVX-512PF) contienen nuevas operaciones de captación previa para la nueva funcionalidad de dispersión y recopilación introducida en AVX2 y AVX-512. T0captación previa significa captación previa en la caché de nivel 1 y T1significa captación previa en la caché de nivel 2.

4FMAPS y 4VNNIW

Los dos conjuntos de instrucciones realizan múltiples iteraciones de procesamiento. Generalmente sólo se encuentran en los productos Xeon Phi.

BW, DQ y VBMI

AVX-512DQ agrega nuevas instrucciones de dos y cuatro palabras. AVX-512BW agrega versiones en bytes y palabras de las mismas instrucciones, y agrega versiones en bytes y palabras de instrucciones de dos o cuatro palabras en AVX-512F. Algunas instrucciones que obtienen sólo formas de palabras con AVX-512BW adquieren formas de bytes con la extensión AVX-512_VBMI ( ,,, VPERMB) .VPERMI2BVPERMT2BVPMULTISHIFTQB

Se agregaron dos nuevas instrucciones al conjunto de instrucciones de la máscara: KADDy KTEST(formas B y W con AVX-512DQ, D y Q con AVX-512BW). El resto de las instrucciones de máscara, que solo tenían formas de palabras, obtuvieron formas de bytes con AVX-512DQ y formas de palabras dobles/cuádruples con AVX-512BW. KUNPCKBWfue ampliado hacia KUNPCKWDy KUNPCKDQpor AVX-512BW.

Entre las instrucciones agregadas por AVX-512DQ se encuentran varias instrucciones SSE y AVX que no obtuvieron las versiones AVX-512 con AVX-512F, entre ellas se encuentran las dos instrucciones bit a bit de entrada y las instrucciones de extracción/inserción de números enteros.

A continuación se tratan instrucciones que son completamente nuevas.

Instrucciones de punto flotante

Se introducen tres nuevas operaciones de punto flotante. Dado que no sólo son nuevos en AVX-512, tienen versiones empaquetadas/SIMD y escalares.

Las VFPCLASSinstrucciones prueban si el valor de punto flotante es uno de los ocho valores especiales de punto flotante, cuál de los ocho valores activará un bit en el registro de máscara de salida está controlado por el campo inmediato. Las VRANGEinstrucciones realizan operaciones de mínimo o máximo dependiendo del valor del campo inmediato, que también puede controlar si la operación se hace absoluta o no y por separado cómo se maneja el signo. Las VREDUCEinstrucciones operan en una sola fuente y restan de ella la parte entera del valor de la fuente más una cantidad de bits especificados en el campo inmediato de su fracción.

Otras instrucciones

VBMI2

Amplíe VPCOMPRESS y VPEXPAND con variantes de bytes y palabras. Las instrucciones de turno son nuevas.

VNI

Instrucciones de red neuronal vectorial: [9] AVX512-VNNI agrega instrucciones codificadas en EVEX que se describen a continuación. Con AVX-512F, estas instrucciones pueden operar en vectores de 512 bits y AVX-512VL agrega soporte para vectores de 128 y 256 bits.

Una extensión AVX-VNNI posterior agrega codificaciones VEX de estas instrucciones que solo pueden operar en vectores de 128 o 256 bits. AVX-VNNI no forma parte de la suite AVX-512, no requiere AVX-512F y se puede implementar de forma independiente.

IFMA

Instrucciones de multiplicación y suma fusionadas con enteros. AVX512-IFMA agrega instrucciones codificadas en EVEX que se describen a continuación.

Una extensión separada del conjunto de instrucciones AVX-IFMA define la codificación VEX de estas instrucciones. Esta extensión no forma parte de la suite AVX-512 y se puede implementar de forma independiente.

VPOPCNTDQ y BITALG

VP2INTERSECTO

GFNI

Las nuevas instrucciones de campo de Galois son útiles para la criptografía, [10] ya que pueden usarse para implementar S-boxes estilo Rijndael , como las utilizadas en AES, Camellia y SM4 . [11] Estas instrucciones también se pueden utilizar para la manipulación de bits en redes y procesamiento de señales. [10]

GFNI es una extensión de conjunto de instrucciones independiente y se puede habilitar por separado de AVX o AVX-512. Dependiendo de si la CPU indica la compatibilidad con AVX y AVX-512F, la compatibilidad con GFNI permite instrucciones codificadas heredadas (SSE), VEX o EVEX que funcionan en vectores de 128, 256 o 512 bits.

VPCLMULQDQ

VPCLMULQDQ con AVX-512F agrega una versión de 512 bits codificada con EVEX de la instrucción PCLMULQDQ . Con AVX-512VL, agrega versiones codificadas en EVEX de 256 y 128 bits. VPCLMULQDQ solo (es decir, en CPU que no son AVX512) agrega solo la versión de 256 bits codificada VEX. (La disponibilidad de la versión de 128 bits codificada en VEX se indica mediante diferentes bits de CPUID: PCLMULQDQ y AVX). Las variaciones de la instrucción de más de 128 bits realizan la misma operación en cada porción de 128 bits de los registros de entrada, pero no No lo extienda para seleccionar palabras cuádruples de diferentes campos de 128 bits (el significado del operando imm8 es el mismo: se selecciona una palabra cuádruple baja o alta del campo de 128 bits).

VAES

Instrucciones AES codificadas con VEX y EVEX . Las variaciones de la instrucción de más de 128 bits realizan la misma operación en cada porción de 128 bits de los registros de entrada. Las versiones VEX se pueden utilizar sin soporte AVX-512.

bf16

Instrucciones de aceleración de IA que funcionan con los números Bfloat16 .

FP16

Una extensión del conjunto de instrucciones F16C anterior , que agrega soporte integral para los números de punto flotante binario16 (también conocidos como FP16, float16 o números de punto flotante de media precisión). Las nuevas instrucciones implementan la mayoría de las operaciones que anteriormente estaban disponibles para números de punto flotante de precisión simple y doble y también introducen nuevas instrucciones de números complejos e instrucciones de conversión. Se admiten operaciones escalares y empaquetadas.

A diferencia de las instrucciones de formato de precisión simple y doble, los operandos de media precisión no se vacían condicionalmente a cero ( FTZ ) ni se tratan condicionalmente como cero ( DAZ ) según MXCSRla configuración. Los valores subnormales se procesan a toda velocidad mediante hardware para facilitar el uso de todo el rango dinámico de los números FP16. Las instrucciones que crean números FP32 y FP64 aún respetan el MXCSR.FTZbit. [12]

Instrucciones aritméticas

Instrucciones aritméticas complejas

Instrucciones recíprocas aproximadas

Instrucciones de comparación

Instrucciones de conversión

Instrucciones de descomposición

Mover instrucciones

Instrucciones heredadas con versiones codificadas en EVEX

CPU con AVX-512

^Nota 1  : Intel no admite oficialmente la familia de instrucciones AVX-512 en los microprocesadores Alder Lake . Intel ha deshabilitado el AVX-512 en silicio (desconectado) en versiones recientes de los microprocesadores Alder Lake para evitar que los clientes habiliten el AVX-512. [32] En las CPU más antiguas de la familia Alder Lake con algunas combinaciones heredadas de BIOS y revisiones de microcódigo, era posible ejecutar instrucciones de la familia AVX-512 al deshabilitar todos los núcleos de eficiencia que no contienen el silicio para AVX-512. [33] [34] [22]

Actuación

Intel Vectorization Advisor (a partir de la versión 2017) admite el rendimiento nativo AVX-512 y el análisis de calidad del código vectorial (para procesadores "Core", Xeon e Intel Xeon Phi ). Junto con el perfil de puntos de acceso tradicional, las recomendaciones de Advisor y la integración "perfecta" de los diagnósticos de vectorización del compilador Intel, el análisis de Advisor Survey también proporciona métricas ISA de AVX-512 y nuevos "rasgos" específicos de AVX-512, por ejemplo, dispersión, compresión/expansión y utilización de máscara. [35] [36]

En algunos procesadores (en su mayoría Intel anteriores a Ice Lake ), las instrucciones AVX-512 pueden provocar una aceleración de la frecuencia incluso mayor que la de sus predecesores, lo que genera una penalización por cargas de trabajo mixtas. La reducción de reloj adicional se activa mediante el ancho de vectores de 512 bits y depende de la naturaleza de las instrucciones que se ejecutan, y el uso de la parte de 128 o 256 bits de AVX-512 (AVX-512VL) no lo activa. Como resultado, gcc y clang prefieren de forma predeterminada el uso de vectores de 256 bits para objetivos Intel. [37] [38] [39]

Los compiladores de C/ C++ también manejan automáticamente el desarrollo de bucles y evitan paradas en el proceso para usar AVX-512 de manera más efectiva, lo que significa que un programador que usa elementos intrínsecos del lenguaje para intentar forzar el uso de AVX-512 a veces puede resultar en un peor rendimiento en relación con el código generado por el compilador cuando encuentra bucles claramente escritos en el código fuente. [40] En otros casos, el uso de elementos intrínsecos de AVX-512 en código C/C++ puede dar lugar a una mejora del rendimiento en relación con C/C++ escrito de forma sencilla. [41]

Recepción

Hay muchos ejemplos de aplicaciones AVX-512 , incluido el procesamiento de medios, criptografía, videojuegos , [42] redes neuronales , [43] e incluso OpenJDK , que emplea AVX-512 para la clasificación . [44]

En una cita muy citada de 2020, Linus Torvalds dijo: "Espero que AVX-512 tenga una muerte dolorosa y que Intel comience a solucionar problemas reales en lugar de intentar crear instrucciones mágicas para luego crear puntos de referencia en los que puedan verse bien " . 45] afirmando que preferiría que el presupuesto de transistores se gastara en núcleos adicionales y rendimiento de números enteros, y que "detesta" los puntos de referencia de punto flotante . [46]

Numenta promociona su tecnología de red neuronal "muy escasa " [47] , que, según dicen, evita la necesidad de GPU ya que sus algoritmos se ejecutan en CPU con AVX-512. [48] ​​Afirman una aceleración diez veces mayor en relación con A100 en gran parte porque sus algoritmos reducen el tamaño de la red neuronal, manteniendo al mismo tiempo la precisión , mediante técnicas como el algoritmo Sparse Evolutionary Training (SET) [49] y Foresight Pruning. [50]

Ver también

Referencias

  1. ^ abcdef James Reinders (23 de julio de 2013). "Instrucciones AVX-512". Intel . Consultado el 20 de agosto de 2013 .
  2. ^ ab Kusswurm 2022, pag. 223.
  3. ^ abc James Reinders (17 de julio de 2014). "Instrucciones adicionales de AVX-512". Intel . Consultado el 3 de agosto de 2014 .
  4. ^ Antón Shilov. "Los procesadores Intel 'Skylake' para PC no admitirán las instrucciones AVX-512". Kitguru.net . Consultado el 17 de marzo de 2015 .
  5. ^ "Intel agregará instrucciones de aprendizaje profundo a sus procesadores". 14 de octubre de 2016.
  6. ^ abcdefgh "Referencia de programación de extensiones del conjunto de instrucciones de la arquitectura Intel" (PDF) . Intel . Consultado el 29 de enero de 2014 .
  7. ^ abcdef "Referencia de programación de características futuras y extensiones del conjunto de instrucciones de la arquitectura Intel". Intel . Consultado el 16 de octubre de 2017 .
  8. ^ "Póster AVX-512 Arquitectura/Demikhovsky" (PDF) . Intel . Consultado el 25 de febrero de 2014 .
  9. ^ "Impulso del aprendizaje profundo Intel®" (PDF) . Intel . Consultado el 11 de octubre de 2021 .
  10. ^ ab "Guía de tecnología de nuevas instrucciones de campo Galois (GFNI)". networkbuilders.intel.com .
  11. ^ Kivilinna, Jussi (19 de abril de 2023). "camelia-simd-aesni". GitHub . Los procesadores x86-64 más nuevos también admiten las nuevas instrucciones de campo Galois (GFNI), que permiten implementar Camellia s-box de manera más sencilla y producir un rendimiento aún mejor.
  12. ^ "Especificación de arquitectura Intel® AVX512-FP16, junio de 2021, revisión 1.0, referencia 347407-001US" (PDF) . Intel. 2021-06-30 . Consultado el 4 de julio de 2021 .
  13. ^ "Resumen del producto del procesador Intel Xeon Phi". Intel . Consultado el 12 de octubre de 2016 .
  14. ^ "Intel presenta la plataforma de la serie X: hasta 18 núcleos y 36 subprocesos, de 242 a 2000 dólares". Ars Técnica . Consultado el 30 de mayo de 2017 .
  15. ^ "Intel Advanced Vector Extensions 2015/2016: compatibilidad con la colección de compiladores GNU" (PDF) . Gcc.gnu.org . Consultado el 20 de octubre de 2016 .
  16. ^ Patrizio, Andy (21 de septiembre de 2015). "Se filtra la hoja de ruta de Intel Xeon para 2016". Itworld.org . Consultado el 20 de octubre de 2016 .
  17. ^ "Revisión de Intel Core i9-11900K: ¿el procesador para juegos más rápido del mundo?". www.techpowerup.com . 30 de marzo de 2021.
  18. ^ ""Agregar rocketlake al "compromiso" de gcc. gcc.gnu.org .
  19. ^ "Especificaciones del producto del procesador Intel Celeron 6305 (caché de 4 M, 1,80 GHz, con IPU)". ark.intel.com . Archivado desde el original el 18 de octubre de 2020 . Consultado el 10 de noviembre de 2020 .
  20. ^ Computadora portátil Murah Kinerja Boleh Diadu | HP 14S DQ2518TU , consultado el 8 de agosto de 2021
  21. ^ "Uso de la colección de compiladores GNU (GCC): opciones x86". GNU . Consultado el 14 de octubre de 2019 .
  22. ^ ab Cutress, Ian; Frumusanu, Andrei. "Revisión de Intel 12.ª generación Core i9-12900K: el rendimiento híbrido aporta complejidad híbrida". www.anandtech.com . Consultado el 5 de noviembre de 2021 .
  23. ^ Larabel, Michael. "Intel Core i9 12900K" Alder Lake "AVX-512 en Linux". www.phoronix.com . Consultado el 8 de noviembre de 2021 .
  24. ^ Larabel, Michael. "Comparación de rendimiento de AVX-512: AMD Genoa frente a Intel Sapphire Rapids y Ice Lake". www.phoronix.com . Consultado el 19 de enero de 2023 .
  25. ^ "El primer SOC x86 de alto rendimiento de la industria con CPU de clase servidor y tecnología de coprocesador de IA integrada". 2 de agosto de 2022. Archivado desde el original el 12 de diciembre de 2019.{{cite web}}: Mantenimiento CS1: URL no apta ( enlace )
  26. ^ "Latencia de instrucciones x86, x64, latencia de memoria y volcados de CPUID (instlatx64)". usuarios.atw.hu .
  27. ^ "Las CPU Ryzen basadas en AMD Zen 4 pueden incluir hasta 24 núcleos y compatibilidad con vectores AVX512". Tiempos de hardware . 2021-05-23 . Consultado el 2 de septiembre de 2021 .
  28. ^ Hagedoorn, Hilbert (18 de mayo de 2021). "AMD trabajando en un prodigioso procesador EPYC de 96 núcleos". Guru3D.com . Consultado el 25 de mayo de 2021 .
  29. ^ sopa de almejas (23 de agosto de 2021). "Detalles sobre la fuga de Gigabyte". Patatas Fritas Y Queso . Consultado el 10 de junio de 2022 .
  30. ^ W1zzard (26 de mayo de 2022). "AMD responde a nuestras preguntas sobre tecnología Zen 4, con Robert Hallock". TechPowerUp . Consultado el 29 de mayo de 2022 .
  31. ^ Larabel, Michael (26 de septiembre de 2022). "Análisis de rendimiento de AMD Zen 4 AVX-512 en el Ryzen 9 7950X". www.phoronix.com .
  32. ^ Alcorn, Paul (2 de marzo de 2022). "El soporte AVX-512 de Intel Nukes Alder Lake, ahora lo fusiona en silicio". Hardware de Tom . Consultado el 7 de marzo de 2022 .
  33. ^ Cortadora, Ian; Frumusanu, Andrei (19 de agosto de 2021). "Día de la Arquitectura Intel 2021: Alder Lake, Golden Cove y Gracemont detallados". AnandTech . Consultado el 25 de agosto de 2021 .
  34. ^ Alcorn, Paul (19 de agosto de 2021). "Día de la Arquitectura Intel 2021: chips Alder Lake, núcleos Golden Cove y Gracemont". Hardware de Tom . Consultado el 21 de agosto de 2021 .
  35. ^ "Intel Advisor XE 2016 Actualización 3 Novedades: software Intel". Software.intel.com . Consultado el 20 de octubre de 2016 .
  36. ^ "Intel Advisor - Software Intel". Software.intel.com . Consultado el 20 de octubre de 2016 .
  37. ^ Cordés, Pedro. "Instrucciones SIMD que reducen la frecuencia de la CPU". Desbordamiento de pila .
  38. ^ Cordés, Pedro. "¿Por qué la vectorización automática de gcc para Tigerlake utiliza registros ymm y no zmm?". Desbordamiento de pila .
  39. ^ "Notas de la versión LLVM 10.0.0".
  40. ^ Mateo Kolbe (10 de octubre de 2023). Lightning Talk: Cómo aprovechar los intrínsecos de SIMD para desaceleraciones masivas - Matthew Kolbe - CppNow 2023. C++Now . Consultado el 15 de octubre de 2023 a través de YouTube.
  41. ^ Clausecker, Robert (5 de agosto de 2023). "Transcodificación de caracteres Unicode con instrucciones AVX-512". arXiv : 2212.05098 [cs.DS].
  42. ^ Szewczyk, Chris (24 de noviembre de 2021). "El emulador RPCS3 PS3 obtiene un gran impulso en las CPU Intel Alder Lake con AVX-512 habilitado". Jugador de PC . Consultado el 11 de octubre de 2023 .
  43. ^ Carneiro, André; Serpa, Matheus (5 de septiembre de 2021). "Aplicaciones ligeras de aprendizaje profundo en AVX-512". Simposio IEEE 2021 sobre Computadoras y Comunicaciones (ISCC) . Atenas : IEEE . págs. 1–6. doi :10.1109/ISCC53001.2021.9631464.
  44. ^ Parasa, Srinivas (30 de mayo de 2023). "JDK-8309130: x86_64 AVX512 intrínsecos para métodos Arrays.sort (int, long, float y double arrays)". AbiertoJDK . Consultado el 11 de octubre de 2023 .
  45. ^ Tung, Liam (13 de julio de 2020). "Linus Torvalds: Espero que el AVX-512 de Intel tenga una muerte dolorosa". ZDNet . Consultado el 11 de octubre de 2023 .
  46. ^ Torvalds, Linus (11 de julio de 2020). "Lago Alder y AVX-512". realworldtech.com . Consultado el 11 de octubre de 2023 .
  47. ^ "Sparsity permite una aceleración del rendimiento 100 veces mayor en redes de aprendizaje profundo: una demostración de tecnología" (PDF) . numenta.com . 2021-05-20 . Consultado el 11 de octubre de 2023 .
  48. ^ Afifi-Sabet, Keumars (8 de octubre de 2023). "Una pequeña startup ha ayudado a Intel a derrotar a AMD y Nvidia en pruebas críticas de inteligencia artificial. ¿Ya se acabó el juego?". TecnologíaRadar . Consultado el 11 de octubre de 2023 .
  49. ^ Mocanú, Decebal; Mocanú, Elena (2018). "Entrenamiento escalable de redes neuronales artificiales con conectividad dispersa adaptativa inspirada en la ciencia de redes". Comunicaciones de la naturaleza . 9 (1): 2383. Código bibliográfico : 2018NatCo...9.2383M. doi :10.1038/s41467-018-04316-3. PMC 6008460 . PMID  29921910. 
  50. ^ Souza, Lucas (30 de octubre de 2020). "El caso de la dispersión en las redes neuronales, parte 2: dispersión dinámica". numenta.com . Consultado el 11 de octubre de 2023 .