AMD, la controversia con AVX-512 y el rendimiento de los Ryzen 7000
La presentación de AMD con sus Ryzen 7000 sigue dando coletazos dos días después, y es que tras desgranar la cantidad de datos expuestos hoy le toca el turno a las "nuevas" intrucciones AVX-512 de Intel que ahora también incluyen los procesadores del equipo rojo. El rendimiento mostrado fue muy bueno, pero debido a que no se ofrecen demasiados datos y según los test que fueron expuestos, la controversia está en el ambiente y este está caldeado entre detractores y críticos con la implementación, y por otro lado, aquellos que creen que es un paso adelante.
Realmente hay demasiados huecos que tapar como para dar un veredicto sobre lo que ha hecho con AVX-512 los de Lisa Su en estos nuevos procesadores, así que vamos a ver los argumentos de ambos bandos, y sobre todo, a poner contexto ante esta amalgama de datos que están saliendo a la luz.
Las instrucciones AVX, sucesoras dignas de SSE y que siempre están en el foco
Este tipo de instrucción no son más que una vuelta de tuerca por parte de Intel para calcular y acelerar las cargas de trabajo en entornos científicos, análisis financieros o IA y DL, principales motivos por el que se usan en PC, sean en gama mainstream o HEDT, así como en servidores.
También se usan en análisis y modelado 3D, para procesar imágenes y vídeos, criptografía o compresión de datos. Sus usos son múltiples, pero tienen una base fija en las que se apoyan estas AVX-512 para funcionar, las unidades SIMD. Este tipo de unidades paralelizan el trabajo y la carga dependiendo de la implementación de la misma, porque, por ejemplo, en Intel hay 9 versiones de estas instrucciones:
- AVX-512-CD
- AVX-512-ER
- AVX-512-PF
- AVX-512-VBMI
- AVX-512-VL
- AVX-512-DQ
- AVX-512-BW
- AVX-512-VNNI
Cada una se especializa en distintas tareas, no todas pueden realizar las mismas y por ello, no sabemos exactamente cuales han escogido en AMD para los Ryzen 7000. Sabiendo esto y teniendo en mente que la idea del equipo rojo es precisamente no necesitar una iGPU potente para poder acelerar las tareas que buscan y a cambio, reducir el consumo dentro de lo que puedan permitirse, los datos que aportaron son controvertidos como poco.
AMD Ryzen 7000 con AVX-512, ¿tan buenos como parecen?
Antes de entrar a valorar los datos de AMD, vamos a ver que dice Intel de forma oficial sobre sus instrucciones:
Las aplicaciones pueden incluir 32 operaciones de coma flotante de precisión doble y 64 de precisión simple por ciclo de reloj en vectores de 512 bits, así como ocho enteros de 64 bits y dieciséis de 32 bits, con hasta dos unidades combinadas de multiplicación y suma de 512 bits (FMA) que, por tanto, duplican tanto el ancho de los registros de datos como el número de registros y el ancho de las unidades FMA, en comparación con Intel Advanced Vector Extensions 2 (Intel AVX2).
Bien, entendido todo lo dicho, hay que irse a los datos empíricos, que ya conocemos por una parte, y los nuevos que nos llegan filtrados. Lo que vemos en la diapositiva superior es que AMD logra un 30% más de rendimiento en FP32 frente a los Ryzen 5000 y un 150% en int8 (AVX-512 VNNI ) frente a la misma serie de procesadores en ONNX.
La controversia aquí viene por el propio ONNX y las instrucciones usadas, ya que no serían la mejor opción para comparar los rendimientos y mucho menos contra Intel y Raptor Lake. Doble controversia de paso, las puntuaciones de los procesadores Core 13 frente a los Ryzen 7000 en Geekbench 5 no serían del todo reales, ya que los rumores indican que los ES de Intel no tienen activado AVX-512 mientras que AMD sí.
Desde la versión de Geekbench 5.1.0 esta suite soporta dichas instrucciones y ayuda a las cargas de trabajo en el apartado AES-XTS, y por lo tanto, AMD tendría una leve ventaja de puntuación si resulta cierto el rumor de Raptor Lake. ¿Cuánta ventaja? Dado que es solamente un apartado de tantos que hay, no mucha. Se estima que entre el 2% y el 3% de media sobre el total de la puntuación, así que no es nada preocupante que empañe realmente los datos, pero había que matizarlo, sobre todo porque Intel con una unidad AVX-512 podría ampliar algo más la distancia si consigue mantener las frecuencias en valores altos.
AVX-512 1 x FMA o 2 x FMA, ¿cuál es mejor?
El término correcto aquí es hablar de unidades FMA (Fused Mutiply Add) disponibles, ya que desde AVX2 se permiten varias de ellas dependiendo del procesador y su arquitectura (AVX512F y sus extensiones para programadores en este caso).
¿Cuál es el problema? Pues bien, AMD va a implementar dos FMA de 256 bits en vez de una unidad de 512 bits, por lo que significa que cada instrucción AVX-512 necesita dos ciclos de reloj para hacer el trabajo en vez de uno. Pues bien, esta diferencia tan sutil lo cambia todo.
Intel ha deshabilitado las unidades AVX-512 en Alder Lake por un "problema" bastante simple: al usarlas, el consumo subía bastante y la frecuencia caía. El motivo es fácil de entender, ya que al hacer uso de estas instrucciones la parte del procesador que las implementa requiere un esfuerzo tanto de voltaje como de carga de trabajo y eso hace que los MHz se reduzcan para poder ejecutarlas de forma segura para él mismo (temperatura principalmente derivada del consumo). Además, la carga es tan grande que satura el desempeño de otras instrucciones anexas a ella por la cantidad de recursos y registros que necesita.
Es decir, usar AVX-512 en Intel es sinónimo de bajada de frecuencia y por lo tanto menor rendimiento en el trabajo a desempeñar. El problema, es que a pesar de esta caída Intel sigue empeñado en ello y las incluye en los P-Core de Alder Lake, aunque deshabilitadas por firmware o de forma física en el die, dependiendo del momento en el que comprásemos nuestra CPU.
Por lo tanto, y sabiendo que AMD usa 2 x 256 bits en los Ryzen 7000 con estas instrucciones y entendiendo que hay pérdida de rendimiento por ello frente a la opción de una SIMD por núcleo, el debate se centra en si esta es la opción más inteligente a escoger y si, lógicamente, Intel se ve forzada (en teoría) con Raptor Lake a pasar de 2 x 256 bits al esquema contrario de los Ryzen 7000, es decir, 1 x 512 bits. Alder Lake queda fuera de la ecuación por motivos ya comentados.
Si fueran capaces de hacerlo sin pérdidas de rendimiento (o mínimas), Raptor Lake ganaría la partida sin problema a AMD Ryzen 7000 Zen 4 en AVX-512, ya que parte de una mayor frecuencia, pero al mismo tiempo mayor consumo (el principal hándicap). Por otro lado, 1 x 512 bits ocupa más espacio físico en el die que 2 x 256 bits por la propia jerarquía y disposición de la SIMD FMA, de ahí también la parte proporcional del área total de los Core 13.
Como de momento no sabemos el rendimiento de ninguno de los dos enfrentados en AVX-512 puro, solo nos queda esperar, pero ya tenemos la explicación y la antesala cuando comiencen a salir los datos.