Arquitectura Nvidia Turing
Indice
Ya tenemos por aquí los primeros datos confirmados de la nueva arquitectura de Nvidia, Turing, de la cual vamos a repasar a continuación sus principales características.
El aspecto más destacable de esta nueva arquitectura es la modificación de los SMs, parte fundamental de la GPU en la que residen los procesador CUDA, donde Nvidia entre otras cosas continúa con la reducción de procesadores CUDA dentro de ellos y que tan buen resultado les dio con la transición de Kepler (192 CUDAS por SM) a Maxwell (128 CUDAS por SM, manteniendo el mismo número en Pascal), ahora dentro de cada SM además de 64 núcleos CUDA también residen 8 núcleos tensor y un núcleo RT que gracias al nuevo Warp Scheduler admite operaciones INT y FP32 que deberían de mejorar el cómputo asíncrono de la GPU.
Otra novedad de esta nueva arquitectura es que desde que Nvidia introdujo el concepto de clústeres de proceso gráfico (GPC) con la arquitectura Fermi en 2010, no se había aumentado su número hasta ahora, siendo un máximo de 4 GPCs los que encontrábamos dentro de la tarjetas gráficas de Nvidia, ahora con la llegada de Turing Nvidia ha aumentado el número de GPCs dentro de cada tarjeta gráfica hasta 6, como es el caso del chip Turing más potente hasta la fecha, el TU102, con 12 SMs dentro de cada GPCs, donde conviven 64 procesadores CUDA dentro de cada SMs, lo que da un total de 4608 núcleos CUDA, 576 núcleos Tensor y 72 núcleos RT dentro del chip TU102 completo.
Núcleos Tensor y DLSS
Entre las nuevas tecnologías de la arquitectura Turing tenemos los Tensor Cores (núcleos tensor), resultado de 5 años de inversión en inteligencia artificial por parte de Nvidia desarrollando sus primeros modelos de redes neuronales de aprendizaje profundo procesadas a través de GPU/CUDA y que se estrenó con el lanzamiento de la arquitectura Volta para el sector profesional, se trata de procesadores dedicados a realizar operaciones tensor y especializados en la multiplicación de matrices 3x3x3, con la intención de acelerar la formación de redes neuronales para el aprendizaje profundo de la IA, ya que CUDA requería de demasiado tiempo y recursos para la construcción y entrenamiento de redes neuronales.
Aunque en un principio su aplicación en el sector de los videojuegos es muy limitada, Nvidia está introduciendo algunas mejoras en la calidad de imagen procesadas por IA gracias a estos núcleos tensor, como es el nuevo filtro antialiasing A DLSS (Deep Learning Anti-Aliasing), el cual promete una mejora de rendimiento significativa comparada con otros filtros que actualmente ya se encuentran implantados en muchos títulos como es TAA, según la marca la calidad de imagen con un filtro 2X DLSS es comparable a un filtro 64X super sampling clásico.
El nuevo filtro DLSS funciona a través de los núcleos Tensor, los cuales analizan los fotogramas mediante su red neuronal entrenada para eliminar los picos de sierra, para después mandar la imagen postprocesada al monitor, dicho de manera sencilla es un filtro antialiasing aplicado por una inteligencia artificial.
Lo mejor de este filtro es que Nvidia se encarga de que su inteligencia artificial no deje de aprender, a base de analizar una y otra las imágenes en un juego se compila un modelo DLSS para ese título, el cual es enviado a la computadora de los usuarios mediante Geforce Experience para ser procesado de manera local por los núcleos Tensor de la tarjeta gráfica.
Núcleos RTX
Desde los años 70 el trazado de rayos de luz en tiempo real (Ray Tracing) era considerado el santo grial en la evolución de los gráficos 3D, durante los últimos años ya hemos visto que Nvidia intentaba una aproximación mediante su API OptiX, los cuales basan el proceso de rayos de luz en tiempo real a través de CUDA, aunque la pesada carga de proceso computacional que ello supone lleva al límite los procesadores CUDA.
Y aquí es donde ve la luz el secreto mejor guardado de Nvidia, y que estuvo gestándose durante 15 años en las entrañas de la empresa, los núcleos RTX, se trata de hardware dedicado al proceso de Ray Tracing, especializado en la representación matemática de un rayo atravesando una escena y calcular el punto de intersección en cualquier triángulo para representarlo en pantalla, dicho de otra manera, se lanza un rayo de luz desde un pixel de la pantalla hacia el escenario 3D y este rebota hacia la fuente de luz, de manera inversa a como funciona la luz con nuestros ojos en el mundo real pero con el mismo resultado, en el caso de que el rayo después de rebotar en el objeto hacia la fuente de luz encuentre un objeto durante su trayectoria ese píxel será sombreado como un reflejo/sombra, no hace falta decir que este tipo de proceso requiere de una gran capacidad de cómputo.
RTX es una tecnología dedicada al proceso de la iluminación en tiempo real a través de Ray Tracing, que abarca todo y en el que se incluyen sistemas para el sombreado y la oclusión ambiental, trabajando en conjunto con los núcleos Tensor consiguen reducir la carga de trabajo que ello supone mediante un algoritmo de jerarquía de volumen delimitador (BVH), dicho de manera sencilla, se calcula el área de la escena que se representa en pantalla mediante recuadros en los objetos y los triángulos que en ella aparecen, y mediante la división en niveles gracias a la potencia para el proceso en paralelo de las tarjetas gráficas actuales se crea un índice en forma de árbol, el cual se procesa todo a la vez para ir descartando las áreas más simples una vez procesadas y centrado la asignación de recursos en las áreas más complejas, solo las áreas donde sigue habiendo un impacto en la demanda del proceso de rayos en tiempo real se sigue procesando, reduciendo el tamaño de los recuadros dentro de esa área, y nuevamente descartando las áreas más simples una vez procesadas se vuelve a centrar la asignación de recursos en las áreas más complejas dentro de esa área, así se van descartando las áreas y los recuadros hasta que se obtiene un pixel en pantalla.
Como se puede esperar de este tipo de proceso, se generarían pixeles negros en pantalla, produciendo un molesto ruido sobre la imagen, dependiendo de la escena este ruido es eliminado mediante distintos tipos de algoritmos, entre ellos algunos procesados mediante IA.
Según la compañía la tecnología RTX supone un avance tan tangible en el realismo de los gráficos 3D como lo fueron los sombreadores programables con las Geforce 3 en el año 2001, gracias al ahorro en costes de tiempo y de recursos para los programadores, tanto en la curva de aprendizaje como en la adopción de las herramientas necesarias para implantar el proceso de rayos en tiempo en el mercado general para los consumidores de a pie, ya que de otra manera con el hardware que había disponible hasta ahora hubiera sido imposible debido a la alta demanda de proceso que ello supone.
Memoria GDDR6
La memoria GDRR6 es la sucesora directa de la GDDR5X, pues no hay diferencias notables entre ellas más allá del aumento de la frecuencia de 10Gbps @ 16Gbps, aunque Nvidia ha optado de momento por 14Gbps, o la división de la memoria en dos canales por chip, ahora además de poder operar a 32 bits cada chip podrá generar dos canales independientes de 16 bits, lo que debería de agilizar el proceso en paralelo de los datos, por lo que la mejora no ha sido tan notable como sí lo fue el paso de GDDR5 a GDDR5X, otra diferencia es su voltaje dinámico, el cual puede operar entre 1,35v y 1,25v, a diferencia de GDDR5X que funciona a un voltaje fijo de 1,35v, el voltaje de 1,25v se emplea en situaciones donde la demanda en la velocidad de datos no es muy alta.
La principal diferencia que encontramos en la memoria GDDR6 comparada con GDDR5X reside en que todos los fabricantes de DRAM adopten GDDR6 como el nuevo standard para el mercado de consumo, siendo una alternativa más económica de producir que la memoria HBM2.
Compresión de color sin pérdida de calidad
Desde Fermi Nvidia ha ido mejorando su algoritmo para la compresión del color delta, lo que reduce los requisitos de ancho de banda de la memoria, uno de los ejemplos más claros de esta optimización en la memoria es que la GTX 1060 tiene el mismo ancho de banda bruto que una GTX 760 siendo la primera considerablemente más potente, con la llegada de su quinta generación se ha conseguido una mejora del 25% comparada con Pascal sin perder calidad de imagen, la cual ya traía una mejora del 20% comparada con Maxwell.
Mejoras en los sombreadores de pixeles
Aunque quizás las tecnologías más significativa para los usuarios de a pie reside en la mejora de los sombreadores (Shaders), como es Mesh Shading (sombreador de malla), donde entre otras cosas la GPU tiene acceso a la lista de objetos en la escena que va a procesar la CPU en vez de únicamente a los objetos individuales, lo que reduce las llamadas de dibujado al procesador y el cuello de botella que este pueda producir.
Variable Rate Shading (sombreado de tasa variable), consiste en la distribución de la carga de trabajo y proceso de la GPU dependiendo de la importancia de los objetos en escena, buscando optimizar la calidad y el rendimiento reduciendo la carga de sombreado y el nivel de detalle en las áreas que no se consideren importantes para la experiencia en general.
Contect Adaptive Shading (sombreado adaptativo de contenido), con el que a partir de los fotogramas anteriores se calcula que partes de la escena requieren menor carga de sombreado, como pueden ser cielos o paredes, y con ello reducir los índices de sombreado.
Motion Adaptive Shading (sombreado adaptativo al movimiento), con el que se calcula la cantidad de sombreado requerido sobre los pixeles para que la escena en movimiento tenga un nivel de detalle adecuado para nuestra percepción, normalmente los objetos que se mueven a mayor velocidad se procesan mediante técnicas de desenfoque como son Motion Blur o DoF (profundidad de campo), con las que las diferencias de sombreado son menos perceptibles, Motion Adaptive Shading calcula mediante varios algoritmos de desenfoque de manera inversa, qué cantidad de trabajo de sombreado se necesita para cada situación, por ejemplo a velocidades más bajas aumentan los requisitos de sombreado.
Foveated Rendering, se trata de una técnica empleada en los cascos de realidad virtual para optimizar el renderizado el cual debe alcanzar los 90 FPS (90 Hz) para su correcto funcionamiento, aunque se puede aplicar a todas las salidas de imagen como son los monitores, consiste en aprovechar el hecho de que nuestra percepción visual se centra en los objetos que se encuentran en el centro de nuestro campo de visión, difuminando los objetos que se encuentran por la periferia, de igual manera que hace nuestro cerebro, Nvidia intenta saber qué es lo que nuestros ojos están viendo mediante el seguimiento ocular, para aumentar o reducir dinámicamente la resolución de las áreas de la escena dependiendo si están en el centro o en la periferia de nuestro campo de visión.
Texture Space Shading, reutiliza los pixeles previamente calculados y sombreados fotograma a fotograma, mejorando la calidad y el rendimiento, guardando dinámicamente los pixeles sombreados a resolución completa como texels en un espacio de la textura, estos pixeles se vuelven a renderizar en el siguiente fotograma como el resultado de un texel, cargándose directamente desde el espacio de la textura, evitando tener que volver a calcularlo para cargarlo.