Así mejora AMD el rendimiento de sus procesadores en gaming con GameCache

Así mejora AMD el rendimiento de sus procesadores en gaming con GameCache

Javier López

La salida al mercado de Zen 2 con los Ryzen 3000 ha dado un vuelco al mercado, sobre todo al gaming. Aunque en términos generales AMD sigue un poco por detrás en este sector, lo cierto es que la brecha se ha cerrado mucho, porcentualmente por debajo de las dos cifras en todos los casos. Una de las mejoras que ha propiciado este escenario es la llamada GameCache, de la cual se ha hablado muy poco ¿qué es y como funciona?

Parte de la mejora en gaming se debe sin duda al nuevo enfoque del sistema de cachés que AMD ha implementado en Zen 2. Los cambios son más que sutiles, lo que ha provocado que el rendimiento mejore y con ello se alcancen más FPS en pantalla, la pregunta más obvia por lo tanto es ¿ cuáles son esos cambios?

La memoria caché de los procesadores ayuda a almacenar los datos que el procesador necesita con mayor inmediatez, reduciendo así mucho la latencia que tendría si tuviera que consultar dichos datos en la memoria RAM. Para que nos entendamos, es una especie de memoria RAM mucho más rápida que el procesador siempre tiene a mano.

Nueva topología arquitectónica en cachés e implementación del I/O Die

thumbnail_amd-zen2-banner-1

Todos conocemos la arquitectura Zen 2 con su sistema MCM en base a chiplets, pero puede que algunos no conozcan los entresijos de dicha arquitectura para gaming. El principal problema de AMD para ganar rendimiento en los juegos se basaba en problemas de latencia, tamaño de caché y por supuesto IPC.

Sobre las mejoras de IPC ya hemos hablado largo y tendido en otros artículos, así que nos centraremos en los problemas de latencia y tamaño de las cachés, porque esto también afecta a los nuevos Threadripper 3000 y mermaba en mucha mayor medida a los predecesores de la serie 2000.

Los problemas de latencia con Zen y Zen+ se basaban en los tiempos de acceso aleatorios desde los CCD hasta la RAM del sistema y al mismo tiempo en cómo la arquitectura manejaba la información entre núcleos y sus respectivas cachés. Era evidente que el acceso no era óptimo, ya que por ejemplo, la L2 solo podía reportar 12 ciclos siendo de tipo Private, mientras que la L3 era compartida y podía trabajar con 35 ciclos siendo de tipo Victim.

AMD-EPYC-Zen-Architecture-Cache-Hierarchy

Esto sumado a que la L1D solo podía trabajar con 2 x 16 bits en carga y 16 bits en almacenamiento, lanzaban un cuello de botella importante para ciertas tareas importantes en gaming, donde tan importante es la L3 como la L1. Por lo tanto, las L1 de los núcleos tenían diferentes latencias, la L2 se unificó con instrucciones y datos y la L3 era compartida, era un paso interesante, pero no suficiente para competir contra Intel en gaming.

Así, el tamaño de las cachés, aunque aumentó al introducir la arquitectura Zen (sobre todo la L2), se antojaba demasiado pequeño para evitar la salida continuada de instrucciones y datos hacia la RAM del sistema, con el consecuente problema que ello siempre genera en gaming.

El salto a los 7 nm de Zen 2 propició un aumento de la L3, manteniendo la misma proporción de L2 por núcleo, ya que dicho aumento de las dos primeras suponía un espacio físico bastante importante de por sí. Además, el separar partes importantes de los núcleos e introducirlos en un nuevo chiplet sumaba un coste adicional al proceso y una serie de latencias que tendrían que ser paliadas para que el intercambio de información entre IMC, IF y cachés no fuese peor que en Zen 2.

Separar velocidades de reloj, aumentar la caché L3 y reducir la caché L1: las claves para GameCaché

amd-zen2-floorplan GameCaché

Lo cierto es que la jugada de AMD con la jerarquía de cachés fue maestra. La caché L1 se redujo a la mitad, se conservó el tamaño de la L2 y se duplicó el de la L3, de manera que unido a la mejora del Datapach (256 bits) y la asociatividad duplicada a 8-way, junto con un aumento de las colas de trabajo de 44 a 48 entradas dio a AMD la excusa perfecta para ganar rendimiento.

El problema es que las latencias internas de la L3 pasaron de los 35 ciclos a 40 ciclos, pero las de L1I y L1D se redujeron a 4 ciclos para la primera y 7 ciclos para la segunda, lo que también propició una pequeña mejora en la L2 a 12 ciclos.

Así, tanto la L1D como la L2 y L3 ahora podían trabajar mediante el llamado Write-back para que esta última fuese en exclusiva de tipo Victim. En resumen y simplificándolo todo, el mayor tamaño de la L3 propicia que no se acceda tanto a la RAM del sistema, lo cual reduce los accesos.

zen_2_core_diagram

A su vez, el I/O Die iguala los timmings entre núcleos, por lo que el rendimiento es más uniforme entre cores y aunque la L3 sea más lenta, la L1 y L2 son más rápidas, por lo que despacharán (nunca mejor dicho) la información a los núcleos de manera más rápida tras pasar por la L3.

Si hablamos de cifras en concreto, AMD afirma lograr un 21% de rendimiento en gaming con su nueva jerarquía y arquitectura, reduciendo la latencia efectiva de la memoria en 33 ns, donde parte de culpa la tiene el aumento de la velocidad del IMC de serie, pero parte también la ofrecen las cachés y sus ways.

GameCaché nació para competir con SmartCaché de Intel

amd-zen2-caches-perf GameCaché

El movimiento de marketing de AMD se basa simplemente en contrarrestar lo hecho por su rival con la llamada SmartCaché, compitiendo en su mismo terreno. Además, GameCaché es una apuesta de futuro por parte de los de Lisa Su, puesto que en Zen 3 las mejoras en la jerarquía volverán a ser importantes debido al nuevo modelo de núcleos y CCD, los cuales deberían hacer todavía más efectiva a todos los niveles de caché.

En cualquier caso, reducir el tamaño de la L1 a la mitad y duplicar el de la L3 mejorando los ciclos y latencia de la primera y permitiendo menor acceso exterior gracias a la segunda es sin duda un movimiento maestro por parte de AMD.

Huelga decir que cuando hablamos de GameCaché en AMD, la compañía se refiere a la jerarquía completa de cachés, por ello suma el tamaño total de los tres niveles (L0 lógicamente no cuenta).

AMD GameCaché

Además, por lo que hemos visto en estos últimos días, Intel planea un cambio de jerarquía de caché que bien podría deberse a reducir el acceso a la RAM, ya que al parecer el tamaño aumentará.

El problema es que el diseño monolítico de los de Swan permite menos maniobra en este sentido, pero al mismo tiempo logra unos tiempos de acceso y velocidades más altas que las de su rival, lo que se traduce en una menor latencia, de ahí que populicen su denominado SmartCaché.

Como vemos, son dos puntos de vista totalmente distintos, donde AMD se ha situado casi a la altura de Intel en gaming gracias a GameCaché y a el aumento de IPC general de la arquitectura. Zen 3 mejorará lo presente, lo que no sabemos es cuánto.