Las AMD RX 6000, ¿más rápidas en gaming, pero más lentas en Ray Tracing?

Una de las novedades que trae consigo la nueva generación de tarjetas gráficas de AMD, basadas en la arquitectura RDNA 2, es la capacidad para acelerar el trazado de rayos gracias a unidades dedicadas, algo que ya sabíamos de antemano por declaraciones de AMD y por las especificaciones de las consolas de videojuegos de próxima generación, pero con las RX 6000 el Ray Tracing ha llegado por fin a las Radeon de PC.

Por fin AMD tiene tarjetas gráficas en la gama alta preparadas para competir contra la RTX 3080 de NVIDIA, y después de una espera de dos años desde que NVIDIA introdujera el RT Core en su arquitectura Turing, los usuarios ya tenemos una alternativa a NVIDIA de cara al Ray Tracing.

AMD RX 6000 vs NVIDIA RTX en Ray Tracing

Comparativa AMD Ray tracing

A partir de esta primera prueba de rendimiento podemos observar en qué posición del ranking se situaría la RX 6900 XT, y aunque en la gráfica no se dice qué modelo es concretamente, se intuye que es la RX 6900 XT la que es comparada de tú a tú con las NVIDIA RTX.

Hay que tener en cuenta que NVIDIA con las RTX 3000 ha duplicado la capacidad de cálculo de los RT Cores respecto a los de la RTX 2000, además el Ray Tracing se beneficia enormemente de las ALUs FP32, las cuales han sido duplicadas en las RTX 3000.

En cambio, AMD parece haber adoptado una solución con unas capacidades más cercanas a las de la RTX 2000 en lo que al trazado de rayos se refiere.

AMD RX 6000: mejor en la rasterización, peor en el Ray Tracing

Rasterizado Básico

El algoritmo para generar los gráficos en los videojuegos en 3D desde mediados de los años 90 es llamado rasterización, donde APIs gráficas como OpenGL, Vulkan, DirectX y similares son abstracciones de esta forma de generar una escena en 3D.

Carga Datos Gráficos AMD Ray tracing

En la rasterización, la etapa en la que hay una cantidad mayor de elementos a procesar es la que llamamos Pixel Shader en DirectX o Fragment Shader en OpenGL o Vulkan, la cual además está asociada a hardware de función fija como son las unidades de texturas, de rasterizado y los llamados ROPS o Raster Outputs.

El Ray Tracing que utilizan los juegos actualmente es una combinación entre este y la rasterización en el que ciertos problemas visuales, especialmente los relacionados con la iluminación indirecta, son resueltos utilizando el trazado de rayos.

Nvidia Ampere SM

El trazado de rayos no hace uso de las unidades de función fija sino de la potencia de cálculo en bruto. Es por ello que las RTX 3000 dan mejores resultados en el Ray Tracing, no solo por su RT Core mejorado, sino también por el hecho de que en cada SM, el equivalente a las Compute Units en las GPUs de NVIDIA, tenemos 128 unidades FP32 contra las 64 por CU en las GPUs de AMD.

Esto explica la diferencia de rendimiento en el trazado de rayos entre ambas arquitecturas.

Ray Accelerator Unit

Ray Accelerator Unit AMD Ray tracing

AMD ahora tiene su propio RT Core, el Ray Accelerator Unit, y hay uno por cada Compute Unit. Su trabajo es el mismo que el del RT Core de las NVIDIA RTX e incluso se encuentra en la misma posición dentro de la GPU que las NVIDIA RTX, como se puede ver en el siguiente diagrama:

Turing SM organización

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.

Esto nos confirma lo esenciales que son este tipo de unidades para permitir algoritmos de Ray Tracing en las tarjetas gráficas domésticas.