Las instrucciones AVX-512 desarrolladas por Intel están cogiendo cada vez más protagonismo, sobre todo para los campos de la inteligencia artificial y el aprendizaje profundos. Veremos en este artículo qué son, para qué sirven y los tipos que hay, entre otros.
Índice de contenidos
Las Advanced Vector Extension (AVX-512) desarrolladas por Intel son una evolución de las instrucciones AVX y AVX2. Estas instrucciones de nueva generación se han creado para mejorar en lo posible el rendimiento donde existe una gran carga de trabajo.
Estas instrucciones están ganando popularidad debido a que ofrecen un tamaño de registro acumulado de 512 bits, permitiendo realizar hasta 16 operaciones de 32 bits. Pero además estas ofrecen el doble de ancho de banda, número de registros y ancho de las unidades FMA (operaciones fusionadas de acumulación múltiple) con respecto a las instrucciones AVX2.
Intel de momento es el único que integra las instrucciones AVX-512 únicamente en sus procesadores, aunque su origen es bien distinto. Debemos tener en cuenta que según la generación del procesador Intel, puede soportar más o menos extensiones de instrucciones AVX-512.
Durante años Intel ha tratado de dar el salto al mercado de las GPU, desarrollando sus propias soluciones sin éxito hasta hace muy poco tiempo. La vez que más cerca estuvieron fue en 2010, cuando estaban muy cerca de lanzar al mercado las gráficas Intel Larrabee. Parece ser que estas no eran muy potentes y el proyecto termino desembocando en los aceleradores de procesamiento Intel Xeon Phi, que tuvieron escaso éxito en el mercado.
Para las Intel Larrabee la compañía desarrollo el set de instrucciones AVX-512, una versión avanzada (y mejorada) de las instrucciones AVX2. Estas nuevas instrucciones permitían un registro acumulado de 512 bits, soportando operar con hasta 16 datos de 32 bits. Básicamente esto supone un ratio de operaciones por texel en 16:1 veces más que una GPU.
Tras la reconversión de Larrabee a las Xeon Phi x200 (Knight Landing) y el paso de sin pena ni gloría, as instrucciones AVX-512 se empezaron a integrar posteriormente en los procesadores de Intel. Todos los procesadores que soportan este set de instrucciones, cuentan con soporte para al menos la extensión AVX-512-F. Existen instrucciones que se van añadiendo en diferentes familias de procesadores.
Te recomendamos la lectura:
La función de este tipo de instrucciones es indicarle al procesador como gestionar los flujos de datos que le llegan, según el tipo de dato. Permite por lo tanto que el procesador tenga una mayor capacidad de gestión y le permite identificar cuál es el mejor método y más eficiente de procesamiento para ofrecer el mejor rendimiento posible.
Este tipo de instrucciones permite la aceleración del rendimiento cuando se dan cargas de trabajo elevadas. Sobre todo son útiles para mejorar la aceleración de tareas como simulaciones científicas, análisis financiero, inteligencia artificial y aprendizaje profundo, modelado y análisis 3D, procesamiento de imágenes y audio/video, criptografía y compresión de datos.
Te recomendamos la lectura de los mejores procesadores del mercado
AVX-512 puede ofrecer además capacidad a los Data Centers a utilizar los recursos de almacenamiento disponibles de un modo más eficiente. Permite acelerar tareas como el cifrado, la compresión y descompresión de los datos, reduciendo a la mitad los tiempos con respecto a las instrucciones de generación anterior. Se consigue mediante la duplicación del número de bits en el registro, pasando de 256 bits a los 512 bits de estas nuevas instrucciones.
Vamos a ver ahora los tipos de instrucciones que se pueden encontrar en la actualidad y en que familias de procesadores se empiezan a integrar. No entraremos en detalles sobre que ofrecen o como funcionan este tipo de instrucciones, ya que puede ser algo bastante tedioso. Actualmente las extensiones existentes son:
Las instrucciones AVX-512 se han desarrollado para combinar las instrucciones AVX y AVX2 sin una penalización de rendimiento. Además en la extensión AVX-512-VL se añade un aumento en los registros XMM e YMM.
Adicionalmente las instrucciones SEE y AVX/AVX2 cuentan con versiones AVX-512-VL codificadas con prefijo EVEX, pero con nuevas funciones como opmask y registros adicionales. Estas instrucciones AVX-512-VL son sin mnemónicos, pero comparten espacio de nombres AVX, permitiendo distinguir versiones codificadas VEX y EVEX de una instrucción ambigua en el código fuente.
Seguro que te interesa echarle un vistazo a nuestro artículo sobre: ¿Qué es un procesador y como funciona?
En el archivo de registro SMID se incrementa de 256 bits a los 512 bits, y se amplía de 16 registros a los 32 registros ZMM0-ZMM31. Dichos registros se pueden direccionar como registros YMM de 256 bits desde extensiones AVX y en registros XMM de 128 bits desde extensiones SMID de transmisión y las instrucciones AVX y SEE heredadas se pueden extender para operar en los 16 registros adicionales (XMM16-XMM31 / YMM16-YMM31) cuando se usa EVEX de manera codificada.
La idea de AMD, al fabricar sus propias CPU y GPU, siempre ha sido la aceleración de aplicaciones de manera combinada. Esto hace que AMD no tenga mucho interés en la integración de las instrucciones AVX-512 en sus procesadores, en una primera instancia.
Sus GPU basadas en la arquitectura CDNA permiten en gran rendimiento en aplicaciones avanzadas. AMD apuesta más en una computación heterogénea, aunque muchos algoritmos están optimizados para el uso de GPU, esto hace que no termine de aprovechar bien las características de un sistema combinado de CPU-GPU.
Esto podría provocar que AMD finalmente termine integrando las instrucciones AVX-512 en sus procesadores. Se especula que los procesadores de arquitectura AMD Zen4 podrían dar soporte a este tipo de instrucciones AVX-512 con el fin de aprovechar mejor el potencial de los sistemas heterogéneos.
Hace unos meses Linus Torvalds, creador de Linux, concedió una entrevista al medio Real World Tech y hablo sobre las instrucciones AVX-512. Parece que este tipo de instrucciones no gustan nada al padre del sistema operativo Linux, quien no ha dudado en cargar contra ellas y de paso contra Intel:
Espero que AVX512 tenga una muerte dolorosa, y que Intel comience a solucionar problemas reales en lugar de tratar de crear instrucciones mágicas para luego crear benchmarks en los que puedan verse bien.
Espero que Intel vuelva a lo básico: que sus procesos vuelvan a funcionar y se concentre más en el código regular que no es HPC o algún otro caso especial sin sentido.
(…) Porque absolutamente a nadie le importa fuera de los benchmarks.
Lo mismo ocurre en gran medida con AVX512 ahora, y en el futuro. Sí, puedes encontrar cosas en las que es importante. No, esas cosas no venden equipos en el panorama general.
Y AVX512 tiene desventajas reales. Prefiero que el presupuesto de transistores se use en otras cosas que son mucho más relevantes. Incluso si todavía son matemáticas de FP (en la GPU, en lugar de AVX512). O simplemente dame más núcleos (con un buen rendimiento de un solo hilo, pero sin basura como AVX512) como lo hizo AMD.
Quiero que mis límites de potencia se alcancen con un código regular de enteros, no con un virus como AVX512 que elimina la frecuencia máxima y quita núcleos (porque esas unidades de basura son inútiles y ocupan espacio).
Sí, sí, soy parcial. (…)
Las instrucciones AVX-512 se caracterizan por estar directamente desarrolladas por Intel principalmente para la inteligencia artificial y el aprendizaje profundo. Estas instrucciones, nacidas de un diseño fallido, parece que están siendo bastante bien acogidas por parte de los desarrolladores.
Si bien el usuario medio no las utilizara y muy posiblemente no sabe ni que existan, sí que se podrían ver beneficiados por ellas. Estas instrucciones podrían mejorar la IA de los juegos y otras aplicaciones de uso cada vez más frecuente, como son las videollamadas.
Intel revela sus próximas aceleradoras Jaguar Shores, que van a llegar después del lanzamiento de…
Abysm es una de las muchas marcas que celebran el Black Friday a lo grande.…
YouTube se prepara para lanzar una función que va a cambiar la forma en la…