stringtranslate.com

AVX-512

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

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 se incrementa 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 usar en tamaños de vector 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 , derivados del proyecto Larrabee de Intel , son similares pero no son compatibles a nivel binario y solo son parcialmente compatibles con el código fuente. [1]

El sucesor del AVX-512 es el AVX10 , anunciado en julio de 2023, [3] que funcionará en núcleos de rendimiento y eficiencia .

Conjunto de instrucciones

El conjunto de instrucciones del AVX-512 consta de varios conjuntos separados, cada uno con su propio bit de función CPUID exclusivo. Sin embargo, normalmente se agrupan por la generación del procesador que los implementa.

F, CD, ER, PF:   se introdujeron con Xeon Phi x200 (Knights Landing) y Xeon Gold/Platinum ( Skylake SP "Purley"), y los dos últimos (ER y PF) son específicos de Knights Landing.

VL, DQ, BW:   introducidos con Skylake X y Cannon Lake .

IFMA, VBMI:   introducido con Cannon Lake . [5]

4VNNIW, 4FMAPS:   introducido con Knights Mill . [6] [7]

VPOPCNTDQ: Instrucción de recuento de población   de vectores . Introducida con Knights Mill y Ice Lake . [8]

VNNI, VBMI2, BITALG:   introducidos con Ice Lake. [8]

VP2INTERSECT:   introducido con Tiger Lake.

GFNI, VPCLMULQDQ, VAES:   introducidos con Ice Lake. [8]

Codificación y características

El prefijo VEX utilizado por AVX y AVX2, si bien era flexible, no dejaba suficiente espacio para las características que Intel quería agregar a AVX-512. Esto los llevó a definir un nuevo prefijo llamado EVEX .

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

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 afectar 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 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 nuevos mnemónicos, 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 en valores de 32 y 64 bits, las instrucciones SSE y AVX/AVX2 que operan en bytes o palabras solo están disponibles con la extensión AVX-512BW (soporte de bytes y palabras). [7]

Registros extendidos

El ancho del archivo de registros SIMD se incrementa 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 desde las extensiones AVX y registros XMM de 128 bits desde las extensiones Streaming SIMD , y las instrucciones AVX y SSE heredadas se pueden extender para operar en los 16 registros adicionales XMM16-XMM31 y YMM16-YMM31 cuando se usa el formato codificado EVEX.

Registros de Opmask

Las instrucciones vectoriales AVX-512 pueden indicar un registro de máscara de operaciones para controlar qué valores se escriben en el destino; la codificación de instrucciones admite 0–7 para este campo; sin embargo, solo los registros de máscara de operaciones k1–k7 (de k0–k7) se pueden usar como la máscara correspondiente al valor 1–7, mientras que el valor 0 se reserva para indicar que no se usa ningún registro de máscara de operaciones, es decir, se usa una constante codificada (en lugar de 'k0') para indicar operaciones sin máscara. El registro de máscara de operaciones especial 'k0' sigue siendo un registro válido y funcional; se puede usar en instrucciones de manipulación de registros de máscara de operaciones o como registro de máscara de operaciones de destino. [9] Una bandera controla el comportamiento de la máscara de operaciones, que puede ser "cero", que pone a cero todo lo que no está seleccionado por la máscara, o "combinar", que deja todo lo que no está seleccionado intacto. 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. [7] Sin embargo, la cantidad de bits que se utilizan realmente depende del tipo de vector de las instrucciones enmascaradas. Para las palabras dobles o de punto flotante simple de 32 bits, se utilizan 16 bits para enmascarar los 16 elementos en un registro de 512 bits. Para las palabras cuádruples y de punto flotante doble, se utilizan como máximo 8 bits de máscara.

El registro de máscara de operaciones es la razón por la que se agregaron varias instrucciones bit a bit que naturalmente no tienen anchos de elementos en AVX-512. Por ejemplo, las operaciones AND, OR o de mezcla de 128 bits bit a bit ahora existen en variantes de palabras dobles y de palabras cuádruples, con la única diferencia en el enmascaramiento final.

Nuevas instrucciones de máscara de operaciones

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

Nuevas instrucciones en la base AVX-512

Muchas de las instrucciones AVX-512 son simplemente versiones EVEX de las antiguas instrucciones SSE o AVX. Sin embargo, hay varias instrucciones nuevas e instrucciones antiguas que han sido reemplazadas por nuevas versiones AVX-512. Las instrucciones nuevas o modificadas en gran medida 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 existen versiones con prefijo EVEX de las instrucciones de combinación de SSE4 ; en su lugar, 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 se indican 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. Si se utiliza el modo de combinación de puesta a cero, también pueden utilizarse como instrucciones de enmascaramiento.

Comparar con máscara

AVX-512F tiene cuatro nuevas instrucciones de comparación. Al igual que sus contrapartes 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 regular. [7]

Máscara de conjunto lógico

La última forma de configurar máscaras es mediante el uso de Logical Set Mask. Estas instrucciones ejecutan 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. Utilizan la máscara de operaciones de una forma ligeramente diferente a otras instrucciones AVX-512. La compresión solo guarda los valores marcados en la máscara, pero los guarda compactados omitiendo y sin reservar espacio para los valores no marcados. La expansión funciona de forma opuesta, cargando tantos valores como se indica en la máscara y luego distribuyéndolos a las posiciones seleccionadas.

Permutar

Se ha añadido un nuevo conjunto de instrucciones de permutación para permutaciones completas de dos entradas. Todas ellas toman tres argumentos, dos registros de origen y un índice; el resultado se obtiene sobrescribiendo el primer registro de origen o el registro de índice. AVX-512BW amplía las instrucciones para incluir también versiones de 16 bits (palabras) y la extensión AVX-512_VBMI define las versiones de bytes de las instrucciones.

Lógica ternaria bit a bit

Se han añadido dos nuevas instrucciones que pueden implementar de forma lógica todas las operaciones posibles a nivel de bits entre tres entradas. Estas instrucciones toman como entrada tres registros 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 campo inmediato de 8 bits. Dado que solo son posibles 8 combinaciones utilizando tres bits, esto permite que se realicen todas las posibles operaciones a nivel de bits con 3 entradas. [7] Estas son las únicas instrucciones vectoriales a nivel de bits en AVX-512F; las versiones EVEX de las dos instrucciones vectoriales a nivel de bits de AVX y SSE de origen AND, ANDN, OR y XOR se añadieron en AVX-512DQ.

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

Conversiones

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

Descomposición en punto flotante

Entre las nuevas características exclusivas de AVX-512F se encuentran las instrucciones para descomponer valores de punto flotante y manejar valores de punto flotante especiales . Como 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 un nuevo escalamiento y cálculo aproximado de recíprocos y de raíces cuadradas. Las instrucciones de recíprocos aproximados garantizan un error relativo de 2 −14 como máximo . [7]

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 podrían vectorizarse de manera segura. [10]

Exponencial y recíproco

Las instrucciones exponenciales y recíprocas AVX-512 (AVX-512ER) contienen instrucciones recíprocas aproximadas más precisas que las del modelo básico AVX-512; el error relativo es de 2 −28 como máximo. También contienen dos nuevas funciones exponenciales que tienen un error relativo de 2 −23 como máximo . [7]

Precarga

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

4FMAPS y 4VNNIW

Los dos conjuntos de instrucciones realizan múltiples iteraciones de procesamiento. Por lo general, solo se encuentran en productos Xeon Phi.

BW, DQ y VBMI

AVX-512DQ agrega nuevas instrucciones de doble palabra y de cuatro palabras. AVX-512BW agrega versiones de bytes y palabras de las mismas instrucciones, y agrega versiones de bytes y palabras de instrucciones de doble palabra/cuatro palabras en AVX-512F. Algunas instrucciones que solo obtienen formas de palabra con AVX-512BW adquieren formas de bytes con la extensión AVX-512_VBMI ( VPERMB, VPERMI2B, VPERMT2B, VPMULTISHIFTQB).

Se añadieron dos nuevas instrucciones al conjunto de instrucciones de máscara: KADDy KTEST(formas B y W con AVX-512DQ, D y Q con AVX-512BW). El resto de instrucciones de máscara, que solo tenían formas de palabra, obtuvieron formas de byte con AVX-512DQ y formas de palabra doble/palabra cuádruple con AVX-512BW. KUNPCKBWse amplió a KUNPCKWDy KUNPCKDQpor AVX-512BW.

Entre las instrucciones agregadas por AVX-512DQ hay varias instrucciones SSE y AVX que no obtuvieron versiones AVX-512 con AVX-512F, entre ellas están todas las instrucciones de dos bits de entrada y las instrucciones de extracción/inserción de enteros.

A continuación se describen instrucciones completamente nuevas.

Instrucciones de punto flotante

Se introducen tres nuevas operaciones de punto flotante. Dado que no solo son nuevas en AVX-512, existen versiones empaquetadas/SIMD y escalares.

Las VFPCLASSinstrucciones prueban si el valor de punto flotante es uno de ocho valores de punto flotante especiales, cuál de los ocho valores activará un bit en el registro de máscara de salida que está controlado por el campo inmediato. Las VRANGEinstrucciones realizan operaciones mínimas o máximas dependiendo del valor del campo inmediato, que también puede controlar si la operación se realiza de forma absoluta o no y por separado cómo se maneja el signo. Las VREDUCEinstrucciones operan sobre una única fuente y restan de ella la parte entera del valor de la fuente más una cantidad de bits especificada 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 desplazamiento son nuevas.

VNNI

Instrucciones de red neuronal vectorial: [11] AVX512-VNNI agrega instrucciones con codificación EVEX que se describen a continuación. Con AVX-512F, estas instrucciones pueden funcionar con vectores de 512 bits y AVX-512VL agrega además compatibilidad con vectores de 128 y 256 bits.

Una extensión posterior de AVX-VNNI agrega codificaciones VEX de estas instrucciones que solo pueden funcionar 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.

Asociación Internacional de Fabricantes de Maquinaria Agrícolas (IFMA)

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

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

VPOPCNTDQ y BITALG

VP2INTERSECTO

GFNI

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

GFNI es una extensión de conjunto de instrucciones independiente y se puede habilitar por separado de AVX o AVX-512. Según si la CPU indica compatibilidad con AVX y AVX-512F, la compatibilidad con GFNI permite instrucciones codificadas con (SSE), VEX o EVEX heredadas que operan 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 de 256 y 128 bits codificadas con EVEX. VPCLMULQDQ solo (es decir, en CPU que no sean AVX512) agrega solo la versión de 256 bits codificada con VEX. (La disponibilidad de la versión de 128 bits codificada con VEX se indica mediante diferentes bits de CPUID: PCLMULQDQ y AVX). Las variaciones de la instrucción que superan los 128 bits realizan la misma operación en cada porción de 128 bits de los registros de entrada, pero no la extienden para seleccionar palabras cuádruples de diferentes campos de 128 bits (el significado del operando imm8 es el mismo: se selecciona la palabra cuádruple baja o alta del campo de 128 bits).

VASO

Instrucciones AES codificadas con VEX y EVEX . Las variantes de la instrucción con un ancho de banda superior a 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 compatibilidad con AVX-512.

BF16

Instrucciones de aceleración de IA que operan en 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 binary16 (también conocidos como FP16, float16 o números de punto flotante de precisión media). Las nuevas instrucciones implementan la mayoría de las operaciones que estaban disponibles anteriormente 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 precisión media no se ponen a cero de manera condicional ( FTZ ) ni se tratan como cero de manera condicional ( DAZ ) según MXCSRlos ajustes. Los valores subnormales se procesan a toda velocidad por hardware para facilitar el uso del rango dinámico completo de los números FP16. Las instrucciones que crean números FP32 y FP64 aún respetan el MXCSR.FTZbit. [14]

Instrucciones aritméticas

Instrucciones aritméticas complejas

Instrucciones recíprocas aproximadas

Instrucciones de comparación

Instrucciones de conversión

Instrucciones de descomposición

Instrucciones de movimiento

Instrucciones heredadas con versiones codificadas con EVEX

CPU con AVX-512

^Nota 1  : Intel no admite oficialmente la familia de instrucciones AVX-512 en losmicroprocesadores Alder Lake . A principios de 2022, Intel comenzó a deshabilitar AVX-512 en el silicio (desactivación por fusión) en los microprocesadores Alder Lake para evitar que los clientes habilitaran AVX-512. [35] En las CPU de la familia Alder Lake más antiguas con algunas combinaciones heredadas de revisiones de BIOS y 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. [36] [37] [24]

Actuación

Intel Vectorization Advisor (a partir de la versión 2017) admite el análisis nativo de rendimiento y calidad de código vectorial de AVX-512 (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 de Intel Compiler, 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, utilización de máscara. [38] [39]

En algunos procesadores (principalmente los Intel anteriores a Ice Lake ), las instrucciones AVX-512 pueden provocar una limitación de frecuencia incluso mayor que sus predecesores, lo que genera una penalización para cargas de trabajo mixtas. La reducción de frecuencia adicional se activa por el ancho de 512 bits de los vectores 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 la activa. Como resultado, gcc y clang prefieren usar los vectores de 256 bits para los objetivos Intel de forma predeterminada. [40] [41] [42]

Los compiladores de C/ C++ también manejan automáticamente el desenrollado de bucles y previenen bloqueos en la tubería para usar AVX-512 de manera más efectiva, lo que significa que un programador que usa 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 escritos claramente en el código fuente. [43] En otros casos, usar intrínsecos de AVX-512 en código C/C++ puede resultar en una mejora del rendimiento en relación con C/C++ escrito claramente. [44]

Recepción

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

En una cita muy citada de 2020, Linus Torvalds dijo: "Espero que AVX-512 muera 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", [48] 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 . [49]

Numenta promociona su tecnología de red neuronal "altamente dispersa " [50] , que según ellos elimina la necesidad de GPU ya que sus algoritmos se ejecutan en CPU con AVX-512. [51] 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, al mismo tiempo que mantienen la precisión , mediante técnicas como el algoritmo Sparse Evolutionary Training (SET) [52] y Foresight Pruning. [53]

Véase también

Referencias

  1. ^ abcdef James Reinders (23 de julio de 2013). «Instrucciones AVX-512». Intel . Consultado el 20 de agosto de 2013 .
  2. ^ desde Kusswurm 2022, pág. 223.
  3. ^ Bonshor, Gavin (25 de julio de 2023). "Intel presenta los conjuntos de instrucciones AVX10 y APX: unificación de AVX-512 para arquitecturas híbridas". AnandTech . Consultado el 21 de agosto de 2024 .
  4. ^ abc James Reinders (17 de julio de 2014). «Instrucciones adicionales de AVX-512». Intel . Consultado el 3 de agosto de 2014 .
  5. ^ Anton Shilov. "Los procesadores Intel 'Skylake' para PC no soportarán las instrucciones AVX-512". Kitguru.net . Consultado el 17 de marzo de 2015 .
  6. ^ "Intel añadirá instrucciones de aprendizaje profundo a sus procesadores". 14 de octubre de 2016.
  7. ^ abcdefgh "Referencia de programación de extensiones del conjunto de instrucciones de la arquitectura Intel" (PDF) . Intel . Consultado el 29 de enero de 2014 .
  8. ^ abcdef "Referencia de programación de extensiones y características futuras del conjunto de instrucciones de la arquitectura Intel". Intel . Consultado el 16 de octubre de 2017 .
  9. ^ "Los documentos asm en línea indican incorrectamente que k0 (X86 AVX-512) está conectado directamente a cero · Problema n.° 94977 · rust-lang/Rust". GitHub .
  10. ^ "Arquitectura del AVX-512/Póster de Demikhovsky" (PDF) . Intel . Consultado el 25 de febrero de 2014 .
  11. ^ "Intel® Deep Learning Boost" (PDF) . Intel . Consultado el 11 de octubre de 2021 .
  12. ^ ab "Guía tecnológica de nuevas instrucciones de campo de Galois (GFNI)". networkbuilders.intel.com .
  13. ^ Kivilinna, Jussi (19 de abril de 2023). "camellia-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 una manera más sencilla y ofrecen un rendimiento aún mejor.
  14. ^ "Especificación de la arquitectura Intel® AVX512-FP16, junio de 2021, revisión 1.0, ref. 347407-001US" (PDF) . Intel. 2021-06-30 . Consultado el 2021-07-04 .
  15. ^ "Descripción del producto del procesador Intel Xeon Phi". Intel . Consultado el 12 de octubre de 2016 .
  16. ^ "Intel presenta la plataforma de la serie X: hasta 18 núcleos y 36 subprocesos, desde 242 dólares hasta 2.000 dólares". Ars Technica . Consultado el 30 de mayo de 2017 .
  17. ^ "Intel Advanced Vector Extensions 2015/2016: Soporte en la colección de compiladores GNU" (PDF) . Gcc.gnu.org . Consultado el 20 de octubre de 2016 .
  18. ^ Patrizio, Andy (21 de septiembre de 2015). "Se filtra la hoja de ruta de Intel para Xeon en 2016". Itworld.org . Archivado desde el original el 21 de octubre de 2016. Consultado el 20 de octubre de 2016 .
  19. ^ "Revisión del Intel Core i9-11900K: ¿el procesador para juegos más rápido del mundo?". www.techpowerup.com . 30 de marzo de 2021.
  20. ^ ""Añadir rocketlake al commit de gcc". gcc.gnu.org .
  21. ^ "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 2020-10-18 . Consultado el 2020-11-10 .
  22. ^ Computadora portátil Murah Kinerja Boleh Diadu | HP 14S DQ2518TU, 18 de junio de 2021 , consultado el 8 de agosto de 2021
  23. ^ "Uso de la colección de compiladores GNU (GCC): opciones x86". GNU . Consultado el 14 de octubre de 2019 .
  24. ^ ab Cutress, Ian; Frumusanu, Andrei. "Revisión del procesador Intel Core i9-12900K de 12.ª generación: el rendimiento híbrido aporta complejidad híbrida". www.anandtech.com . Consultado el 5 de noviembre de 2021 .
  25. ^ Larabel, Michael. «Intel Core i9 12900K «Alder Lake» AVX-512 en Linux». www.phoronix.com . Consultado el 8 de noviembre de 2021 .
  26. ^ Larabel, Michael. "Comparación de rendimiento de AVX-512: AMD Genoa vs. Intel Sapphire Rapids & Ice Lake". www.phoronix.com . Consultado el 19 de enero de 2023 .
  27. ^ "El primer SOC x86 de alto rendimiento de la industria con CPU de clase servidor y tecnología de coprocesador de IA integrado". 2 de agosto de 2022. Archivado desde el original el 12 de diciembre de 2019.{{cite web}}: CS1 maint: URL no apta ( enlace )
  28. ^ "x86, x64 Latencia de instrucciones, latencia de memoria y volcados de CPUID (instlatx64)". users.atw.hu .
  29. ^ "Las CPU Ryzen basadas en AMD Zen 4 pueden tener hasta 24 núcleos y compatibilidad con vectores AVX512". Hardware Times . 2021-05-23 . Consultado el 2021-09-02 .
  30. ^ Hagedoorn, Hilbert (18 de mayo de 2021). «AMD está trabajando en un prodigioso procesador EPYC de 96 núcleos». Guru3D.com . Consultado el 25 de mayo de 2021 .
  31. ^ clamchowder (23 de agosto de 2021). "Detalles sobre la fuga de Gigabyte". Chips And Cheese . Consultado el 10 de junio de 2022 .
  32. ^ 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 .
  33. ^ Larabel, Michael (26 de septiembre de 2022). "Análisis del rendimiento del AMD Zen 4 AVX-512 en el Ryzen 9 7950X". www.phoronix.com .
  34. ^ Larabel, Michael (10 de febrero de 2024). "Compatibilidad con compilador AMD Zen 5 publicada para GCC: confirma nuevas funciones de AVX y más". www.phoronix.com .
  35. ^ Alcorn, Paul (2 de marzo de 2022). "Intel acaba con el soporte AVX-512 de Alder Lake y ahora lo elimina en silicio". Tom's Hardware . Consultado el 7 de marzo de 2022 .
  36. ^ Cutress, Ian; Frumusanu, Andrei (19 de agosto de 2021). "Día de la arquitectura de Intel 2021: Alder Lake, Golden Cove y Gracemont detallados". AnandTech . Consultado el 25 de agosto de 2021 .
  37. ^ Alcorn, Paul (19 de agosto de 2021). "Día de la arquitectura de Intel 2021: chips Alder Lake, núcleos Golden Cove y Gracemont". Tom's Hardware . Consultado el 21 de agosto de 2021 .
  38. ^ "Novedades de Intel Advisor XE 2016 Update 3 - Intel Software". Software.intel.com . Consultado el 20 de octubre de 2016 .
  39. ^ "Intel Advisor - Intel Software". Software.intel.com . Consultado el 20 de octubre de 2016 .
  40. ^ Cordes, Peter. "Instrucciones SIMD que reducen la frecuencia de la CPU". Desbordamiento de pila .
  41. ^ Cordes, Peter. "¿Por qué la vectorización automática de gcc para tigerlake utiliza registros ymm y no zmm?". Desbordamiento de pila .
  42. ^ "Notas de la versión de LLVM 10.0.0".
  43. ^ Matthew Kolbe (10 de octubre de 2023). Charla relámpago: Cómo aprovechar las características intrínsecas de SIMD para desaceleraciones masivas - Matthew Kolbe - CppNow 2023. C++Now . Consultado el 15 de octubre de 2023 a través de YouTube.
  44. ^ Clausecker, Robert (5 de agosto de 2023). "Transcodificación de caracteres Unicode con instrucciones AVX-512". Software: práctica y experiencia . 53 (12): 2430–2462. arXiv : 2212.05098 . doi :10.1002/spe.3261.
  45. ^ Szewczyk, Chris (24 de noviembre de 2021). "El emulador de PS3 RPCS3 recibe un gran impulso en las CPU Intel Alder Lake con AVX-512 habilitado". PC Gamer . Consultado el 11 de octubre de 2023 .
  46. ^ Carneiro, André; Serpa, Matheus (5 de septiembre de 2021). "Aplicaciones ligeras de aprendizaje profundo en AVX-512". Simposio IEEE sobre computadoras y comunicaciones (ISCC) de 2021. Atenas : IEEE . págs. 1–6. doi :10.1109/ISCC53001.2021.9631464.
  47. ^ Parasa, Srinivas (30 de mayo de 2023). «JDK-8309130: intrínsecos x86_64 AVX512 para métodos Arrays.sort (matrices int, long, float y double)». OpenJDK . Consultado el 11 de octubre de 2023 .
  48. ^ 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 .
  49. ^ Torvalds, Linus (11 de julio de 2020). "Alder Lake y AVX-512". realworldtech.com . Consultado el 11 de octubre de 2023 .
  50. ^ "La escasez permite una aceleración del rendimiento de 100 veces en redes de aprendizaje profundo: una demostración de tecnología" (PDF) . numenta.com . 2021-05-20 . Consultado el 2023-10-11 .
  51. ^ Afifi-Sabet, Keumars (8 de octubre de 2023). "Una pequeña empresa emergente ha ayudado a Intel a derrotar a AMD y Nvidia en pruebas críticas de inteligencia artificial. ¿Ya se acabó el juego?". TechRadar . Consultado el 11 de octubre de 2023 .
  52. ^ Mocanu, Decebal; Mocanu, Elena (2018). "Entrenamiento escalable de redes neuronales artificiales con conectividad dispersa adaptativa inspirada en la ciencia de redes". Nature Communications . 9 (1): 2383. Bibcode :2018NatCo...9.2383M. doi :10.1038/s41467-018-04316-3. PMC 6008460 . PMID  29921910. 
  53. ^ Souza, Lucas (30 de octubre de 2020). "El caso de la escasez en redes neuronales, parte 2: escasez dinámica". numenta.com . Consultado el 11 de octubre de 2023 .