AMD Infinity Cache es una de las tecnologías más novedosas de la nueva generación de gráficas Radeon RX 6000. Aunque AMD todavía no ha revelado su whitepaper con todos los detalles sobre esta, ya se conoce lo suficiente para saber cómo funciona, para qué se usa y por qué es importante. ¿Quieres descubrir cómo le da un buen toque de rendimiento a tu GPU? ¡Vamos a verlo!
Índice de contenidos
Introducción: la necesidad de acelerar el ancho de banda de las memorias VRAM
Uno de los aspectos más importantes de una tarjeta gráfica es el ancho de banda de sus memorias VRAM, algo que resulta crítico a la hora de ofrecer un rendimiento decente, si bien se nota más en algunas arquitecturas que en otras.
En el caso de AMD, su último gran intento por mejorar esto había sido la introducción de las memorias de tipo HBM, que revolucionaron el mercado al encontrarse en el propio chip de la GPU, con una cercanía que les permitía llegar a unas cotas de ancho de banda efectivo que serían inalcanzables con algunas memorias GDDR.
Sin embargo, se terminó viendo cómo HBM presentaba más problemas que beneficios para las tarjetas gráficas gaming de consumidor, así que AMD dejó de usarlas en este segmento con el lanzamiento de sus Navi (Radeon RX 5000) en 2019. En cambio, usaron memorias GDDR6 mucho más lentas.
Ahora, con la llegada de la nueva generación Big Navi (Radeon RX 6000), AMD podría haber apostado por la misma solución que NVIDIA, que es usar memorias de tipo GDDR6X, una versión más veloz de las clásicas GDDR6. No obstante, la vía que decidió tomar AMD fue otra: apostar por Infinity Cache.
¿Qué es AMD Infinity Cache?
AMD Infinity Cache es una marca comercial que se refiere al uso de una caché situada en sus chips de GPU, la cual funciona de una manera parecida a la caché L3 de la CPU.
Estas memorias caché se presentaron con las primeras tarjetas gráficas RX 6000, esto es, la RX 6900 XT, RX 6800 XT y RX 6800. Las tres gráficas hacen uso de distintas variantes del chip de GPU Navi 21, y tienen exactamente la misma capacidad de Infinity Cache: 128MB. Aunque como os dijimos no es exactamente lo mismo que una caché L3 de una CPU, lo cierto es que es una cantidad bastante generosa, es el doble que la caché L3 de un Ryzen 9 5950X.
Debéis tener en cuenta que, actualmente, todas las tarjetas gráficas tienen cachés en su interior, pero se trata de cachés de nivel 1 (L1) y nivel 2 (L2), y cuanto más bajo sea el nivel estaremos hablando de cachés mucho más rápidas pero también más pequeñas (de hecho también hay un nivel 0 o L0 en AMD RDNA 2). Cuando una unidad de cómputo de la GPU necesita un dato, primero lo buscará en su caché de nivel 0, y si no lo encuentra ahí irá a la de nivel 1, luego a la de nivel 2… Y finalmente recurrirá directamente a la memoria VRAM, que es la más grande pero la más lenta de esta jerarquía.
Esto sería lo que ocurriría en una GPU AMD RDNA, como la RX 5700 XT. Ahora, en las nuevas RDNA 2 (RX 6000) lo que ocurre es que hay un nivel 3 adicional, que es exactamente Infinity Cache.
La idea es reducir la cantidad de veces que se recurre a la memoria VRAM para obtener un dato, al poder almacenar mucho más en un nivel superior como el L3 entonces incrementamos las posibilidades de que no haya que llegar a este punto, en el que el rendimiento decae mucho no solo por la propia velocidad de las memorias sino muy especialmente por el hecho de no tener que «viajar» fuera del chip, y perder muchísimo tiempo en el proceso.
Las mejoras de rendimiento y consumo permitidas por Infinity Cache
Sobre el papel, Infinity Cache parece una solución muy inteligente, ¿no? Pues la gran incógnita que se nos queda es qué mejora de rendimiento permite sobre GDDR6. Para esto solo podemos usar la información de la propia AMD, que indica que GDDR6 de 256 bits + Infinity Cache de 128MB da un ancho de banda efectivo de 1664 GB/s, frente a los 936 GB/s de GDDR6X de 384 bits y 512GB/s de GDDR6 de 256 bits.
Si entramos en la letra pequeña de AMD y vemos de dónde sale este cálculo, básicamente viene de la tasa de aciertos de esta caché obtenida en una selección de juegos a 4K, que según AMD es del 58%. Vamos, que cuando la GPU le pide un dato a Infinity Cache lo consigue en el 58% de las ocasiones, librándose de viajar a la memoria VRAM, y AMD calcula cuánto rendimiento se ha ganado gracias a ello para dar el dato.
A la hora de la verdad, todo dependerá de cada juego, cada instante, la configuración gráfica y muchísimas cosas… así que el beneficio concreto es inmesurable. Pero sin duda Infinity Cache puede dar un aumento de rendimiento interesante.
Debido a su naturaleza, estas memorias Infinity Cache están totalmente controladas por el propio chip de la GPU, y no pueden gestionarse mediante software, algo totalmente normal y esperable. Esto significa que no podemos activar y desactivar Infinity Cache a voluntad, no es un software, es un elemento puramente integrado en el hardware, así que no hay manera de ver cómo sería el rendimiento en juegos si esta no estuviese ahí.
Está claro que, siendo uno de los puntos claves de la arquitectura RDNA 2, y viendo que esta ha conseguido doblar el rendimiento respecto a RDNA, entonces Infinity Cache no es ninguna broma en cuanto a rendimiento.
Debéis tener en cuenta que también nos trae beneficios en cuanto a consumo energético, puesto que el hecho de tener que acceder menos a la memoria VRAM nos beneficia mucho, ya que las memorias GDDR6 consumen bastante energía, y precisamente el hecho de que AMD recurra a esta solución (y con un bus de memoria bastante más estrecho, que también reduce el consumo) frente a la «hambrienta» memoria GDDR6X de las RTX 3080/3090 podría tener parte de la responsabilidad de que AMD haya superado a NVIDIA en eficiencia energética en esta generación.
Infinity Cache tiene un tamaño descomunal
En la foto de arriba vemos resaltado en qué región de los chips RDNA 2 se encuentra nuestro querido Infinity Cache, pero lo cierto es que tiene un tamaño mucho más grande del que se parece a nivel de número de transistores: contamos con alrededor de 6.000 millones en la caché de los chips Navi 21, según cálculos de Anandtech. Esto es más que CPU completas como un AMD Ryzen 7 3700X, que tiene 3800 millones.
Evidentemente hablamos de unos transistores muy miniaturizados, más aún con el proceso de 7nm de TSMC, y no deja de ser una estimación… pero ya de por sí está claro que Infinity Cache no es ninguna broma y se trata de una propuesta muy ambiciosa por parte de AMD. El tamaño en el chip que se le dedica es relativamente grande, y no en vano.
Intentando compensar la desventaja frente a NVIDIA
Una de las mayores ventajas de AMD sobre NVIDIA en esta última generación de tarjetas gráficas ha sido que han usado unas cantidades de memoria razonablemente superiores en muchos casos, como los 16GB de la AMD RX 6800 frente a los 8GB de la NVIDIA RTX 3070.
Sin embargo, AMD ha estado claramente por detrás en lo que se refiere al tipo de memorias usado, el ancho del bus de memorias y su frecuencia efectiva. Por ejemplo, la AMD Radeon RX 6800 XT usa 16GB GDDR6 con bus de 256 bits y a 16Gbps, mientras que la NVIDIA GeForce RTX 3080 usa 10GB GDDR6X con bus de 320 bits y a 19 Gbps. Evidentemente, esto puede decantar la balanza y poner a AMD por detrás de NVIDIA, así que ha sido bastante importante que incluyesen Infinity Cache para intentar compensarlo y obtener mejores valores de ancho de banda de memorias.
El lastre en altas resoluciones, ¿causado por Infinity Cache?
Las pruebas de rendimiento de las nuevas gráficas RX 6000 muestran de forma bastante consistente cómo a mayor resolución las gráficas de NVIDIA ganan ventaja sobre AMD. Esto es algo que hemos visto, por ejemplo, en nuestra comparativa de la RX 6900 XT y la RTX 3090, donde de media la opción de AMD ganaba ligeramente a 1080p (+2.1%), perdía un poco a 1440p (-1.5%) y a 4K perdía bastante más (-7.6%) sobre NVIDIA.
Es posible que Infinity Cache tenga algo que ver con esto, ya que el aumento de la resolución y por tanto la mayor cantidad y peso de las texturas y datos a procesar son algo que se podría notar en la gestión de su «caché L3» de «tan solo» 128MB.
Palabras finales y conclusión sobre Infinity Cache
A cada nueva arquitectura gráfica, NVIDIA y AMD intentan introducir nuevas características que puedan repercutir positivamente en el rendimiento de los juegos, y son las pequeñas optimizaciones las que luego marcan la diferencia.
En el caso de AMD RDNA 2, la arquitectura de las gráficas RX 6000, una de estas novedades es Infinity Cache, que es básicamente la inclusión de un nuevo tipo de caché nunca antes visto en una tarjeta gráfica de escritorio, y que más o menos equivale a una caché de nivel 3. Su tamaño es de 128MB, mucho más que la mayoría de CPUs, donde las cachés L3 son de lo más común.
Lo que pretende este nuevo tipo de caché, como todas, es reducir la cantidad de veces que se tiene que recurrir a la VRAM para acceder a un dato, ya que esto es algo muy costoso en tiempo de ejecución y en energía consumida.
Lo que ocurre en toda GPU (y CPU) al buscar un dato es empezar mirando en cada uno de sus niveles de caché, desde los inferiores (más pequeños pero también más rápidos) hasta el más alto de todos, y si no se encuentra en ninguna de ellas entonces se buscará en la VRAM. Infinity Cache introduce un nivel adicional a los ya existentes con un tamaño relativamente grande.
A nivel práctico, lo que así se consigue es aumentar el ancho de banda efectivo de la memoria de la gráfica en general, y sobre todo lo que AMD busca es intentar compensar el hecho de que NVIDIA usa memorias más rápidas y con buses más amplios, a la vez que reducen considerablemente el consumo energético.
¿Qué te ha parecido Infinity Cache? ¿Crees que NVIDIA intentará poner más niveles de caché en sus futuras RTX? ¡No dudes dejarnos tus comentarios!