Seguiste los rumores e ignoraste el bombo; tu esperaste comentarios y examinó todas las métricas. Finalmente, invirtió su dinero y se fue con una de las últimas tarjetas gráficas de AMD o Nvidia. Entre ellos, un gran procesador de gráficos lleno de miles de millones de transistores funciona a velocidades de reloj impensables hace una década.

Está realmente satisfecho con su compra y los juegos no se vieron ni se jugaron mejor. Sin embargo, es posible que se pregunte qué impulsa exactamente su nueva Radeon. RX 5700 y que diferente en un chip GeForce RTX.

Bienvenido a la comparación de arquitectura y características de AMD y Nvidia: Navi vs las últimas GPU de Turing.

Anatomía moderna de la GPU

Antes de comenzar a analizar las estructuras y sistemas de chips comunes, echemos un vistazo a la forma básica que siguen todas las GPU modernas. En su mayor parte, estos procesadores son simplemente calculadoras de punto flotante (FP); en otras palabras, realizan operaciones matemáticas con valores decimales / fraccionarios. Entonces, al menos una GPU debe tener una unidad lógica dedicada a estas tareas, y estas suelen ser FP ALU (unidades lógicas aritméticas de coma flotante) o FPU para abreviar. No todos los cálculos que hacen las GPU están en valores de datos FP, por lo que también habrá una ALU para el entero (entero) puede ser la misma unidad que maneja operaciones matemáticas o ambos tipos de datos.




Ahora, estas unidades lógicas necesitarán algo para organizarlas decodificándolas y organizándolas para mantenerlas ocupadas, y eso tendrá la forma de al menos un grupo de unidades lógicas especial. A diferencia de las ALU, no pueden ser programadas por el usuario final; en cambio, el proveedor de hardware se asegurará de que este proceso sea completamente administrado por la GPU y sus controladores.




También debe haber algún tipo de estructura de memoria para almacenar estas instrucciones y los datos que se deben procesar. En su nivel más simple, tendrá dos formas: cache y un punto memoria local. El primero estará integrado dentro de la GPU y VERGÜENZA. Este tipo de memoria es rápido, pero ocupa relativamente gran parte del diseño del procesador. Memoria local DRAMAEs un poco más lento que SRAM y normalmente no se coloca en la GPU. Memoria local en la mayoría de las tarjetas gráficas que vemos hoy GDDR Módulos DRAM.

Finalmente, incluye tareas de configuración adicionales como crear gráficos en 3D, crear triángulos a partir de esquinas, rasterizar un marco en 3D, muestrear y mezclar texturas. Al igual que las unidades de instrucción y control, también función constante en naturaleza. Lo que hacen y cómo funcionan es completamente transparente para los usuarios que programan y usan la GPU.




Juntemos esto y creemos una GPU:




El bloque naranja es la unidad que procesa texturas usando lo que se llama unidades de mapeo de texturas (TMU'lar) - TA direccionamiento de textura volumen: crea ubicaciones de memoria para el uso de la memoria caché y local, y TF no traes textura recopila los valores de textura de la memoria y los une. Hoy en día, las TMU son prácticamente iguales en todos los proveedores porque pueden manejar, muestrear y mezclar múltiples valores de textura por ciclo de reloj de GPU.




El bloque de abajo escribe los valores de color de los píxeles en el marco, los muestrea (PO) y los mezcla (PB); este bloque también realiza operaciones que se utilizan cuando se aplica suavizado. El nombre de este bloque: renderizar unidad de salida or crear backend (ROP / RB para abreviar). Al igual que el TMU, ahora se están volviendo bastante estándar, cada uno manejando cómodamente unos pocos píxeles por ciclo de reloj.

Sin embargo, nuestra GPU básica habría sido terrible incluso para los estándares de hace 13 años. ¿Por qué?

Solo hay una FPU, TMU y ROP. En 2006, los procesadores gráficos de Nvidia como la GeForce 8800 GTX tenían 128, 32 y 24 respectivamente. Así que comencemos a hacer algo al respecto ...




Como cualquier buen fabricante de procesadores, actualizamos la GPU agregando algunas unidades más. Esto significa que el chip puede procesar más instrucciones al mismo tiempo. Para ayudar con esto, hemos agregado más cachés, pero esta vez junto a las unidades lógicas. Cuanto más cerca esté la caché de la estructura de una calculadora, más rápido se puede inicializar en las transacciones que se le asignan.

El problema con nuestro nuevo diseño es que solo hay un controlador disponible para manejar nuestras ALU adicionales. Sería mejor si tuviéramos más bloques de unidades, todos administrados por sus propios controladores separados, ya que esto significa que podemos realizar operaciones muy diferentes al mismo tiempo.

¡Ahora esto es más! Bloques de ALU separados empaquetados con sus propias TMU y ROP y respaldados por porciones de caché rápidas y deliciosamente sabrosas. Sigue siendo uno de todo, pero la estructura básica no está a un millón de millas del procesador gráfico que vemos en las computadoras y consolas de hoy.

Navi ve Turing: Godzilla GPU'ları

Ahora que hemos definido el diseño básico de un chip gráfico, aunque ligeramente ampliado y procesado para resaltar varias estructuras, Navi vs. Comencemos nuestra comparación de Turing.

A la izquierda está el último procesador de AMD. El diseño general del chip se llama Navi (algunos se llaman Navi 10) y la arquitectura gráfica se llama RDNA. Junto a él, a la derecha, se encuentra el procesador TU102 de tamaño completo de Nvidia con la última arquitectura Turing. Es importante tener en cuenta que estas imágenes no están escaladas: el área del troquel Navi es de 251 mm2, mientras que TU102 es de 752 mm2. El procesador Nvidia es grande, ¡pero no 8 veces más grande que el que ofrece AMD!

Ambos colosal el número de transistores (10,3 frente a 18,6 mil millones), pero TU102 tiene un promedio de ~ 25 millones de transistores por mm cuadrado en comparación con los 41 millones de Navi por mm cuadrado.

Esto se debe a que, si bien ambos chips son fabricados por TSMC, se producen en diferentes nodos de proceso: Turing de Nvidia está en la línea de producción madura de 12 nm, mientras que Navi de AMD se produce en el nodo más nuevo de 7 nm.

Solo mirar imágenes de los moldes no nos dice mucho sobre arquitecturas, así que echemos un vistazo a los diagramas de bloques de GPU producidos por ambas compañías.

Los diagramas no son una representación 100% realista de los diseños reales, pero si los gira 90 grados, se pueden definir los distintos bloques y la franja central que aparecen en ambos. Para empezar, podemos ver que las dos GPU tienen una estructura general como la nuestra (¡aunque más que cualquier otra cosa!).

Ambos diseños siguen un enfoque en capas de cómo todo está organizado y agrupado: para comenzar a usar Navi, la GPU consta de 2 bloques que AMD está buscando. Motores de sombreado (SE), cada uno de ellos se llama 2 bloques asincrónico Motores de computación (AS). Cada uno de estos contiene 5 bloques en el título. Procesadores de grupo de trabajo (WGP), que consta de 2 Unidades de procesamiento de información (Öze).

Los nombres y números son diferentes para el diseño de Turing, pero la jerarquía es muy similar: 6 Clústeres de procesamiento de gráficos (GPC), 6 cada uno Clústeres de procesamiento de texturas (TPC), 2 cada uno Stream multiprocesador (SM) bloques.

Si ve un procesador de gráficos como una gran fábrica donde diferentes departamentos producen diferentes productos utilizando las mismas materias primas, esta organización comienza a tener sentido. El CEO de la fábrica envía todos los detalles operativos a la empresa y luego los divide en varias tareas y cargas de trabajo. Tener más de uno independiente La productividad de la mano de obra se incrementó en la fábrica. No es diferente para las GPU y aquí está la palabra clave mágica sincronización.

Soldado, al frente y al centro: sincronización y envío

Como miramos Ejercicios de creación de juegos en 3DHemos visto que el procesador de gráficos no es más que una calculadora súper rápida que realiza una serie de operaciones matemáticas en millones de piezas de datos. Navi y Turing se clasifican de la siguiente manera: Comando único Datos múltiples (SIMD), pero una mejor explicación Single Way Multi Hilo (Sentido).

Un juego 3D moderno produce cientos de hilos, a veces miles, ya que la cantidad de vértices y píxeles para renderizar es enorme. Para asegurarse de que todo se haga en unos pocos microsegundos, es importante tener tantas unidades lógicas como sea posible sin detener todo porque los datos requeridos no están en el lugar correcto o no hay suficiente espacio de recursos para trabajar en su interior.

Cuando echamos un vistazo a cómo funciona la creación de juegos en 3D, vimos que un procesador de gráficos no es más que una calculadora realmente rápida, y realizamos varias operaciones matemáticas en millones de datos. Navi y Turing se clasifican como procesadores Single Command Multiple Data (SIMD), pero una mejor explicación sería Single Command Multiple Threads (SIMT).

Navi y Turing funcionan de manera similar, por lo que una unidad central toma todos los hilos y luego comienza a programarlos y transmitirlos. En el chip AMD, esta función Procesador de comandos de gráficos; Nvidia'da, GigaThread Motoru. Los hilos están organizados de modo que aquellos con las mismas instrucciones se agrupen en una colección de 32 grupos.

AMD esta colección olamientras que Nvidia esta curvatura. Para Navi, una Unidad de Computación puede manejar 2 ondas (o una onda de 64 subprocesos, pero este proceso toma el doble de tiempo) y en Turing un Multiprocesador de Flujo se ejecuta con 4 warps. En ambos diseños, la onda / deformación es independiente, lo que significa que los demás no necesitan terminarla antes de comenzar.

Hasta entonces, no es muy diferente entre Navi y Turing; ambos fueron diseñados para manejar una gran cantidad de subprocesos para crear y calcular cargas de trabajo. Necesitamos ver qué procesadores son estos subprocesos para ver dónde se separan los dos gigantes de la GPU en diseño.

Diferencia ejecutiva - RDNA y CUDA

Si bien la mayor parte de la terminología utilizada parece la misma, AMD y Nvidia adoptan un enfoque bastante diferente para las unidades de sombreado combinadas. Unidades de ejecución de Nvidia (MILAGROS semillas) digital en la naturaleza: esto significa que una unidad realiza una operación matemática en un componente de datos; A diferencia de las unidades AMD (Procesadores de flujo) trabajar en vectores - una operación en múltiples componentes de datos. Solo hay una unidad específica para operaciones escalares.

Antes de echar un vistazo más de cerca a las unidades de ejecución, examinemos las propias modificaciones de AMD. Durante 7 años, las tarjetas gráficas Radeon siguieron una arquitectura llamada Graphics Core Next (GCN). Cada nuevo chip revisaba varios aspectos del diseño, pero todos eran básicamente iguales.

AMD presentó una breve historia de la arquitectura de la GPU:

GCN fue una evolución de TeraScale, un diseño que permite procesar grandes olas simultáneamente. Lo principal de TeraScale era que no era muy fácil contra los programadores y necesitaba rutinas muy específicas para obtener lo mejor. GCN ha solucionado esto y ha proporcionado una plataforma mucho más accesible.

Las CU en Navi se han revisado significativamente desde GCN como parte del proceso de mejora de AMD. Cada CU contiene dos conjuntos:

  • 32 SP (ALU vectoriales IEE754 FP32 e INT32)
  • 1 SFU
  • 1 INT32 escalas ALU
  • 1 unidad de distribución y distribución

Además de estos, cada CU contiene 4 unidades de tejido. Hay otras unidades para realizar operaciones de lectura / escritura de datos desde el caché, pero no se muestran en la imagen a continuación:

En comparación con GCN, la configuración de una CU RDNA puede no verse muy diferente, pero todo lo importante aquí está organizado y organizado de esta manera. Para empezar, cada juego de 32 SP tiene su propia unidad de instrucción dedicada, GCN solo tenía un programa para 4 juegos de 16 SP.

Este es un cambio importante, lo que significa que se puede entregar una ola de 32 subprocesos por ciclo de reloj a cada conjunto de SP. La arquitectura RDNA también permite que las unidades vectoriales procesen ondas de 16 subprocesos al doble de la velocidad y ondas de 64 subprocesos a la mitad, por lo que el código escrito para todas las tarjetas gráficas Radeon anteriores sigue siendo compatible.

Estos cambios serán muy populares para los desarrolladores de juegos.

Para operaciones escalares, ahora hay dos unidades que pueden manejarlas; la única reducción en el número de componentes es en forma de SFU - estos son funcion especial unidadesrealiza operaciones matemáticas muy específicas, por ejemplo. trigonométrica (seno, tangente), recíproca (1 dividido por un número) y raíces cuadradas. RDNA tiene menos de estos que GCN, pero ahora pueden operar en conjuntos de datos dos veces más grandes que antes.

Estos cambios serán muy populares para los desarrolladores de juegos. Había mucho rendimiento potencial en las tarjetas gráficas Radeon más antiguas, pero era muy difícil de lograr. Ahora AMD ha dado un gran paso hacia la reducción de la latencia en el procesamiento de instrucciones y la retención de funciones para garantizar la compatibilidad con versiones anteriores de todos los programas diseñados para la arquitectura GCN.

¿Qué pasa con los gráficos profesionales o el mercado de la informática? ¿Estos cambios también son beneficiosos para ellos?

La respuesta corta es sí (probablemente). La versión actual del chip Navi que se encuentra en el similar Radeon RX 5700 XT tiene menos procesadores de flujo que el diseño Vega anterior, mientras que nos desempeñamos mejor la generación anterior de Radeon RX Vega 56 es bastante fácil:

Parte de esta ganancia de rendimiento vendrá de la velocidad de reloj más alta del RX 5700 XT que del RX Vega 56 (por lo que puede escribir más píxeles por segundo en la memoria local), pero cae hasta un 15% en el rendimiento de punto flotante y entero más alto; sin embargo, encontramos que el chip Navi funcionó un 18% mejor que el Vega.

Los científicos que ejecutan programas de renderizado profesional y algoritmos complejos no están llenos de algunas rondas de Battlefield V en su trabajo (p. Ej. podría ser...) solo si las operaciones escalares, vectoriales y matriciales realizadas en un motor de juego se procesan más rápido Embarcacion convertirlo en el mercado de la informática. Actualmente, no sabemos cuáles son los planes de AMD para el mercado profesional: pueden ir bien con la arquitectura Vega y ayudar a mejorar el diseño y la fabricación, pero dados los avances en Navi, la empresa traslada todo a la nueva arquitectura.

El diseño de la GPU de Nvidia ha experimentado una evolución similar desde 2006, cuando lanzaron la serie GeForce 8, aunque con cambios menos radicales que AMD. Esta GPU creó la primera arquitectura Tesla en utilizar un primer enfoque de sombreado en la arquitectura de ejecución. A continuación, podemos ver los cambios en los bloques SM del sucesor de Tesla (Fermi) al predecesor de Turing (Volta):

Como se mencionó anteriormente en este artículo, los núcleos CUDA digital. Pueden ejecutar una instrucción flotante y una instrucción entera por ciclo de reloj en un componente de datos (tenga en cuenta, sin embargo, que la instrucción en sí puede tomar varios ciclos de reloj para ser procesada), pero las unidades de tiempo las organizan en grupos, pueden realizar operaciones vectoriales a un programador. El cambio más significativo a lo largo de los años incluye no solo ser más unidades, sino cómo se organizan y segmentan.

En el diseño de Kepler, el chip completo tenía 5 GPC, cada uno con tres bloques SM; Cuando surgió Pascal, las GPC se dividieron en particiones separadas (TPC) con dos SM por TPC. Como con el diseño de Navi. esta fragmentación es importante ya que permite que la GPU general se utilice de la forma más completa posible; Se pueden procesar varios conjuntos de instrucciones independientes en paralelo, lo que aumenta el sombreado y el rendimiento informático del procesador.

Echemos un vistazo al equivalente de Turing a RDNA Computing Unit:

Un SM contiene 4 bloques de transacciones, cada uno de los cuales contiene:

  • 1 unidad de programación y envío de instrucciones
  • 16 balanzas IEE754 FP32 ALU
  • 16 escalas INT32 ALU
  • 2 colores de tensor
  • 4 SFU
  • 4 Carga / Almacenamiento (realizando operaciones de lectura / escritura de caché)

También hay 2 unidades FP64 por SM, pero Nvidia ya no las muestra en diagramas de bloques y cada SM tiene 4 unidades de textura (incluye direccionamiento de texturas y sistemas de filtrado de texturas) y 1 núcleo RT (Ray Tracing).

Las ALU FP32 e INT32 pueden funcionar simultáneamente y en paralelo. Esta es una característica importante porque los motores de renderizado 3D a menudo requieren cálculos de punto flotante, pero hay un número razonable de operaciones enteras simples (por ejemplo, cálculos de direcciones de datos) por realizar.

Los núcleos tensoriales son ALU especiales que realizan operaciones matriciales. Las matrices son matrices de datos 'cuadradas' y los núcleos tensores se ejecutan en una matriz de 4 x 4. El FP16 está diseñado para procesar componentes de datos INT8 o INT4 de modo que las operaciones de flotación ocurran en 64 FMA (fusionado multiplicar después de agregar) en un ciclo de reloj. Este tipo de cálculo se llama Redes neuronales e inferencia: no es exactamente común en los juegos 3D, pero los me gusta de Facebook lo usan mucho en automóviles con algoritmos de análisis de redes sociales o sistemas de conducción autónoma. Navi también puede realizar cálculos matriciales, pero requiere una gran cantidad de SP para ello; En el sistema de Turing, las operaciones matriciales se pueden realizar mientras que los núcleos CUDA realizan otras operaciones matemáticas.

RT Core es otra unidad especial exclusiva de la arquitectura de Turing que realiza algoritmos matemáticos muy específicos utilizados para el sistema de trazado de rayos de Nvidia. Un análisis completo de esto está más allá del alcance de este artículo, pero RT Core son dos sistemas que funcionan por separado del resto del SM, por lo que mientras RT Core está ocupado haciendo cálculos, puede funcionar en sombreadores de picos o píxeles. para el trazado de rayos.

En el nivel básico, Navi y Turing tienen unidades de ejecución que ofrecen un conjunto de características bastante similar (un requisito que proviene de cumplir con los requisitos de Direct3D, OpenGL, etc.).

En el nivel básico, Navi y Turing tienen unidades de ejecución que ofrecen un conjunto de características bastante similar (un requisito que proviene de cumplir con los requisitos de Direct3D, OpenGL, etc.), pero adoptan un enfoque muy diferente de cómo son esas características. terminado. Cuando se trata de qué diseño es mejor, se trata de cómo se usan: FP32, un programa que produce cálculos vectoriales y una gran cantidad de subprocesos que realiza poco, preferiría Navi, mientras que un programa con una variedad de cálculos de enteros, puntos flotantes, escalares y vectoriales le dará la flexibilidad de Turing. prefiere, etc.

Jerarquía de memoria

Las GPU modernas están diseñadas para realizar una serie de operaciones en procesadores de flujo, es decir, en cada elemento de un flujo de datos. Esto los hace menos flexibles que una CPU de propósito general y también requiere optimizar la jerarquía de memoria del chip para recibir datos e instrucciones a las ALU lo más rápido posible y en tantos flujos como sea posible. Esto significa que las GPU tendrán menos caché que la CPU, ya que la mayor parte del chip debe dedicarse a la cantidad de caché, no al acceso al caché.

Tanto AMD como Nvidia recurren al uso de múltiples cachés dentro de los chips, así que echemos un vistazo a lo que incluye Navi primero.

Comenzando desde el nivel más bajo en la jerarquía, dos bloques de procesadores de flujo usan un total de registros vectoriales de propósito general de 256 libras (generalmente archivo de registro) Era la misma cantidad que Vega pero entre 4 bloques SP; Quedarse sin registros al intentar procesar una gran cantidad de subprocesos realmente perjudica el rendimiento, por lo que definitivamente es algo "bueno". AMD también ha aumentado considerablemente el archivo de grabación escalar. Cuando antes solo eran 4 kiB, ahora son 32 kilos por unidad escalar.

Las dos unidades de cómputo comparten una caché L0 de 32 libras y una caché de datos escalares de 16 libras, pero cada CU recibe su propia caché L0 vectorial de 32 libras; La conexión de toda esta memoria a las ALU es un recurso compartido de datos locales de 128 libras.

En Navi, dos motores informáticos crean un procesador de grupo de trabajo y cinco de ellos forman el motor informático asíncrono (ACE). Cada ACE tiene acceso a su propio caché L1 de 128 libras, y toda la GPU es compatible con 4 cachés MiB L2 que se conectan a cachés L1 y otras partes del procesador.

Como el sistema se utiliza estrictamente para manejar 16 controladores de memoria GDDR6, es una forma de arquitectura de conectividad Infinity Fabric patentada por AMD. Para maximizar el ancho de banda de la memoria, Navi también utiliza compresión de color sin pérdidas entre L1, L2 y la memoria GDDR6 nativa.

Nuevamente, todo esto es particularmente bienvenido en comparación con los chips AMD anteriores que no tenían suficiente caché de bajo nivel para la cantidad de unidades de sombreado que contienen. En resumen, más caché equivale a más ancho de banda interno, instrucciones menos lentas (porque tienen que recuperar más datos de la memoria), etc. Y eso solo equivale a un mejor rendimiento.

En la jerarquía de Turing, hay que decir que Nvidia es tímida cuando se trata de proporcionar un conocimiento profundo en esta área. Anteriormente en este artículo, vimos cada SM dividido en 4 bloques de transacciones: cada uno tiene un archivo de registro de 64 libras más pequeño que el que se encuentra en Navi, pero tenga en cuenta que las ALU de Turing son escalares, no vectores. , unidades.

A continuación, se pueden utilizar 96 kb de memoria compartida para cada VM como 64 kb de caché de datos L1 y 32 kb de caché de tejido o espacio de registro adicional. En el 'modo de cálculo', la memoria compartida se puede dividir en diferentes particiones, como 32 kb de memoria compartida y 64 kiB de caché L1, pero siempre se hace como 64 + 32 divisiones.

La falta de detalles sobre el sistema de memoria Turning nos hizo querer más, por lo que recurrimos a un equipo de investigación de GPU que trabaja en Citadel Enterprise Americas. Recientemente, publicaron dos artículos. Hora ve Turing arquitecturas; La imagen de arriba es la fragmentación de la jerarquía de memoria en el chip TU104 (caché L2 completo TU102 sport 6144 kiB).

El equipo confirmó que el rendimiento de la caché L1 era de 64 bits por ciclo y afirmó que, al probar la eficiencia de la caché L1 de Turing, era la mejor de todas las GPU de Nvidia. Esto está a la par con Navi, aunque el chip de AMD tiene una tasa de lectura más alta para el almacenamiento de datos local, pero una tasa más baja para los cachés de instrucción / fijos.

Ambas GPU usan GDDR6 para memoria local, esta es la última versión de Graphics DDR SDRAM, y ambas usan conexiones de 32 bits a módulos de memoria, por lo que Radeon RX 5700 XT Tiene 256 chips de memoria y proporciona un ancho de banda máximo de 256 GiB / sy 8 GiB de espacio. uno GeForce RTX 2080 Ti Con el chip TU102, funciona con 11 de estos módulos para un ancho de banda de 352 GiB / sy 11 GiB de almacenamiento.

La documentación de AMD puede parecer confusa a veces: en el primer diagrama de bloques, vemos que Navi muestra cuatro controladores de memoria de 64 bits, mientras que una imagen posterior muestra 16 controladores. Considerando Samsung solo ofrece GDDR6 de 32 bits Parece que la segunda imagen muestra cuántas conexiones hay entre el sistema Infinity Fabric y los controladores de memoria. Probablemente solo haya 4 controladores de memoria y cada uno use dos módulos.

En general, no parece haber una gran diferencia entre Navi y Turing cuando se trata de sus cachés y memoria local. Hay un poco más de que Navi se acerque al lado de la ejecución de las cosas con sus cachés de instrucción / constante y L1 más grandes, pero ambos están llenos de cosas, ambos usan compresión de color cuando es posible, y ambos tienen muchos patrones de GPU personalizados en el acceso a la memoria y utilizado para maximizar el ancho de banda.

Triángulos, texturas y píxeles

Hace quince años, los fabricantes de GPU hicieron mucho sobre cuántos triángulos pueden manejar sus chips, la cantidad de elementos de textura que se pueden filtrar por ciclo y la capacidad de las unidades de salida de procesamiento (ROP). Estos aspectos siguen siendo importantes hoy en día, pero el enfoque está mucho más en el lado de la ejecución, ya que las tecnologías de renderizado 3D requieren más rendimiento informático que nunca.

Sin embargo, solo para señalar que no hay una diferencia inmediatamente notable entre Navi y Turing en estas áreas, vale la pena explorar las unidades de textura y los ROP. En ambas arquitecturas, las unidades de textura pueden manejar y recuperar 4 elementos de textura, filtrarlos desconocidos en un solo elemento y almacenarlos en caché todos en un ciclo de reloj (ignorando los ciclos de reloj adicionales que se toman para recuperar datos de la memoria local).

La disposición de ROP / RB es ligeramente diferente entre Navi y Turing, pero no demasiado: el chip AMD tiene 4 RB por ACE y cada uno puede generar 4 píxeles combinados por ciclo de reloj; En Turing, cada GPC tiene dos RB, cada uno con 8 píxeles por hora. El recuento de ROP de la GPU es realmente una medida de esta velocidad de salida de píxeles, por lo que un chip Navi completo produce 64 píxeles por hora y TU102 96 completo (pero recuerde que este es un chip más grande).

Hay menos información en el lado del triángulo de las cosas. Lo que sí sabemos es que Navi todavía ofrece un máximo de 4 primitivas por ciclo de reloj (1 por ACE), pero ya no hay nada sobre si AMD ha solucionado el problema con este problema. Sombreadores primitivos. Esta fue una característica muy promocionada de Vega y permitió a los programadores tener mucho más control sobre las primitivas para que el rendimiento de las primitivas se pueda incrementar en 4 factores. funcionalidad eliminada de los controladores El producto ha estado inactivo poco después de su lanzamiento y desde entonces.

Mientras espera más información sobre Navi, no sería prudente especular más. Turing también maneja 1 primitiva por hora por GPC (es decir, hasta 6 para la GPU TU102 completa) en motores ráster, pero también Sombreadores de mallaOfrece la misma funcionalidad que Primitive Shaders de AMD; Direct3D no es un conjunto de funciones de OpenGL o Vulkan, pero se puede utilizar a través de extensiones de API.

Esto parece darle a Turing una ventaja sobre Navi en términos de manejo de triángulos y primitivas, pero actualmente no hay suficiente información precisa en el dominio público.

No todo sobre las unidades de ejecución

Hay otros aspectos de Navi y Turing que vale la pena comparar. Para empezar, ambas GPU cuentan con motores de visualización y medios muy avanzados. El primero procesa la salida al monitor, el segundo codifica y decodifica las secuencias de video.

Como era de esperar de un nuevo diseño de GPU 2019, el motor de visualización de Navi ofrece resoluciones muy altas con frecuencias de actualización altas y ofrece compatibilidad con HDR. Ver compresión de flujo (DSC) es un algoritmo de compresión con pérdida rápida que permite la transmisión de resoluciones similares a 4K + a frecuencias de actualización superiores a 60 Hz a través de una conexión DisplayPort 1.4; Afortunadamente, el deterioro de la calidad de la imagen es muy pequeño hasta el punto en que considera que el DSC casi no tiene pérdidas.

Turing también admite DisplayPort con conexiones DSC, pero la combinación admitida de alta resolución y frecuencia de actualización es ligeramente mejor que Navi: 4K HDR a 144 Hz; el resto es igual.

El motor multimedia de Navi es tan moderno como el motor de visualización y Codificación de video avanzada (H.264) y Codificación de video de alta eficiencia (H.265), nuevamente a altas resoluciones y altas tasas de bits.

El motor de video de Turing es aproximadamente el mismo que el de Navi, pero la compatibilidad con la codificación 8K30 HDR puede cambiar la balanza a favor de Turing para algunas personas.

Hay otros aspectos para comparar (por ejemplo, la interfaz PCI Express 4.0 de Navi o NV Link de Turing), pero independientemente de cómo se viste y se comercializa, son piezas realmente pequeñas de la arquitectura general. Esto se debe a que para la gran mayoría de usuarios potenciales estas características únicas no serán importantes.

Comparación de igual a igual

Este artículo es una observación del diseño arquitectónico, las características y la funcionalidad, pero tener una comparación directa del rendimiento sería una buena manera de completar dicho análisis. Sin embargo, emparejar el chip Navi en una Radeon RX 5700 XT en una GeForce RTX 2080 Ti con el procesador Turing TU102 en una GeForce RTX 2080 Ti no sería claramente justo considerando que esta última es casi el doble de la cantidad de unidades de sombreado combinadas. Sin embargo, existe una versión del chip Turing que se puede usar para hacer una comparación, y esta es la que se encuentra en la GeForce RTX 2070 Super.

  Radeon RX 5700 XT GeForce RTX 2070 Super
GPU | Arquitectónico Navi 10 | ADNr TU104 | Turing
proceso TSMC de 7 nm TSMC de 12 nm
Área del molde (mm2) 251 545
Transistores (miles de millones) 10.3 13.6
Perfil de bloque 2 SE | 4 ACE | 40 PB 5 GPC | 20 TPC | 40 metros cuadrados
Núcleos de sombreado combinados 2560 SP 2560 MILAGROS
TMU 160 160
ROPS 64 64
Tiempo básico 1605 MHz 1605 MHz
Reloj de juego 1755 MHz n / A
Hora de impulso 1905 MHz 1770 MHz
Memoria GDDR6 de 8 GB y 256 bits GDDR6 de 8 GB y 256 bits
Ancho de banda de memoria 448 GBps 448 GBps
Potencia de diseño térmico (TDP) 225 vatios 215 W.

Vale la pena señalar que el RTX 2070 Super no es un chip TU104 'completo' (uno de los GPC está desactivado), por lo que todos estos transistores 13.6 están inactivos, lo que significa que los chips son aproximadamente los mismos en términos de la cantidad de transistores. A primera vista, las dos GPU se ven muy similares, especialmente si considera solo unidades de sombreado, TMU, ROP y sistemas de memoria principal.

En el procesador Nvida, un SM puede procesar 32 warps simultáneos, y con cada warp de 32 hilos, una GeForce RTX 2070 Super completamente cargada puede funcionar en 40,960 hilos en todo el chip; Para Navi, una CU SIMD32 puede recibir 16 ondas por ALU y cada onda tiene 32 hilos. Por lo tanto, la Radeon RX 5700 XT también se puede empaquetar hasta 40,960 subprocesos. Puede parecer que esto los hace exactamente aquí, pero dada la forma diferente en que se organizan los CU / SM y la ventaja de Nvidia con el procesamiento simultáneo de INT y FP, el resultado dependerá en gran medida del código que se esté ejecutando.

¿Qué efecto tendrá esto en el rendimiento de varios juegos, ya que el código de un motor 3D favorecerá una compilación sobre otra, dependiendo del tipo de instrucciones que se envíen habitualmente a la GPU? Esta, probé dos tarjetas gráficas:

Todos los juegos utilizados en la prueba se programaron para la arquitectura GCN de AMD directamente para PC equipadas con Radeon o mediante GPU GCN que se encuentran en PlayStation 4 o Xbox One. Es posible que algunos de los lanzados recientemente estén preparados para los cambios de RDNA, pero es más probable que las diferencias en los resultados de referencia se deban a los motores de renderizado y la forma en que se procesan las instrucciones y los datos.

Entonces, ¿qué significa todo esto? ¿Es una arquitectura realmente mejor que otra? Turing ciertamente ofrece más capacidad que Navi gracias a Tensor y RT Cores, pero este último definitivamente compite en términos de rendimiento de renderizado 3D. Las diferencias observadas en los 12 ejemplos de juegos no son lo suficientemente precisas como para emitir un juicio final.

Y esta es una buena noticia para nosotros.

Ultimas palabras

Planes Navi de AMD fue anunciado Tenían como objetivo el lanzamiento de 2018 en 2016 y, aunque no dijeron mucho. Cuando esa fecha viene y se va mapa vial cambiado sin embargo, estaba claro que Navi se construiría en un nodo de proceso de 7 nm y el diseño se centraría en mejorar el rendimiento.

Este fue definitivamente el caso y, como hemos visto en este artículo, AMD ha realizado cambios arquitectónicos para permitir que Nvidia compita con sus ofertas equivalentes. El nuevo diseño beneficia a más que solo a los usuarios de PC, ya que sabemos que Sony y Microsoft utilizarán una variante del chip en el próximo período. Playstation 5 ve sonraki Xbox.

Si vuelve al principio de este artículo y observa de nuevo el diseño estructural de los motores Shader, el tamaño total del troquel y la cantidad de transistores, es evidente que hay posibilidades de que un chip Navi grande alcance su punto máximo. última tarjeta gráfica; AMD prácticamente ha confirmado que esto debería ser parte de sus planes actuales y su objetivo es mejorar la arquitectura y el proceso de fabricación durante los próximos dos años.

Pero, ¿cuáles son los planes para Nvidia, Turing y su sucesor? Sorprendentemente, la empresa ha confirmado poco. En 2014, Nvidia Hoja de ruta de GPU actualizada Planificar la arquitectura de Pascal para el lanzamiento de 2016 (y lograr ese objetivo). En 2017, Tesla anunció el V100Fue este diseño el que sacó a la luz a Turing en 2018, utilizando la arquitectura Volta.

Desde entonces, las cosas han estado bastante tranquilas y tuvimos que confiar en rumores y fragmentos de noticias, que a menudo dicen lo mismo: la próxima arquitectura de Nvidia se llamará Ampere, Fabricado por Samsung Utiliza el nodo de proceso de 7 nm y está previsto para 2020. Aparte de eso, no hay nada más para continuar. Es poco probable que el nuevo chip rompa la tradición al centrarse en unidades de ejecución escalar, o es poco probable que descarte aspectos como Tensor Cores, ya que esto provocará importantes problemas de compatibilidad con versiones anteriores.

Aún así, podemos hacer algunas predicciones razonables sobre cómo será la próxima GPU de Nvidia. La empresa ha invertido una cantidad significativa de tiempo y dinero. trazado de rayosy su soporte solo en juegos incrementar; Por lo tanto, podemos esperar ver una mejora en el núcleo de RT en términos de capacidades o números por SM. Si uno Nodo de proceso de 7 nm Si es cierto, Nvidia probablemente apuntará a la reducción de energía en lugar del aumento directo de la velocidad del reloj para que puedan aumentar la cantidad de GPC. También es posible omitir 7 nm e iniciar Nvidia. Directo por 5 nm Para obtener una ventaja sobre AMD.

Aparentemente AMD y Nvidia, tarjeta gráfica discreta Mercado de Intel como sabemos que están planeando volver a ingresar a esta industria, Llame 20 años. Este nuevo producto (actualmente Xe's) Podrá competir al mismo nivel que Navi y Turing.

Mientras tanto, Intel ha sobrevivido al mercado de las GPU durante estas dos décadas creando gráficos integrados para sus CPU. La última GPU de Intel Gen 11Es similar a la arquitectura de AMD, ya que utiliza ALU vectoriales que pueden manejar datos FP32 e INT32, pero no sabemos si las nuevas tarjetas gráficas serán una evolución directa de este diseño.

Lo que es seguro es que los próximos años serán muy interesantes ya que tres gigantes de las estructuras de silicio continúan luchando por nuestras billeteras. Los nuevos diseños y arquitecturas de GPU desafiarán los números de transistores, los tamaños de caché y las propiedades de sombreado; Navi y RDNA son los más nuevos y han demostrado que cada paso adelante puede marcar una pequeña diferencia.

Atajos de compras:

Este artículo se publicó originalmente el 7 de agosto de 2019. Como parte de nuestra iniciativa #ThrowbackThursday, revisamos y fallamos un poco.