NVIDIA acaba de implementar en sus drivers el llamado DLDSR, una versión mejorada de sus Dynamic Super Resolution adaptada al uso de los Tensor Cores en de sus RTX, aparte de otras mejoras adicionales que permiten mejorar la calidad visual en nuestros juegos. ¿Cómo funciona y que aporta a nuestros títulos favoritos?
Poco a poco NVIDIA va moviendo diferentes funciones gráficas de sus GPU al campo de la inteligencia artificial, donde las unidades especializadas en procesar redes neuronales complejas, se utilizan para ejecutar dichos algoritmos. Bajo este paradigma es normal que hayan decidido tomar ventaja del mayor elemento diferencial de sus RTX: los Tensor Cores.
Dynamic Super Resolution
Para entender el DLDSR hemos de comprender antes de nada su antecesor, llamado DRS por el hecho que no hacía uso de la parte de aprendizaje profundo. ¿En qué consistía? Pues en el hecho de renderizar la escena a una resolución mucho más alta a la que se va a transmitir en pantalla. Por ejemplo hacer que en el búfer de imagen de la GPU se genere una imagen a 4K, pero que se transmita a 1080p. Todo ello para conseguir una calidad de imagen mucho más alta.
En realidad no es otra cosa que un nombre del marketing de NVIDIA a lo que de toda la vida se ha conocido como Super Sampling Anti-Aliasing, pero con la diferencia que en el proceso de reducir la resolución de la imagen se hace uso de un filtro gaussiano de hasta 13 coeficientes distintos. Proceso que es llevado a cabo por un Computer Shader controlado por el driver de la tarjeta gráfica y que se ejecuta cuando es necesario codificar el búfer trasero a búfer frontal para que controlador de pantalla encargado de enviar la información lo envíe a la resolución correcta.
Por lo que se trata de una técnica que nos permite mejorar la calidad de imagen de nuestros juegos si tenemos una tarjeta gráfica con la potencia suficiente para mover los gráficos a mayor resolución e incluso tasa de fotogramas, pero nuestra pantalla no cumple con esos requisitos.
¿Qué es el DLDSR?
Las siglas DLDSR corresponden a Deep Learning Dynamic Super Resolution o Super Resolución dinámica a través de aprendizaje profundo y se basa en el uso de los Tensor Cores para ejecutar el algoritmo de reducción de la resolución en vez de hacer uso de las ALU FP32 o núcleos CUDA de las unidades Shader, también llamadas SM en los GPU de NVIDIA.
No es la primera vez que se aplica el Deep Learning para operaciones de postprocesado y, por tanto, con la imagen ya generada. Es en este punto donde la utilización de arrays sistólicos ha demostrado ser mucho más eficiente tanto en velocidad como en consumo respecto al empleo de una unidad SIMD. Es por ello que el DLDSR no solo ha incluido la adaptación del ya veterano DSR a los Tensor Cores, sino también una serie de algoritmos adicionales a nivel de espacio de pantalla, es decir, de postprocesado. Así pues, el DLDSR permite además aplicar una serie de algoritmos adicionales en los juegos de manera automática.
Se ha de tener en cuenta que la potencia de cálculo en bruto de los Tensor Cores es mucho más alta que el de las ALU en FP32, núcleos CUDA, ya que el ratio en TFLOPS es mucho más alto. Además, pueden trabajar con valores de menor precisión, lo cual los hace ideales para tratar los diferentes componentes de color y el canal alfa de cada píxel.
SSRTGI
El Screen Space Ray Traced Global Illumination también es llamado «Ray Tracing ReShade filter» y tiene la capacidad de mejorar la iluminación y las sombras de títulos antiguos provocando una mejora visual instantánea.
SSAO
La oclusión ambiental en espacio de pantalla destaca la apariencia de las sombras cercanas a las intersecciones de los objetos en el espacio 3D para dar sensación de volumen visual en la escena a través del juego de luces y sombras. El SSAO es clave para dar el aspecto visual en los juegos que no se basan en el trazado de rayos que la luz viaja a través del espacio.
Campo de visión dinámico
También conocido como Dynamic Depth of Field es una técnica muy utilizada en la fotografía, consiste en difuminar los objetos lejanos para darles más importancia a los cercanos. Se trata de una técnica, por tanto, ampliamente usada para crear escenas altamente cinematográficos y que se utiliza en multitud de juegos como parte del apartado artístico de los mismos.
El driver es en el encargado del DLDSR
El driver de la tarjeta gráfica es la pieza de software encargado de la comunicación entre las aplicaciones y el hardware gráfico que estás usan. No obstante existen una serie de funciones de las que se pueden beneficiar las aplicaciones que se ejecutan que no son gestionadas ni por el sistema operativo ni por la aplicación, sino por el propio controlador.
La ventaja de esto es que los programadores de los juegos no se han de romper la cabeza teniendo que adaptar estas nuevas funciones. En el caso del DLDRS la aplicación del algoritmo en los juegos no requiere ser programado en los juegos y, por tanto, el soporte ya viene de serie en todas las tarjetas gráficas NVIDIA RTX. Eso sí, el DLDSR para poderse implementar requiere que la GPU tenga Tensor Cores integrados y en consecuencia no podremos hacerlo servir en una GTX.
Para activar el DLDSR es tan fácil como hacerlo desde el panel de control de NVIDIA y seleccionar el tipo de DSR que quieres utilizar. Bajo DL Scaling verás la versión del algoritmo siendo ejecutado por las unidades Tensor y, por tanto, para las RTX. En cambio, si quieres acceder al DSR clásico para GTX solo tienes que escoger Legacy Scaling.
¿Es lo mismo DLDSR qué DLSS?
Pese a que ambas tecnologías funcionan haciendo uso de aprendizaje profundo, se trata de dos conceptos completamente opuestos. En el caso del DLSS estamos renderizando una imagen a menos resolución para generar a través de IA su versión con más píxeles en pantalla. En el caso del DLDSR se trata en renderizar nativamente un frame a más resolución por la GPU para generar otro a menor resolución.
Otra gran diferencia con el DLSS es que pese a que NVIDIA usa las siglas DL en el DLDSR no se trata de un algoritmo de aprendizaje, ya que no es necesario entrenar el algoritmo para el estilo visual de cada juego. Simplemente, se trata de mover la ejecución de ciertos algoritmos de un tipo de unidades en las GPU NVIDIA RTX a otras. Por lo que esto asegura la compatibilidad del DLDSR para todos los juegos que existen en el mercado y, por tanto, de la implementación a nivel de driver.
El uso de algoritmos de postprocesado a través de unidades especializadas para la IA es algo que se lleva utilizando hace tiempo, no en vano, muchos de los filtros de imagen de programas estilo Photoshop tienen una versión que permite ejecutarlas en los Tensor Cores, lo que hace que se ejecuten a mayor velocidad y con una precisión mucho más alta.