AMD Zen 3 a fondo: un vistazo a la nueva arquitectura de los Ryzen 5000
El pasado 8 de octubre AMD presentó, por fin, Zen 3, una nueva arquitectura con la que la compañía de Sunnyvale ha logrado un importante salto cualitativo que le ha permitido superar a Intel en todos los frentes. Ha sido un camino largo y complicado para AMD, pero Lisa Su, y los ingenieros clave de la compañía, han sabido llevarla de nuevo por el buen camino.
Para entender mejor el importante recorrido que ha llevado a cabo AMD es necesario remontarnos cinco años atrás. Volvamos a 2015, año en el que Intel lanzó los procesadores Core 6000, basados en la arquitectura Skylake y fabricados en proceso de 14 nm+. Por aquél entonces, AMD tenía en el mercado los procesadores FX Piledriver (series FX 8300, FX 6300 y FX 4300), configurados con hasta cuatro módulos completos y ocho núcleos de enteros.
La particular arquitectura de recursos compartidos que utilizaba Bulldozer (Piledriver es una ligera evolución de aquella), tenía un IPC tan bajo que ni siquiera podía competir en rendimiento monohilo con la arquitectura Sandy Bridge, utilizada en los procesadores Core 2000. Obvia decir que, por tanto, AMD no tenía nada con lo que competir contra los Core 4000, basados en Haswell, y menos aún con los Core 6000, basados en Skylake, que daban sopas con honda a los FX Piledriver.
El patinazo de AMD con la arquitectura Bulldozer condenó a la compañía a una situación muy complicada. La arquitectura Piledriver debutó en 2012, y se mantuvo hasta 2017 como la única «alternativa» a los procesadores Intel Core hasta 2017, fecha en la que AMD presentó los Ryzen serie 1000, una nueva generación de procesadores de alto rendimiento con la que la compañía de Sunnyvale nos dio una sorpresa enorme.
Fueron cinco años, cinco largos años en los que AMD tuvo que aguantar como pudo con una arquitectura que no solo no era capaz de competir con lo que tenía Intel en el mercado, sino que además iba quedando cada vez más y más desfasada. Intel tuvo una oportunidad de oro para darle un mazazo definitivo, pero en lugar de ello optó por mantener una actitud conservadora con una evolución nula desde la llegada de Skylake. Pude que el gigante del chip se durmiera en los laureles, pero creo que en el fondo tampoco le interesaba acabar con su único rival en el sector x86, más que nada por las implicaciones (y complicaciones) que podría ocasionarle.
Durante esa etapa oscura y complicada que atravesó AMD surgieron rumores de quiebra y de compra de la compañía por parte de gigantes como Samsung. Nadie daba un duro por ella, como ya he dicho en otras ocasiones, y esto hizo que su recuperación se acabase convirtiendo en algo épico.
En 2017 llegaron los primeros procesadores basados en Zen, una arquitectura con un diseño MCM que, básicamente, conectaba pastillas de silicio con cuatro núcleos para crear procesadores de hasta 32 núcleos y 64 hilos (EPYC de primera generación). Los Ryzen serie 1000 sustituyeron a los FX Piledriver en el mercado de consumo general, y llegaron en configuraciones de hasta 8 núcleos y 16 hilos.
No era la primera vez que un grande del sector x86 utilizaba una arquitectura de este tipo. Intel, por ejemplo, recurrió a ella con los Pentium D y los Core 2 Quad. Los primeros eran dos Pentium 4 «pegados», y los segundos montaban dos Core 2 Duo interconectados.
El resultado que obtuvo AMD con esta arquitectura fue realmente bueno. Es cierto que, por las limitaciones propias de ese primer diseño MCM (latencias a nivel de caché y de comunicaciones entre núcleos, principalmente) no lograron alcanzar a Intel en términos de IPC, pero consiguieron un salto enorme frente a los FX Piledriver (un 52% más de IPC), y democratizaron los procesadores de 6 y 8 núcleos.
Con Zen+, AMD pulió pequeños detalles en la arquitectura MCM y logró mejorar ligeramente el IPC. Esto, unido a un aumento de frecuencias, la colocó un poco más cerca de los procesadores Core de Intel, pero la verdadera consagración llegó con Zen 2. Esta arquitectura nos trajo una nueva unidad base dentro del diseño MCM: el chiplet, una pequeña pastilla de silicio con 8 núcleos y 16 hilos divididos en dos unidades CCX, que juntas dan forma a una unidad CCD (el chiplet). Esas unidades CCX ya no ocupan encapsulados diferentes, como ocurría con Zen y Zen+, sino que se encuentran ubicados en un único encapsulado, una realidad que Zen 3 ha vuelto a cambiar.
Zen 2 frente a Zen 3: ¿qué ha cambiado exactamente?
AMD ha confirmado que Zen 3 mejora el IPC frente a Zen 2 en un 19%, un salto enorme que confirma que lo que ya os habíamos ido contando en artículos anteriores, y es que con esta arquitectura han conseguido superar, por fin, a Intel en términos de IPC, y también en rendimiento por vatio.
Zen 3 mantiene el diseño MCM que vimos en Zen 2, lo que significa que el chiplet sigue siendo «la gran estrella», y lo mismo ocurre con el proceso de fabricación, ya que repiten con el de 7 nm de TSMC. Antes de continuar quiero recordaros que no podemos comparar directamente el proceso de 7 nm de Zen 3 con el proceso de 14 nm de Intel, y menos aún con el de 10 nm que utilizan los procesadores Tiger Lake. La razón es muy sencilla, y es que partimos de arquitecturas diferentes (módulo multi-chip en el caso de AMD y núcleo monolítico en el caso de Intel), y de densidades de transistores dispares.
En cualquier caso, si afrontamos el tema del proceso de fabricación desde una perspectiva puramente pragmática está claro que el diseño MCM y el proceso de 7 nm de TSMC funcionan a la perfección. Los procesadores Ryzen 9 3950X, basados en Zen 2 y equipados con 16 núcleos y 32 hilos, ya lograban ofrecer un rendimiento multihilo enorme con un consumo muy contenido, y el Ryzen 9 5950X no ha hecho más que mejorar esa realidad.
AMD ha introducido mejoras profundas a nivel de arquitectura en Zen 3 para conseguir ese aumento del IPC. Echando un vistazo a la superficie nos encontramos con mejoras en la captación previa de la caché, en el «front end», en los motores de ejecución, en el predictor de saltos, en las microoperaciones a nivel de caché y en la carga y almacenamiento.
Todos esos cambios son importantes, pero el pilar central sobre el que se apoya la nueva arquitectura Zen 3 lo tenemos en el salto a un chiplet con base monolítica. Como os hemos contado al principio del artículo, Zen 2 utiliza el chiplet como base, una pastilla de silicio que suma 8 núcleos y 32 MB de caché L3, pero estos se subdividen en dos unidades CCX, cada una formada por 4 núcleos y 16 MB de caché L2. Esa configuración presenta dos problemas importantes que afectan al rendimiento:
- Las comunicaciones entre cada bloque de cuatro núcleos son más lentas y tienen una mayor latencia.
- Cada bloque de cuatro núcleos solo puede acceder a los 16 MB de caché L3 que tienen asignados en su unidad CCX.
Con Zen 3, AMD ha eliminado esa división en dos unidades CCX, lo que significa que cada chiplet cuenta ahora con un bloque único. Ya no tenemos dos bloques de cuatro núcleos y 16 MB de caché L3, con Zen 3 tenemos un único bloque de ocho núcleos y 32 MB de caché L3. Esto trae consigo dos novedades importantes:
- Ahora las comunicaciones entre esos núcleos son más rápidas y tienen una menor latencia.
- Cada uno de los ocho núcleos puede acceder a los 32 MB de caché L3, y no a 16 MB como ocurre con Zen 2.
Reducir la latencia y mejorar las comunicaciones entre núcleos tiene un impacto positivo en el rendimiento multihilo, ya que permite subdividir y coordinar mejor la paralelización de altas cargas de trabajo. Por contra, dar acceso a los 32 MB de caché L3 mejora tanto el rendimiento monohilo como el rendimiento multihilo. Vamos a verlo con un ejemplo, piensa en una aplicación intensiva que se ejecute sobre un único hilo. Con Zen 2, ese hilo tendría acceso a un máximo de 16 MB de caché L3, mientras que con Zen 3 puede acceder a 32 MB de caché L3.
Zen 3 paraliza la carrera de los núcleos, y también la de los MHz
El pasado año publicamos un especial muy interesante en el que vimos que AMD auguraba el final de la carrera de los MHz, una realidad que ya vivimos, de forma parcial, con la llegada de los Athlon 64, y que alcanzó su punto álgido con el debut de los Core 2 Duo, una generación de procesadores que era capaz de ofrecer un rendimiento enorme para la época funcionando a unas frecuencias muy modestas (entre 1,8 GHz y 2,4 GHz).
Los procesadores Intel Core de novena y de décima generación han vuelto a llevar al extremo la carrera de los MHz, una realidad que ha permitido a la compañía de Santa Clara romper la barrera de los 5 GHz. AMD, sin embargo, ha optado por una estrategia distinta: ofrecer procesadores más eficientes, con una capacidad multihilo superior y un valor precio-prestaciones mucho más interesante.
Con Zen 3, hemos podido ver un ligero aumento de frecuencias que ronda entre los 100 y los 200 MHz, un salto muy pequeño que sigue dejando a AMD a las puertas de los 5 GHz. Tal y como se esperaba, tampoco hemos visto un aumento del máximo de núcleos e hilos, ya que el Ryzen 9 5950X mantiene el conteo de 16 núcleos y 32 hilos que vimos en el Ryzen 9 3950X. Todo esto tiene una explicación:
- La mejora del IPC en un 19% en Zen 3 hace que sea innecesario arriesgar con un aumento de frecuencias que pueda comprometer la estabilidad, el consumo y las temperaturas.
- Al mantener el proceso de 7 nm en Zen 3 resulta arriesgado aumentar el número de núcleos e hilos sin sacrificar consumos y temperaturas.
- Hoy por hoy, seguimos con un marcado estancamiento que hace que no tenga sentido buscar configuraciones multinúcleo extremas en Zen 3.
AMD ha acertado con el enfoque que ha dado a Zen 3. La compañía de Sunnyvale no necesitaba mejorar el máximo de núcleos e hilos, y tampoco tenía sentido luchar a capa y espada por apurar unos pocos MHz más. Necesitaba mejorar el IPC para arrebatar a Intel la corona del rendimiento monohilo, y qué duda cabe que lo ha logrado de forma contundente.
Todavía no hay nada seguro, pero creo que Intel va a responder a Zen 3 con una apuesta «excesivamente realista» con Rocket Lake-S, una generación que vendrá fabricada en proceso de 14 nm+++ y que utilizará núcleos Cypress Cove, una adaptación de los núcleos Willow Cove utilizados en los Intel Tiger Lake.
Como consecuencia de esa adaptación al proceso de 14 nm de núcleos pensados para el proceso de 10 nm++, Intel no podrá lanzar procesadores Rocket Lake-S con más de 8 núcleos y 16 hilos, una limitación que la llevará a jugar la carta de esa «apuesta excesivamente realista» que hemos comentado. Es fácil de entender, como hemos dicho, a día de hoy hay un marcado estancamiento en juegos y aplicaciones de consumo general que hace que no se aprovechen de forma óptima procesadores de más de seis núcleos.
Pues bien, esa es la realidad que va a aprovechar Intel con Rocket Lake-S. Los nuevos núcleos Cypress Cave deberían permitir un aumento del IPC de entre un 10% y un 20%, algo que unido a un aumento de frecuencias podría colocar a esta nueva arquitectura un poco por encima de Zen 3 en rendimiento monohilo, pero muy por debajo en rendimiento multihilo, ya que Zen 3 puede dar forma a chips de consumo general con hasta 16 núcleos y 32 hilos. Para maquillar esa carencia, es probable que Intel defienda a bombo y platillo que no necesitas más de 8 núcleos y 16 hilos.
Creo que la idea se entiende perfectamente, y en el fondo es cierto, un usuario normal no necesita más de 8 núcleos y 16 hilos. Es una lástima, ya que si nos encontrásemos en una situación distinta, con aplicaciones y juegos capaces de paralelizar en más de 8 núcleos la realidad de Intel y de AMD en el mercado de consumo general no tendría nada que ver con la que tenemos actualmente.