La CPU de su dispositivo realiza millones de cálculos cada segundo y es responsable del funcionamiento de su computadora. Trabajando con la CPU está la Unidad de Procesamiento Aritmético (ALU), que es responsable de las tareas matemáticas y es impulsada por el microcódigo de la CPU.
Ahora, ese microcódigo de la CPU no es estático y se puede mejorar, y una de esas mejoras fue el conjunto de instrucciones AVX-512 de Intel. Sin embargo, Intel está listo para matar AVX-512, eliminando su funcionalidad de sus CPU para siempre. ¿Pero por qué? ¿Por qué Intel acaba con el AVX-512?
¿Cómo funciona una ALU?
Antes de conocer el conjunto de instrucciones del AVX-512, es esencial entender cómo funciona una ALU.
Como sugiere el nombre, la Unidad de procesamiento aritmético se utiliza para realizar tareas matemáticas. Estas tareas incluyen operaciones como sumas, multiplicaciones y cálculos de coma flotante. Para realizar estas tareas, la ALU utiliza circuitos digitales específicos de la aplicación, que son controlados por la señal de reloj de la CPU.
Por lo tanto, la velocidad de reloj de una CPU define la velocidad a la que se procesan las instrucciones en la ALU. Entonces, si su CPU funciona con una frecuencia de reloj de 5 GHz, la ALU puede procesar 5 mil millones de instrucciones en un segundo. Por esta razón, el rendimiento de la CPU mejora a medida que aumenta la velocidad del reloj.
Dicho esto, a medida que aumenta la velocidad del reloj de la CPU, aumenta la cantidad de calor generado por la CPU. Por esta razón, los usuarios avanzados usan nitrógeno líquido cuando hacen overclocking en sus sistemas. Desafortunadamente, este aumento de la temperatura a altas frecuencias impide que los fabricantes de CPU aumenten la frecuencia del reloj por encima de un cierto umbral.
Entonces, ¿cómo un procesador de nueva generación ofrece un mejor rendimiento en comparación con iteraciones anteriores? Bueno, los fabricantes de CPU utilizan el concepto de paralelismo para aumentar el rendimiento. Este paralelismo se puede lograr mediante el uso de una arquitectura multinúcleo en la que se utilizan varios núcleos de procesamiento diferentes para mejorar la potencia de cálculo de la CPU.
Otra forma de mejorar el rendimiento es mediante el uso de un conjunto de instrucciones SIMD. En términos simples, una instrucción de datos múltiples de instrucción única permite que la ALU ejecute la misma instrucción en diferentes puntos de datos. Este tipo de paralelismo mejora el rendimiento de una CPU, y el AVX-512 es una instrucción SIMD que se utiliza para aumentar el rendimiento de una CPU al realizar tareas específicas.
¿Cómo llegan los datos a la ALU?
Ahora que tenemos una comprensión básica de cómo funciona una ALU, debemos comprender cómo llegan los datos a la ALU.
Para llegar a la ALU, los datos deben moverse a través de diferentes sistemas de almacenamiento. Este viaje de datos se basa en la jerarquía de memoria de un sistema informático. Una breve descripción de esta jerarquía se da a continuación:
- Memoria secundaria: La memoria secundaria en un dispositivo informático consta de un dispositivo de almacenamiento permanente. Este dispositivo puede almacenar datos de forma permanente, pero no es tan rápido como la CPU. Debido a esto, la CPU no puede acceder a los datos directamente desde el sistema de almacenamiento secundario.
- Memoria primaria: El sistema de almacenamiento principal consiste en una memoria de acceso aleatorio (RAM). Este sistema de almacenamiento es más rápido que el sistema de almacenamiento secundario, pero no puede almacenar datos de forma permanente. Por lo tanto, cuando abre un archivo en su sistema, se mueve del disco duro a la RAM. Dicho esto, incluso la RAM no es lo suficientemente rápida para la CPU.
- Memoria caché: La memoria caché está integrada en la CPU y es el sistema de memoria más rápido de una computadora. Este sistema de memoria se divide en tres partes, a saber, el Caché L1, L2 y L3. Cualquier dato que deba ser procesado por la ALU se mueve del disco duro a la RAM y luego a la memoria caché. Dicho esto, la ALU no puede acceder a los datos directamente desde la memoria caché.
- Registros de la CPU: El registro de la CPU en un dispositivo informático es de tamaño muy pequeño y, según la arquitectura de la computadora, estos registros pueden contener 32 o 64 bits de datos. Una vez que los datos se mueven a estos registros, la ALU puede acceder a ellos y realizar la tarea en cuestión.
¿Qué es AVX-512 y cómo funciona?
El conjunto de instrucciones AVX 512 es la segunda iteración de AVX y llegó a los procesadores Intel en 2013. Abreviatura de Advanced Vector Extensions, el conjunto de instrucciones AVX se introdujo por primera vez en el Xeon de Intel. Arquitectura Phi (Knights Landing) y luego llegó a los procesadores de servidor de Intel en el Skylake-X CPU.
Además, el conjunto de instrucciones AVX-512 llegó a los sistemas basados en el consumidor con la arquitectura Cannon Lake y luego fue compatible con las arquitecturas Ice Lake y Tiger Lake.
El objetivo principal de este conjunto de instrucciones era acelerar las tareas relacionadas con la compresión de datos, el procesamiento de imágenes y los cálculos criptográficos. Al ofrecer el doble de potencia de cálculo en comparación con iteraciones anteriores, el conjunto de instrucciones AVX-512 ofrece mejoras sustanciales en el rendimiento.
Entonces, ¿cómo duplicó Intel el rendimiento de sus CPU utilizando la arquitectura AVX-512?
Bueno, como se explicó anteriormente, la ALU solo puede acceder a los datos presentes en el registro de una CPU. El conjunto de instrucciones Advanced Vector Extensions aumenta el tamaño de estos registros.
Debido a este aumento de tamaño, la ALU puede procesar varios puntos de datos en una sola instrucción, lo que aumenta el rendimiento del sistema.
En términos de tamaño de registro, el conjunto de instrucciones AVX-512 ofrece treinta y dos registros de 512 bits, que es el doble en comparación con el antiguo conjunto de instrucciones AVX.
¿Por qué Intel pone fin a AVX-512?
Como se explicó anteriormente, el conjunto de instrucciones AVX-512 ofrece varias ventajas computacionales. De hecho, bibliotecas populares como TensorFlow usan el conjunto de instrucciones para proporcionar cálculos más rápidos en las CPU que admiten el conjunto de instrucciones.
Entonces, ¿por qué Intel deshabilita AVX-512 en sus procesadores Alder Lake recientes?
Bueno, los procesadores Alder Lake son diferentes a los más antiguos fabricados por Intel. Mientras que los sistemas más antiguos usaban núcleos que se ejecutaban en la misma arquitectura, los procesadores Alder Lake usan dos núcleos diferentes. Estos núcleos en las CPU de Alder Lake se conocen como Núcleos P y E y funcionan con diferentes arquitecturas.
Mientras que los núcleos P usan la microarquitectura Golden Cove, los núcleos E usan la microarquitectura Gracemont. Esta diferencia en las arquitecturas impide que el planificador funcione correctamente cuando determinadas instrucciones pueden ejecutarse en una arquitectura pero no en la otra.
En el caso de los procesadores Alder Lake, el conjunto de instrucciones AVX-512 es un ejemplo, ya que los núcleos P tienen el hardware para procesar la instrucción, pero los núcleos E no.
Por este motivo, las CPU de Alder Lake no son compatibles con el conjunto de instrucciones AVX-512.
Dicho esto, la instrucción AVX-512 puede ejecutarse en ciertas CPU de Alder Lake donde Intel no las haya fusionado físicamente. Para hacer lo mismo, los usuarios deben deshabilitar los E-cores durante el BIOS.
¿Se necesita AVX-512 en chipsets de consumo?
El conjunto de instrucciones AVX-512 aumenta el tamaño del registro de una CPU para mejorar su rendimiento. Este aumento en el rendimiento permite que las CPU procesen números más rápido, lo que permite a los usuarios ejecutar algoritmos de compresión de video/audio a velocidades más rápidas.
Dicho esto, este aumento en el rendimiento solo se puede observar cuando la instrucción definida en un programa está optimizada para ejecutarse en el conjunto de instrucciones AVX-512.
Por esta razón, las arquitecturas de conjuntos de instrucciones como AVX-512 son más adecuadas para las cargas de trabajo del servidor, y los conjuntos de chips para consumidores pueden funcionar sin conjuntos de instrucciones complejos como el AVX-512.