Así es la arquitectura RDNA 2 de las AMD RX 6000, PS5 y Xbox Series X/S

La arquitectura RDNA 2 ya ha sido lanzada al mercado, ya que se encuentra tanto en el interior del SoC de las consolas de nueva generación PlayStation 5 como de las Xbox Series X/S. ¿Pero qué secretos encierra esta arquitectura gráfica de AMD? ¿Qué novedades aporta y respecto a su antecesora?

La arquitectura RDNA 2, también conocida como Big Navi, resulta un salto de calidad en lo que a las tarjetas gráficas de AMD se refiere, ya que estamos hablando de la primera vez en la que AMD nos trae una arquitectura con hardware dedicado para la aceleración del Ray Tracing, soporte Variable Rate Shading y muchos otros cambios en los que iremos entrando en detalle.

RDNA 2, una versión evolucionada de RDNA

RX 6000 Big Navi GDDR6 RAM

Hemos de partir de que RDNA 2 es una mejora incremental de RDNA, por lo que estamos ante una arquitectura en la que se ha toma a otra como base y se realizan una serie de cambios sobre la misma con tal de obtener una mayor eficiencia y rendimiento, aparte de añadir algunas novedades para mantener a la arquitectura competitiva respecto a la competencia.

Machine Learning en AMD RDNA 2

DirectML RDNA 2

En las RX 5700 y RX 5600, basadas en Navi 10, AMD no añadió soporte para instrucciones Int8 e Int4, pese a haberlo hecho en las Vega a 7nm, Curiosamente AMD para las RX 5500 y RX 5300 sí que añadio las instrucciones con precisión Int8 e Int4, aparte de las BF16 que son ampliamente utilizadas de cara a la inteligencia artificial.

Dicho de otra forma, mientras que la gama baja de las RX 5000, basada en RDNA, disponía de la capacidad de trabajar en precisiones que son ideales para los algoritmos de inteligencia artificial, la gama alta no. Esto lo ha solucionado AMD en RDNA 2 donde toda la gama entera tiene soporte para datos bajo dicha precisión, lo que le da soporte completo para DirectML

Ray Tracing en AMD RDNA 2

Ray Accelerator Unit RDNA 2

AMD ha añadido una unidad de intersección de rayos para el Ray Tracing dentro de cada una de las Compute Units llamada Ray Acceleration Unit. El trabajo de este tipo de unidad y su funcionamiento es el mismo que el del RT Core de NVIDIA y se encarga de realizar una tarea que requeriría de una enorme potencia si se hiciera utilizando la Compute Units.

AMD no ha dado una potencia equivalente, pero los ingenieros de Microsoft en el Hot Chips aseguraron que para conseguir el mismo rendimiento que en las Ray Accelerator Unit solamente sería necesario una GPU de 25 TFLOPS calculando solo la intersección de los rayos, más del doble de la potencia de Xbox Series X. Sin este tipo de unidades el trazado de rayos se vuelve tan lento que resulta inviable.

Por ejemplo, en una GPU de la familia RX 6000, bajo el benchmark «Procedural Geometry Sample application» del SDK del DXR, utilizando las Ray Accelerator Units el resultado es de 471 FPS, mientras que sin activar esto y a través del «Software DXR fallback layer» obtiene solo 34 FPS.

Nuevo planificador en la Compute Unit

RDNA 2 die

Otra de las mejoras que ha hecho AMD es el añadido de un nuevo planificador en las Compute Units, en RDNA se utilizaba el de GCN todavía, el cual soportaba unos 40 Wavefronts, por uno que soporta 32 Wavefronts. Aunque la cifra sea menor, el aprovechamiento de las ALUs a la hora de realizar las diferentes instrucciones es mucho más alta y por tanto el rendimiento acaba siendo mucho mayor.

Variable Rate Shading en AMD RDNA 2

Habitualmente, el ratio entre instrucciones Pixel (o Fragment Shader) respecto a la cantidad de píxeles en pantalla es de 1:1. La idea del Variable Rate Shading es agrupar una instrucción en un conjunto de píxeles de tal manera que la tasa de «shading» varia. El motivo de ello pueden ser cosas como que el valor de esos píxeles sea el mismo y resulte un malgasto de recursos repetir la misma instrucción, ya que va a dar siempre el mismo resultado, por lo que es importante destacar que la resolución, la densidad de píxeles en pantalla no varia.

Si le echamos una ojeada a las patentes de AMD sobre el VRS podemos deducir como se realiza dentro de la GPU:

Patente VRS AMD RDNA 2

El soporte para el VRS requiere en una GPU que las unidades de rasterizado y los ROPS, Render Backend en AMD, hayan sido modificadas para soportar esta técnica de renderizado, la cual se utiliza para ahorrar el calculo repetitivo de grupos de píxeles con los mismos atributos.

Infinite Cache

RDNA 2 Infinity Cache

Exclusivo de las RX 6000 y totalmente ausente en consolas,  al menos de Xbox Series X, la Infinite Cache es una cache de último nivel y al mismo tiempo una victim cache, la cual se encarga de rescatar las lineas de cache descartadas por la cache L2, evitando en la mayoría de casos que la GPU tenga que ir a la VRAM para recuperar los datos, lo que supone un ahorro en tiempo de acceso y energía consumida. La Infinite Cache es clave en las RX 6000 para alcanzar mayores velocidades de reloj respecto a RDNA,