Arquitectura Nvidia Ampere Vs. AMD RDNA 2 - ¿cuál es la mejor?

Rubén Castro, 11 diciembre 2020

Las nuevas tarjetas gráficas de Nvidia y de AMD estrenan nuevas arquitecturas con muchas novedades importantes. Nvidia utiliza su nueva arquitectura Ampere en sus GPU de la gama 3000, un gran cambio sobre la arquitectura Turing que ha estado utilizando durante más de dos años. Mientras tanto, AMD utiliza la arquitectura RDNA 2 que sustituye a la RDNA original que lleva en el mercado unos 15 meses. En este artículo vamos a ver las diferencias principales entre ambas tecnologías, en concreto, las diferencias entre el chip Ampere GA102 de Nvidia y el RDNA 2 Navi 21 de AMD.

Uso: Gaming Vs. Computación

Las GPU de AMD y Nvidia solían adoptar enfoques bastante diferentes en sus configuraciones arquitectónicas. Pero a medida que los gráficos 3D se han ido homogeneizando, gracias a las API, sus diseños generales han sido cada vez más similares.

Los desarrolladores de juegos codifican sus títulos usando una API de gráficos (Direct3D, OpenGL o Vulkan). Estas son esencialmente bibliotecas de software, repletas de “libros de reglas”, estructuras e instrucciones simplificadas. Los drivers o controladores que AMD y Nvidia crean para sus chips funcionan esencialmente como traductores: convirtiendo las rutinas emitidas a través de la API en una secuencia de operaciones que las GPU puedan entender. Después de eso, depende completamente del hardware el manejar las cosas, con respecto a qué instrucciones se hacen primero, qué parte del chip las hace, y así sucesivamente.

Aun así, aún quedan diferencias importantes.

Nvidia

A día de hoy, Nvidia tiene tres chips que utilizan la tecnología Ampere: el GA100, el GA102 y el GA104:

  • El GA104 utilizado en la GeForce RTX 3060 Ti, es simplemente una versión reducida del GA102. Tiene menos TPC por GPC (y una GPU menos en total) y dos tercios de la caché de nivel 2. Todo lo demás es exactamente igual.
  • El GA100, por otro lado, es una bestia totalmente diferente. No tiene núcleos RT ni núcleos CUDA con soporte INT32+FP32; en su lugar, contiene una serie de unidades FP64 adicionales, más sistemas de carga/almacenamiento y una enorme cantidad de caché L1/L2. Tampoco tiene ningún motor multimedia porque está diseñado para clusters de computación a gran escala para la IA y el análisis de datos.

Por tanto, los chips de Nvidia GA102/104 son los orientados a los consumidores y tiene por objetivo satisfacer las demandas de los gamers, los artistas gráficos profesionales, los ingenieros, y los trabajos de IA y computación a pequeña escala.

AMD

La arquitectura RDNA 2 fue diseñada exclusivamente para juegos, ya sea en PC o en consolas, aunque también puede ser utilizada en las mismas áreas en las que Ampere. Sin embargo, AMD conserva y está actualizando su arquitectura GCN para clientes profesionales, por lo que de momento no piensa juntarlas.

Sin embargo, en el mercado profesional, Nvidia tiene un dominio bastante claro con los modelos Quadro y Tesla, al menos durante el corto medio plazo. Ya que como hemos dicho, el chip Navi 21 basado en RDNA 2 no ha está destinado a competir con estos.

Usuarios domésticos

AMD ha lanzado la Radeon RX 6900 XT, que utiliza un chip Navi 21 completo (sin unidades de control deshabilitadas), que puede funcionar tan bien como el Nvidia GA102 que monta la GeForce RTX 3090. Sin embargo, el GA102 de esa tarjeta tampoco está completamente habilitado, por lo que Nvidia tiene la opción de actualizar ese modelo con una versión ‘Super’, como hicieron con Turing el año pasado.

Por otro lado, se podría pensar que debido a que la arquitectura RDNA 2 se está utilizando en las series Xbox X/S y en la PlayStation 5, los desarrolladores de juegos van a favorecer esa arquitectura a sus motores de juego. Pero por experiencias pasadas (cuando se utilizó GCN en la Xbox One y la PlayStation 4) no parece que vaya a ser el caso… Los juegos hechos para la Xbox One o la PS4 que fueron portados al PC rindieron prácticamente igual en tarjetas AMD que Nvidia.

Diferencias en la arquitectura

Proceso de fabricación

Los últimos chips de AMD están siendo fabricados por TSMC con la técnica de fabricación N7P que ofrece un pequeño incremento en el rendimiento sobre la fabricación en N7. El GA102 de Nvidia es fabricado por Samsung que utiliza una versión mejorada de su nodo de 8 nm (etiquetado como 8N o 8NN).

Estos valores de nodo, 7 y 8, tienen poco que ver con el tamaño real de los componentes con los chips, son más bien términos de marketing utilizados para diferenciar entre las diversas técnicas de producción.

Tamaño

El último chip de Nvidia, el GA102, ocupa una superficie de 628 mm2, un 17% más pequeño que su antecesor, el TU102… Sin embargo, el chip GA100 usado en IA y centros de datos ocupa 826 mm2 de superficie y, además, utiliza la técnica de fabricación TSMC N7.

Por otro lado, el chip Navi 21 de AMD ocupa 520 mm2, más del doble del tamaño de su anterior chip Navi.

Esto tiene una implicación importante respecto al precio, porque ambos chips se producen en obleas de 300 mm, por lo que cuanto más pequeño sea el chip, más entrarán en cada oblea consiguiendo un precio de producción más bajo. La diferencia es pequeña, pero cuando la producción de cada oblea cuesta miles de dólares, AMD tiene una pequeña ventaja sobre Nvidia.

Número de transistores

  • El GA102 contiene alrededor de 28.300 millones de transistores
  • Mientras que el Navi 21 contiene 26.800 millones, un 5% menos

Rendimiento por vatio

AMD y TSMC han conseguido tener la mejor eficiencia por vatio, un logro bastante notable ya que en menos de dos años han aumentado el rendimiento por vatio en un 64%. Algo que no ha conseguido Nvidia, lo que plantea la duda de cuánto mejor podría haber sido el Ampere GA102, si Nvidia se hubiera quedado con TSMC para fabricación de sus chips.


Estructura

Los procesadores normales, las CPU, son capaces de hacer todos los cálculos que realiza una GPU, sin embargo, las tarjetas gráficas tienen un diseño especial que las hace ser mucho más rápidas y eficientes. Además de eso, gran parte del secreto de las tarjetas gráficas es por su potencia en los cálculos en paralelo.

Gestor

En el RDNA 2, la primera etapa está compuesta por dos sistemas diferentes que se encargan de gestionar los datos y como trabajan el resto de componentes del chip: el primero se llama Graphics Command Processor (Procesador de Comando Gráfico) y el segundo son los Motores de Computación Asíncronos (Asynchronous Compute Engines o ACE, por sus siglas en inglés).

Por su parte, el Ampere de Nvidia solo tiene un sistema para la gestión de datos y de trabajo, el llamado GigaThread Engine. Aunque Nvidia no dice demasiado sobre cómo funciona realmente, en general, estos componentes trabajan como el jefe repartiendo tareas al resto de las partes del chip.

Fabricación de chips en obleas de 300 mm

Cálculos en paralelos

El siguiente escalón de la estructura es la paralelización, aquí es donde aparecen los famosos Shader Engine (SE) de AMD y los Graphics Processing Clusters (GPC) de Nvidia. Tienen diferentes nombres, pero su función es la misma: trabajar con partes de información más pequeña para acelerar el cálculo global.

En el caso del RDNA 2, cada SE contiene su propio conjunto de unidades de función fija: circuitos que están diseñados para hacer una tarea específica. Son bastante restrictivos, lo contrario que una CPU:

  • Primitive Setup Unit o Unidad de configuración primitiva: prepara los vértices para su procesamiento, así como para generar teselados (patrones en superficies).
  • Rasterizador: convierte el mundo 3D de los triángulos en una cuadrícula 2D de píxeles
  • Render Outputs o Renderización de Salidas (ROP): lee, escribe y mezcla píxeles

En el caso de Ampere, se conocen menos detalles, aunque también se sabe que trabajan con un triángulo por ciclo de reloj y que sus rasterizadores tienen el nombre de Raster Engines.

Además, cada SE del chip Navi 21 tiene 4 bancos de 8 ROP, lo que resulta en un total de 128 unidades de salida de renderizado. En el caso de Nvidia, el GA102 tiene 2 bancos de 8 ROP por GPC, así que el chip completo tiene 112 unidades. Podría parecer que AMD tiene ventaja aquí, porque más ROP significa que más píxeles pueden ser procesados por cada ciclo de reloj. Sin embargo, hay otros factores que afectan como el acceso a la memoria caché y a la memoria local.

A su vez, los SE de AMD divididos en lo que ellos llaman Unidades de Doble Computación (DCU), con el chip Navi 21 que envía 10 DCU por SE. En el caso de Ampere y el GA102, se llaman Clusters de Procesamiento de Textura (TPC), y cada GPU conteniendo 6 TPC.

Como ya sabrás, los gráficos de un juego están compuestos por triángulos y cada unidad básica de computación trabaja a 1 triángulo por ciclo. Puede no parecer mucho, pero recuerda que estos chips trabajan a velocidades que rondan los 2 GHz de velocidad. Aunque las GPU de Nvidia tienen un reloj más bajo que las de AMD, tienen muchos más TPC que SE tienen los chips Navi 21. Así que, para la misma velocidad de reloj, el GA102 debería tener una notable ventaja ya que el chip completo tiene 42 unidades de procesamiento primitivas, mientras que el nuevo RDNA 2 de AMD tiene solo 4. Pero como hay seis TPC por motor rasterizado, el GA102 tiene efectivamente 7 sistemas primitivos completos, a los 4 del Navi 21. Dado que el chip de Nvidia tiene un 75% más de unidades de procesamiento y la velocidad de reloj tampoco es demasiado baja, parece que el chip de Nvidia lleva una clara ventaja en lo que se refiere al manejo de la geometría… Aunque no es probable que ningún juego esté limitado en este área.

El último nivel de la organización de los chips son las Unidades de Computación (Compute Units o CU) en RDNA 2 y los Multiprocesadores de Flujo (Streaming Multiprocessors o SM) en Ampere. Son partes muy pequeñas y complejas de la GPU que contienen todas las unidades altamente programables que se utilizan para procesar los gráficos, calcular y ahora los sombreadores de trazado de rayos. Hasta ahora, no ha habido ningún problema serio en cuanto a la forma en que todo está dispuesto y organizado en las dos GPU… la nomenclatura es diferente, pero sus funciones son muy similares. Y debido a que mucho de lo que hacen está limitado por la programabilidad y la flexibilidad, cualquier ventaja que una tenga sobre la otra, se reduce a un sentido de escala, es decir, cuál tiene la mayor parte de esa cosa en particular.

Pero con los CU y SM, AMD y Nvidia tienen diferentes enfoques de cómo procesar los shaders. En algunas áreas, comparten mucho en común, pero hay muchas otras donde no es así.

El chip GA102 tiene 68 SM habilitados

Primero veremos la estructura de los shaders de Ampere de Nvida, ya que lleva más tiempo en el mercado.

Mientras que la arquitectura Turing supuso un cambio sustancial con respecto a su predecesora, Pascal, perdiendo una pila de unidades y registros FP64, pero ganando núcleos tensores y trazado de rayos, Ampere es en realidad una actualización bastante leve… Sin embargo, en lo que respecta a la división de marketing de Nvidia, el nuevo diseño duplicó con creces el número de núcleos CUDA en cada SM.

En Turing, los multiprocesadores de streaming contienen cuatro particiones (a veces llamadas bloques de procesamiento), donde cada una alberga 16 unidades lógicas INT32 y 16 unidades lógicas FP32. Estos circuitos están diseñados para llevar a cabo operaciones matemáticas muy específicas sobre valores de datos de 32 bits.


En general, las unidades INT manejan números enteros, y las unidades FP trabajaban con números en coma flotante, es decir, decimales. Sin embargo, los SM de Ampere tienen la peculiaridad de ser multiusos.

De esta manera, cada SM puede manejar hasta 128 cálculos FP32 por ciclo o 64 operaciones FP32 y 64 INT32 juntas. En Turing, los SM eran más restrictivos y solo podía realizar 64 operaciones FP32 y 64 INT32 juntas. Así que la nueva GPU tiene, potencialmente, el doble de la salida del FP32 que su predecesora. Para las cargas de trabajo de computación, especialmente en aplicaciones profesionales, esto es un gran paso adelante; pero para los juegos, los beneficios serán mucho más modestos.

Algo que se ha visto reflejado en las pruebas reales. La 3080 rinde más del doble que la GeForce 2080 Ti en cálculos FP32, pero “solo” rinde un 31% más de media en los juegos. Esto sucede porque los juegos no están ejecutando instrucciones FP32 todo el rato. De hecho, alrededor de un 36% de las instrucciones procesadas por una GPU implicaban rutinas INT32. Estos cálculos se ejecutan típicamente para calcular direcciones de memoria, comparaciones entre dos valores y flujo/control lógico.

La Radeon RX 6800 tiene 60 CU habilitados

En cuanto a AMD, cada CU contiene dos conjuntos de una unidad vectorial SIMD32, una unidad escalar SISD, unidades de texturas y una pila de varios cachés. Ha habido algunos cambios en cuanto a los tipos de datos y las operaciones matemáticas asociadas que pueden hacer, pero el cambio más notable para los usuarios es que AMD ahora ofrece aceleración de hardware para rutinas específicas dentro del trazado de rayos.

Esta parte de la CU realiza comprobaciones de intersección de rayos, igual que los núcleos RT en Ampere. Sin embargo, este último también acelera los algoritmos de travesía de BVH, mientras que en el RDNA 2 esto se hace a través de sombreadores de computación usando las unidades SIMD 32.

No importa cuántos núcleos de sombreado tenga uno o cuán altas sean sus velocidades de reloj, ir con circuitos personalizados que están diseñados para hacer un solo trabajo siempre va a ser mejor que un enfoque generalizado. Esta es la razón por la que se inventaron las GPU en primer lugar.

Estructura de cálculos de RDNA 2

Las unidades RA están al lado de los procesadores de textura, porque en realidad son parte de la misma estructura. Mientras que este sistema ofrece una mayor flexibilidad y elimina la necesidad de que partes del encapsulado no hagan nada cuando hay una carga de trabajo de rastreo de rayos, la primera implementación de AMD de esto tiene algunos inconvenientes. El más notable es que los procesadores de texturas solo pueden manejar operaciones que impliquen texturas o intersecciones de rayos en un momento dado.

Dado que los Núcleos RT de Nvidia ahora operan de forma totalmente independiente del resto de los SM, esto parece dar a Ampere una ventaja distintiva, en comparación con RNDA 2, cuando se trata de las estructuras de aceleración y las pruebas de intersección requeridas en el trazado de rayos. Por eso el rendimiento del Ray Tracing en las tarjetas Navi 21 fluctúan tanto de juego en juego, en algunos juegos baja el rendimiento casi un 52% mientras que en otros baja un 17%, porque depende de la implementación. En Nvidia la pérdida de rendimiento por Ray Tracing siempre es mucho más constante y predecible.

Por ejemplo, en Gears 5, la Radeon RX 6800 solo tuvo un impacto del 17% al activar el Ray Tracing, mientras que en Shadow of the Tomb Raider, la pérdida de rendimiento fue del 52%%. En comparación, la RTX 3080 de Nvidia tuvo un promedio de pérdidas de velocidad de cuadro del 23% y 40% respectivamente, en los dos juegos.

Como se ha mencionado anteriormente, las unidades de cálculo en el RDNA 2 ahora soportan más tipos de datos; las inclusiones más notables son los tipos de datos de baja precisión como INT4 e INT8. Estos se usan para operaciones de tensor en algoritmos de aprendizaje de máquinas y mientras que los AMD tienen una arquitectura separada (CDNA) para la IA y los centros de datos, esta actualización es para su uso con DirectML.

Esta API es una reciente adición a la familia DirectX 12 de Microsoft y la combinación de hardware y software proporcionará una mejor aceleración para la eliminación del ruido en los algoritmos de trazado de rayos y de escalado temporal. En el caso de estos últimos, Nvidia tiene su propio, por supuesto, llamado DLSS. Su sistema utiliza los núcleos tensores del SM para realizar parte de los cálculos, pero dado que se puede construir un proceso similar mediante DirectML, podría parecer que estas unidades son algo redundantes. Sin embargo, tanto en Turing como en Ampere, los Núcleos Tensores también manejan todas las operaciones matemáticas que implican formatos de datos FP16.

Con el RDNA 2, esos cálculos se hacen utilizando las unidades de sombreado, usando formatos de datos empaquetados, es decir, cada registro vectorial de 32 bits tiene dos de 16 bits. Así que, ¿cuál es el mejor enfoque? AMD etiqueta sus unidades SIMD32 como procesadores vectoriales, porque emiten una instrucción para múltiples valores de datos.

Memoria

Tener una GPU con miles de unidades lógicas está muy bien, pero debemos ser capaces de “alimentarlas” con datos a una velocidad suficiente. Por eso, ambos diseños tienen una gran cantidad de cachés multiniveles, con grandes cantidades de ancho de banda.

LA arquitectura Ampere ha sufrido algunos cambios notables. Por ejemplo, la cantidad de caché de Nivel 2 ha aumentado en un 50% sobre Turing y los cachés de Nivel 1 de cada SM han doblado su tamaño. Como antes, los cachés de Nivel 1 de Ampere son configurables, en términos de cuánto espacio de caché puede ser asignado para datos, texturas o uso general de computación. Sin embargo, para los shaders y el cálculo asíncrono, la cantidad de caché es fija:

  • 64 kB para datos y texturas
  • 48 kB para la memoria general compartida
  • 16 kB reservados para operaciones específicas

En el lado positivo, la cantidad de ancho de banda disponible también se ha duplicado, ya que la caché puede ahora leer/escribir 128 bytes por reloj (aunque no se sabe si también se ha mejorado la latencia).

El resto del sistema de memoria interna se ha mantenido igual en Ampere, pero cuando nos movemos justo fuera de la GPU, nos espera una agradable sorpresa. Nvidia se asoció con Micron, un fabricante de DRAM, para usar una versión modificada de GDDR6 para su memoria local. Esta sigue siendo esencialmente GDDR6 pero el bus de datos ha sido reemplazado por completo. En lugar de usar un convencional 1 bit por cada pin configurado, donde la señal solo rebota muy rápidamente entre dos voltajes (también conocido como PAM), GDDR6X usa cuatro voltajes. Con este cambio, GDDR6X transfiere efectivamente 2 bits de datos por pin, por ciclo - así que, para la misma velocidad de reloj y el mismo número de pin, el ancho de banda se duplica. La GeForce RTX 3090 cuenta con 24 módulos GDDR6X, funcionando en modo de canal único y con una velocidad de 19 Gbps, lo que da un pico de transferencia de ancho de banda de 936 GB/s.

Eso es un aumento del 52% sobre la GeForce RTX 2080 Ti y no es algo que se pueda descartar a la ligera. Tales cifras de ancho de banda solo se han logrado en el pasado utilizando HBM2, que puede ser costoso de implementar, cuando se compara con GDDR6.

Estructura de memoria de RDNA 2

AMD tomó un camino diferente y en lugar de recurrir a una empresa externa, solo Micron fabrica esta memoria, utilizaron su división de CPU para poner algo nuevo sobre la mesa. El sistema general de memoria en el RDNA 2 no ha cambiado mucho comparado con su predecesor… solo hay dos cambios importantes.

  • 128 MB de caché de Nivel 3: utilizando el diseño SRAM para la caché L3 que se encuentra en su gama EPYC de chips de servidor Zen 2, AMD ha incrustado dos juegos de 64 MB de caché de alta densidad en el chip. Las transacciones de datos son manejadas por 16 conjuntos de interfaces, cada uno de ellos con 64 bytes por ciclo de reloj.
  • Infinity Cache: tiene su propio dominio de reloj, y puede funcionar hasta 1,94 GHz, dando un pico de ancho de banda de transferencia interna de 1986,6 GB/s. Y debido a que no es DRAM externa, las latencias involucradas son excepcionalmente bajas. Tal caché es perfecto para almacenar estructuras de aceleración de rastreo de rayos y como la travesía de BVH implica mucha comprobación de datos.

Entonces, ¿qué diseño es mejor aquí? El uso de GDDR6X le da a la GA102 un enorme ancho de banda a la memoria local, y los caches más grandes ayudarán a reducir el impacto de los fallos de cache (que paralizan el procesamiento de un hilo). El masivo cache de nivel 3 del Navi 21 significa que la DRAM no tiene que ser aprovechada tan a menudo, y aprovecha la capacidad de ejecutar la GPU a mayores velocidades de reloj sin que los datos se pierdan.

La decisión de AMD de quedarse con GDDR6 significa que hay más fuentes de memoria disponibles para terceros, mientras que cualquier compañía que haga una GeForce RTX 3080 o 3090 tendrá que usar Micron. Y mientras que GDDR6 viene en una variedad de densidades de módulos, GDDR6X está actualmente limitada a 8 Gb.

El sistema de caché dentro de RDNA 2 es posiblemente un mejor enfoque que el utilizado en Ampere, ya que el uso de múltiples niveles de SRAM en la matriz siempre proporcionará latencias más bajas, y un mejor rendimiento para una envoltura de potencia dada, que la DRAM externa, independientemente del ancho de banda de esta última.


Nvidia RTX IO

Una característica importante de Ampere es que cuenta con el RTX IO, un sistema de manejo de datos que permite a la GPU acceder directamente a la unidad de almacenamiento, copiar los datos que necesita y luego descomprimirlos utilizando los núcleos de CUDA. Por el momento, el sistema no puede ser usado en ningún juego, porque Nvidia está usando el API DirectStorage (otra mejora de DirectX12) para controlarlo y aún no está listo para su lanzamiento público. Sin embargo, Nvidia anuncia que este sistema tendrá un rendimiento “100 veces más rendimiento en datos” y “20 veces menos utilización de la CPU” en dichas tareas.

Salida de vídeo

Ambas arquitecturas proporcionan salidas de pantalla a través de HDMI 2.1 y DisplayPort 1.4a. Con 48 Gbps, el HDMI 2.1 ofrece mayor ancho de banda que los 32,4 Gbps del DP 1.4a. Recuerda que la última versión de DP es la 2.0 que alcanza los 80 Gbps.

Aun así, ambas salidas son capaces de funcionar a 4K a 240 Hz con HDR y a 8K a 60 Hz. Esto se logra usando submuestreo de croma 4:2:0 o DSC 1.2a que son unos algoritmos de compresión de la señal de vídeo, que proporcionan una reducción significativa del tamaño, sin demasiada pérdida de calidad visual.

Ampere y RDNA 2 también soportan sistemas de velocidad de refresco variable (FreeSync para AMD, G-Sync para Nvidia) y cuando se trata de la codificación y decodificación de señales de vídeo, tampoco hay diferencias significativas. Encontrarás soporte para la decodificación 8K AV1, 4K H.264 y 8K H.265, aunque todavía no se ha examinado a fondo el rendimiento exacto de ambos en tales situaciones.