AMD implementará Infinity Cache en sus Radeon RX 6000 Series

A un día de la presentación de la nueva generación de tarjetas gráficas de AMD, las Radeon RX 6000 basadas en la arquitectura Navi 2x coloquialmente conocida como Big Navi, han vuelto a aparecer en referencias acerca de una de las novedades en cuanto a arquitectura que tendrían estas nuevas GPU respecto a las RDNA de primera generación, la Infinity Cache.

Si hace pocos días teníamos una posible confirmación en forma de marca registrada, ahora tenemos la confirmación final de la implementación de Infinity Cache en las próximas tarjetas gráficas Radeon a través de los controladores, los cuales nos dan una serie de datos adicionales sobre uno de los cambios de RDNA 2 a RDNA más importantes a nivel de de arquitectura.

Referencias a la Infinity Cache en los drivers

RX 6000 Big Navi GDDR6 RAM

A través de los drivers para Linux de la nueva generación de GPUs de AMD se ha podido confirmar la existencia física de la Infinity Cache, concretamente en relación con el acceso a memoria en el último nivel o MALL que se filtró hace días.

La información que se puede extraer de estos controladores es que la GPU tope de gama de las RX 6000, con el nombre en clave Navi 21 o Sienna Cichlid, tendría un total de 128 MB de Infinity Cache, lo cual cuadra con los rumores que han ido apareciendo en las últimas semanas respecto a este tipo de memoria.

La referencia en el driver es respecto al controlador de pantalla, Display Core Next en las GPU de AMD, la cual es la unidad que lee el búfer de imagen final y lo envía a la pantalla a través de las interfaces Display Port o HDMI. En este caso hace referencia a la capacidad del DCN de poder acceder a la Infinity Cache y con ello podemos sacar una serie de conclusiones por adelantado acerca de las RX 6000.

La Infinity Cache sería una caché de último nivel

GPU Radeon Pro 5600M

Hay tres motivos que nos lo confirmarían:

  • El concepto «Acceso a memoria en el último nivel», llamado MALL, el cual ya nos da una pista sobre la naturaleza de la Infinity Cache.
  • El segundo es que las cachés en todo procesador independientemente de si es una CPU, una GPU o cualquier otro tipo de unidad de proceso aumentan su capacidad de almacenamiento respecto a los anteriores niveles.
  • El acceso del controlador de pantalla a esta caché, lo que supone que estamos ante la caché con más nivel de acceso global dentro de la GPU.

Para entender el último punto, hay que tener en cuenta que las GPU en general se dividen en dos partes distintas, las cuales se encuentran unidas a través de un puente norte común:

  • La parte central de la GPU encargada de renderizar gráficos en 3D o hacer tareas de computación pesadas, AMD la llama GFX en sus arquitecturas gráficas.
  • El segundo bloque son una serie procesadores de apoyo que realizan otras tareas como la comunicación con la RAM principal del sistema, la codificación y decodificación de vídeo, el envío de las imágenes a pantalla.

Pues bien, esa serie de procesadores de apoyo no tienen acceso a ninguna de las cachés de la parte central de la GPU a la que AMD llama GFX, lo que nos indica que la Infinity Cache en las RX 6000 se encontraría en el puente norte, que es la parte común entre los procesadores de apoyo y la GFX, y se trataría de una caché que estaría a un nivel por encima de la L2, por lo que estamos ante una caché de último nivel o Last Level Caché.

La Infinity Cache en las RX 6000 es una herencia de la arquitectura Zen

Radeon Ryzen

En la arquitectura Zen, la caché de nivel más alto y por tanto la última en la jerarquía es la L3, lo que llamamos una «Victim Cache», y esto significa que cuando un dato no cabe en la caché L2 en vez de volcarlo a memoria lo que hace es volcarlo a la L3 por si luego lo ha de recuperar, por lo que todos los datos que son víctimas de un descarte terminan en la caché L3.

En el caso de la Infinity Cache también estaríamos ante una Victim Cache, pero en ese caso su aplicación tiene que ver con el llamado Tile Caching que ha sido adoptado en las GPUs de AMD y NVIDIA desde hace años donde la imagen se resuelve por tiles mientras estos quepan en la caché, pero si no caben entonces son resueltos en la memoria principal, lo que provoca un consumo por instrucción mucho más alto debido a la lejanía de los datos.

AMD DSBR

AMD llama a este concepto «Draw Stream Binning Rasterizer” o DSBR y se encuentra implementado en sus arquitectura gráficas desde Vega en adelante.

La idea de añadir la Infinity Cache es por tanto es asegurarse que una gran cantidad de datos no caigan en la GDDR6 y se mantengan en caché, ya que el hecho que un dato se encuentre más cercano a su lugar de proceso se traduce en un consumo menor y, por lo tanto, podemos deducir que la Infinity Cache es clave para la arquitectura Big Navi a la hora de alcanzar grandes velocidades de reloj.

Recordad que este miércoles 28 de octubre es la presentación de las Radeon RX 6000 y saldremos definitivamente de dudas acerca de esta implementación de la Infinity Cache en las gráficas Radeon RX 6000, pero los drivers nos han dado ya una idea casi exacta de la misma.