stringtranslate.com

Supermuestreo de aprendizaje profundo

El supermuestreo de aprendizaje profundo ( DLSS ) es una familia de tecnologías de mejora y escalado de imágenes de aprendizaje profundo en tiempo real desarrolladas por Nvidia que están disponibles en varios videojuegos . El objetivo de estas tecnologías es permitir que la mayoría de la secuencia de gráficos se ejecute a una resolución más baja para un mayor rendimiento y luego inferir una imagen de mayor resolución a partir de esto que se aproxime al mismo nivel de detalle que si la imagen se hubiera renderizado a esta resolución más alta. Esto permite configuraciones gráficas más altas y/o velocidades de cuadros para una resolución de salida determinada, según la preferencia del usuario. [1]

A partir de septiembre de 2022, la primera y segunda generación de DLSS están disponibles en todas las tarjetas de la marca RTX de Nvidia en los títulos compatibles, mientras que la tercera generación presentada en el evento GTC 2022 de Nvidia es exclusiva de las tarjetas gráficas de la serie RTX 40 de la generación Ada Lovelace . [2] Nvidia también ha presentado la súper resolución dinámica de aprendizaje profundo ( DLDSR ), una tecnología relacionada y opuesta donde los gráficos se renderizan a una resolución más alta y luego se reducen a la resolución de pantalla nativa utilizando un algoritmo de reducción de resolución asistido por IA para lograr una calidad de imagen más alta que la renderización en resolución nativa. [3]

Historia

Nvidia promocionó DLSS como una característica clave de las tarjetas de la serie GeForce 20 cuando se lanzaron en septiembre de 2018. [4] En ese momento, los resultados se limitaron a unos pocos videojuegos (a saber, Battlefield V [5] y Metro Exodus ) porque el algoritmo tenía que ser entrenado específicamente en cada juego en el que se aplicaba y los resultados generalmente no eran tan buenos como el simple aumento de resolución. [6] [7]

En 2019, el videojuego Control se lanzó con trazado de rayos en tiempo real y una versión mejorada de DLSS, que no utilizaba los núcleos Tensor. [8] [9]

En abril de 2020, Nvidia anunció y envió una versión mejorada de DLSS llamada DLSS 2.0 con la versión del controlador 445.75. DLSS 2.0 estaba disponible para algunos juegos existentes, incluidos Control y Wolfenstein: Youngblood , y luego se agregaría a muchos juegos y motores de juego recién lanzados como Unreal Engine [10] y Unity . [11] Esta vez, Nvidia dijo que usó los núcleos Tensor nuevamente y que la IA no necesitaba ser entrenada específicamente en cada juego. [4] [12] A pesar de compartir la marca DLSS, las dos iteraciones de DLSS difieren significativamente y no son compatibles con versiones anteriores. [13] [14]

Historial de versiones

Ajustes preestablecidos de calidad

Al usar DLSS, según el juego, los usuarios tienen acceso a varios ajustes preestablecidos de calidad además de la opción de configurar manualmente la resolución mejorada y renderizada internamente:

  1. ^ No es necesario implementar el algoritmo utilizando estos ajustes preestablecidos; es posible que el implementador defina resoluciones de entrada y salida personalizadas.
  2. ^ El factor de escala lineal utilizado para aumentar la resolución de entrada a la resolución de salida. Por ejemplo, una escena renderizada a 540p con un factor de escala de 2,00x tendría una resolución de salida de 1080p.
  3. ^ La escala de renderizado lineal, comparada con la resolución de salida, que la tecnología utiliza para renderizar escenas internamente antes del sobremuestreo. Por ejemplo, una escena de 1080p con una escala de renderizado del 50 % tendría una resolución interna de 540p.

Implementación

DLSS 1.0

La primera iteración de DLSS es un escalador de imágenes predominantemente espacial con dos etapas, ambas basadas en redes neuronales convolucionales de autocodificador . [21] El primer paso es una red de mejora de imágenes que utiliza el cuadro actual y los vectores de movimiento para realizar la mejora de bordes y el anti-aliasing espacial . La segunda etapa es un paso de mejora de la imagen que utiliza el único cuadro sin procesar de baja resolución para mejorar la imagen a la resolución de salida deseada. El uso de un solo cuadro para la mejora de la escala significa que la propia red neuronal debe generar una gran cantidad de información nueva para producir la salida de alta resolución, lo que puede dar lugar a ligeras alucinaciones, como hojas que difieren en estilo del contenido de origen. [13]

Las redes neuronales se entrenan para cada juego, generando un "cuadro perfecto" mediante el supermuestreo tradicional de 64 muestras por píxel, así como los vectores de movimiento para cada cuadro. Los datos recopilados deben ser lo más completos posible, incluyendo tantos niveles, horas del día, configuraciones gráficas, resoluciones, etc. como sea posible. Estos datos también se amplían utilizando ampliaciones comunes como rotaciones, cambios de color y ruido aleatorio para ayudar a generalizar los datos de prueba. El entrenamiento se realiza en la supercomputadora Saturn V de Nvidia. [14] [22]

Esta primera iteración recibió una respuesta mixta, con muchos criticando la apariencia a menudo suave y los artefactos en ciertas situaciones; [23] [6] [5] probablemente un efecto secundario de los datos limitados de usar solo una entrada de cuadro para las redes neuronales que no pudieron ser entrenadas para funcionar de manera óptima en todos los escenarios y casos extremos . [13] [14]

Nvidia también demostró la capacidad de las redes de codificadores automáticos para aprender la capacidad de recrear la profundidad de campo y el desenfoque de movimiento , [14] aunque esta funcionalidad nunca se ha incluido en un producto lanzado públicamente. [ cita requerida ]

DLSS 2.0

DLSS 2.0 es una implementación de anti-aliasing upsampling temporal (TAAU), que utiliza datos de fotogramas anteriores de forma extensiva a través de fluctuaciones de subpíxeles para resolver detalles finos y reducir el aliasing. Los datos que DLSS 2.0 recopila incluyen: la entrada de baja resolución sin procesar, vectores de movimiento , búferes de profundidad e información de exposición /brillo. [13] También se puede utilizar como una implementación TAA más simple donde la imagen se renderiza a una resolución del 100 %, en lugar de ser sobremuestreada por DLSS; Nvidia lo denomina DLAA (anti-aliasing de aprendizaje profundo). [24]

TAA(U) se utiliza en muchos videojuegos y motores de juegos modernos , [25] sin embargo, todas las implementaciones anteriores han utilizado alguna forma de heurística escrita manualmente para evitar artefactos temporales como imágenes superpuestas y parpadeos . Un ejemplo de esto es la fijación de vecindad que evita forzosamente que las muestras recopiladas en fotogramas anteriores se desvíen demasiado en comparación con los píxeles cercanos en fotogramas más nuevos. Esto ayuda a identificar y corregir muchos artefactos temporales, pero eliminar deliberadamente detalles finos de esta manera es análogo a aplicar un filtro de desenfoque y, por lo tanto, la imagen final puede aparecer borrosa cuando se utiliza este método. [13]

DLSS 2.0 utiliza una red neuronal con autocodificador convolucional [23] entrenada para identificar y corregir artefactos temporales, en lugar de heurísticas programadas manualmente como se mencionó anteriormente. Debido a esto, DLSS 2.0 generalmente puede resolver los detalles mejor que otras implementaciones de TAA y TAAU, al mismo tiempo que elimina la mayoría de los artefactos temporales. Es por eso que DLSS 2.0 a veces puede producir una imagen más nítida que la renderización a resoluciones más altas o incluso nativas utilizando TAA tradicional. Sin embargo, ninguna solución temporal es perfecta y los artefactos (en particular, las imágenes fantasma) aún son visibles en algunos escenarios cuando se utiliza DLSS 2.0.

Debido a que los artefactos temporales ocurren en la mayoría de los estilos y entornos artísticos de manera similar, la red neuronal que impulsa DLSS 2.0 no necesita volver a entrenarse cuando se utiliza en diferentes juegos. A pesar de esto, Nvidia envía con frecuencia nuevas revisiones menores de DLSS 2.0 con nuevos títulos, [26] por lo que esto podría sugerir que se pueden realizar algunas optimizaciones de entrenamiento menores a medida que se lanzan los juegos, aunque Nvidia no proporciona registros de cambios para estas revisiones menores para confirmarlo.

Los principales avances en comparación con DLSS 1.0 incluyen: retención de detalles significativamente mejorada, una red neuronal generalizada que no necesita volver a entrenarse por juego y una sobrecarga ~2 veces menor (~1-2 ms frente a ~2-4 ms). [13]

También debe tenerse en cuenta que las formas de TAAU como DLSS 2.0 no son escaladores en el mismo sentido que las técnicas como ESRGAN o DLSS 1.0, que intentan crear nueva información a partir de una fuente de baja resolución; en cambio, TAAU trabaja para recuperar datos de fotogramas anteriores, en lugar de crear nuevos datos. En la práctica, esto significa que las texturas de baja resolución en los juegos seguirán apareciendo de baja resolución cuando se utilicen las técnicas TAAU actuales. Es por eso que Nvidia recomienda a los desarrolladores de juegos que utilicen texturas de mayor resolución de la que utilizarían normalmente para una resolución de renderizado determinada aplicando un sesgo de mapa mip cuando DLSS 2.0 esté habilitado. [13]

DLSS 3.0

Mejora el DLSS 2.0 mediante el uso de interpolación de movimiento . El algoritmo de generación de cuadros DLSS toma dos cuadros renderizados del flujo de renderizado y genera un nuevo cuadro que realiza una transición fluida entre ellos. Por lo tanto, por cada cuadro renderizado, se genera un cuadro adicional. [2]

DLSS 3.0 utiliza un acelerador de flujo óptico (OFA) de nueva generación incluido en las GPU RTX de la generación Ada Lovelace. El nuevo OFA es más rápido y preciso que el OFA ya disponible en las GPU RTX Turing y Ampere anteriores. [27] Esto hace que DLSS 3.0 sea exclusivo para la serie RTX 40.

En el momento de su lanzamiento, DLSS 3.0 no funciona con pantallas VR. [ cita requerida ]

DLSS 3.5

DLSS 3.5 agrega reconstrucción de rayos, reemplazando múltiples algoritmos de eliminación de ruido con un solo modelo de IA entrenado en cinco veces más datos que DLSS 3. La reconstrucción de rayos está disponible en todas las GPU RTX y los primeros juegos específicos con trazado de ruta (también conocido como "trazado de rayos completo"), incluido el DLC Phantom Liberty de Cyberpunk 2077 , Portal con RTX y Alan Wake 2. [ 18] [17]

Anti-aliasing

DLSS requiere y aplica su propio método de suavizado de bordes . Por lo tanto, dependiendo del juego y la configuración de calidad utilizada, el uso de DLSS puede mejorar la calidad de la imagen incluso en comparación con la resolución nativa. [28]

Funciona con principios similares a TAA . Al igual que TAA, utiliza información de fotogramas anteriores para producir el fotograma actual. A diferencia de TAA, DLSS no muestrea cada píxel en cada fotograma. En cambio, muestrea diferentes píxeles en diferentes fotogramas y utiliza píxeles muestreados en fotogramas anteriores para completar los píxeles no muestreados en el fotograma actual. DLSS utiliza el aprendizaje automático para combinar muestras en el fotograma actual y en fotogramas anteriores, y puede considerarse una implementación avanzada y superior de TAA que es posible gracias a los núcleos tensoriales disponibles. [13]

Nvidia también ofrece anti-aliasing de aprendizaje profundo (DLAA). DLAA proporciona el mismo anti-aliasing impulsado por IA que utiliza DLSS, pero sin ninguna funcionalidad de aumento o reducción de escala. [24]

Arquitectura

Con la excepción de la versión shader-core implementada en Control , DLSS solo está disponible en las series de tarjetas de video GeForce RTX 20 , GeForce RTX 30 , GeForce RTX 40 y Quadro RTX , utilizando aceleradores de IA dedicados llamados Tensor Cores . [23] [ verificación fallida ] Los Tensor Cores están disponibles desde la microarquitectura de GPU Nvidia Volta , que se utilizó por primera vez en la línea de productos Tesla V100 . [29] Se utilizan para realizar operaciones de multiplicación-suma fusionada (FMA) que se usan ampliamente en los cálculos de redes neuronales para aplicar una gran serie de multiplicaciones en pesos, seguida de la adición de un sesgo. Los núcleos Tensor pueden operar en tipos de datos FP16, INT8, INT4 e INT1. Cada núcleo puede realizar 1024 bits de operaciones FMA por reloj, es decir, 1024 operaciones INT1, 256 INT4, 128 INT8 y 64 FP16 por reloj por núcleo tensor, y la mayoría de las GPU de Turing tienen unos cientos de núcleos tensoriales. [30]

Los núcleos Tensor utilizan primitivas de nivel Warp de CUDA en 32 subprocesos paralelos para aprovechar su arquitectura paralela. [31] Un Warp es un conjunto de 32 subprocesos que están configurados para ejecutar la misma instrucción.

Desde la versión 1903 de Windows 10 , Microsoft Windows proporcionó DirectML como parte de DirectX para soportar Tensor Cores.

Asuntos

En particular, en las primeras versiones de DLSS, los usuarios informaron de fotogramas borrosos. Por ello, Andrew Edelsten, un empleado de Nvidia, comentó el problema en una publicación de blog en 2019 y prometió que estaban trabajando para mejorar la tecnología y aclaró que el algoritmo de IA de DLSS se entrenó principalmente con material de imagen 4K. El hecho de que el uso de DLSS produzca imágenes especialmente borrosas en resoluciones más bajas, como Full HD , se debe a que el algoritmo tiene mucha menos información de imagen disponible para calcular una imagen adecuada en comparación con resoluciones más altas como 4K. [32]

Se ha criticado que, al implementar DLSS en sus juegos, los desarrolladores de juegos ya no tienen un incentivo para optimizarlos para que también funcionen sin problemas en resolución nativa en hardware de PC moderno. Por ejemplo, para el juego Alan Wake 2 en resolución 4K con la configuración de gráficos más alta y el trazado de rayos habilitado, se recomienda el uso de DLSS en modo Rendimiento incluso con tarjetas gráficas de gama alta de la generación actual, como la Nvidia GeForce RTX 4080, para lograr 60 fps. [33]

Además, el uso de la generación de cuadros DLSS puede provocar una mayor latencia de entrada [34] y artefactos visuales . [35]

Véase también

Referencias

  1. ^ "Nvidia RTX DLSS: Todo lo que necesitas saber". Tendencias digitales . 2020-02-14 . Consultado el 2020-04-05 . El supermuestreo de aprendizaje profundo utiliza inteligencia artificial y aprendizaje automático para producir una imagen que parece una imagen de mayor resolución, sin la sobrecarga de renderizado. El algoritmo de Nvidia aprende de decenas de miles de secuencias de imágenes renderizadas que se crearon utilizando una supercomputadora. Eso entrena al algoritmo para que pueda producir imágenes igualmente hermosas, pero sin requerir que la tarjeta gráfica trabaje tanto para hacerlo.
  2. ^ abc "Presentación de NVIDIA DLSS 3". NVIDIA . Consultado el 20 de septiembre de 2022 .
  3. ^ Archer, James (17 de enero de 2022). «Prueba de Nvidia DLDSR: mejores gráficos y mejor rendimiento que DSR». Rock Paper Shotgun . Consultado el 23 de febrero de 2022 .
  4. ^ abc "Nvidia DLSS en 2020: resultados sorprendentes". techspot.com. 2020-02-26 . Consultado el 2020-04-05 .
  5. ^ abc "Battlefield V DLSS Tested: Overpromised, Underdelivered" (Probamos demasiado, cumplimos poco). techspot.com. 2019-02-19 . Consultado el 2020-04-06 . Por supuesto, esto es de esperarse. DLSS nunca iba a proporcionar la misma calidad de imagen que el 4K nativo y, al mismo tiempo, ofrecer un aumento del rendimiento del 37 %. Eso sería magia negra. Pero la diferencia de calidad al comparar los dos es casi ridícula, en cuanto a lo lejos que está DLSS de la presentación nativa en estas áreas estresantes.
  6. ^ ab "AMD cree que NVIDIA DLSS no es lo suficientemente bueno; considera que TAA y SMAA son mejores alternativas". techquila.co.in. 2019-02-15 . Consultado el 2020-04-06 . Recientemente, dos grandes títulos recibieron soporte para NVIDIA DLSS, concretamente Metro Exodus y Battlefield V. Ambos juegos vienen con la implementación de DXR (DirectX Raytracing) de NVIDIA que, por el momento, solo es compatible con las tarjetas GeForce RTX. DLSS hace que estos juegos se puedan jugar a resoluciones más altas con velocidades de cuadro mucho mejores, aunque hay una disminución notable en la nitidez de la imagen. Ahora, AMD ha dado un golpe a DLSS, diciendo que los métodos AA tradicionales como SMAA y TAA "ofrecen combinaciones superiores de calidad de imagen y rendimiento".
  7. ^ "Nvidia hizo que DLSS fuera mucho mejor sin hacer mucho ruido". Kotaku . 2020-02-22 . Consultado el 2020-04-06 . El beneficio para la mayoría de las personas es que, en general, DLSS viene con una mejora considerable de FPS. La cantidad varía de un juego a otro. En Metro Exodus, el salto de FPS apenas se notó y ciertamente no valió la pena el extraño impacto en la calidad de la imagen.
  8. ^ ab "Control de Remedy vs DLSS 2.0: el escalado de la IA alcanza el siguiente nivel". Eurogamer . 2020-04-04 . Consultado el 2020-04-05 . Por supuesto, esta no es la primera implementación de DLSS que hemos visto en Control. El juego se envió con una versión bastante decente de la tecnología que en realidad no usaba aprendizaje automático
  9. ^ "La actualización DLSS 2.0 de NVIDIA solucionará el gran error de las tarjetas GeForce RTX". techquila.co.in. 24 de marzo de 2020. Consultado el 6 de abril de 2020. Como se prometió, NVIDIA ha actualizado la red DLSS en una nueva actualización de GeForce que proporciona una calidad de imagen mejor y más nítida, al tiempo que conserva velocidades de cuadro más altas en juegos con trazado de rayos. Si bien la función no se utilizó tan bien en su primera iteración, NVIDIA ahora confía en que ha solucionado con éxito todos los problemas que tenía antes.
  10. ^ "El complemento NVIDIA DLSS y Reflex ya están disponibles para Unreal Engine". Blog para desarrolladores de NVIDIA . 2021-02-11 . Consultado el 2022-02-07 .
  11. ^ "NVIDIA DLSS compatible de forma nativa con Unity 2021.2". Blog para desarrolladores de NVIDIA . 2021-04-14 . Consultado el 2022-02-07 .
  12. ^ "HW News - Crysis Remastered Ray Tracing, NVIDIA DLSS 2, Ryzen 3100 Rumors". 2020-04-19. Archivado desde el original el 2020-09-26 . Consultado el 2020-04-19 . El DLSS original requería entrenar la red de IA para cada juego nuevo. DLSS 2.0 entrena utilizando contenido no específico del juego, lo que ofrece una red generalizada que funciona en todos los juegos. Esto significa integraciones de juegos más rápidas y, en última instancia, más juegos DLSS.
  13. ^ abcdefgh Edward Liu, NVIDIA "DLSS 2.0: reconstrucción de imágenes para renderizado en tiempo real con aprendizaje profundo"
  14. ^ abcd "Verdaderamente de última generación: cómo incorporar aprendizaje profundo a juegos y gráficos (presentado por NVIDIA)". www.gdcvault.com . Consultado el 7 de febrero de 2022 .
  15. ^ Edelsten, Andrew (30 de agosto de 2019). "NVIDIA DLSS: Control and Beyond". nividia.com . Consultado el 11 de agosto de 2020 . Desarrollamos un nuevo algoritmo de procesamiento de imágenes que se aproximaba a nuestro modelo de investigación de IA y se ajustaba a nuestro presupuesto de rendimiento. Este enfoque de procesamiento de imágenes para DLSS está integrado en Control
  16. ^ "Revisión de NVIDIA DLSS 2.0 con Control: ¿es magia?". techquila.co.in. 2020-04-05 . Consultado el 2020-04-06 .
  17. ^ abc «El nuevo DLSS 3.5 de Nvidia funciona en todas las GPU RTX para mejorar la calidad del trazado de rayos». The Verge. 22 de agosto de 2023. Consultado el 6 de septiembre de 2023 .
  18. ^ ab "Nvidia anuncia DLSS 3.5 con reconstrucción de rayos, mejorando la calidad del RT con un eliminador de ruido entrenado por IA". EuroGamer. 23 de agosto de 2023. Consultado el 6 de septiembre de 2023 .
  19. ^ ab "NVIDIA prepara el modo Ultra Quality para DLSS, se detectó la versión 2.2.9.0". VideoCardz.com . Consultado el 6 de julio de 2021 .
  20. ^ "DLSS 3 explicado: cómo la tecnología RTX con IA de Nvidia potencia los juegos de PC". PCWorld . Consultado el 8 de junio de 2024 .
  21. ^ "DLSS: ¿Qué significa para los desarrolladores de juegos?". Blog para desarrolladores de NVIDIA . 19 de septiembre de 2018. Consultado el 7 de febrero de 2022 .
  22. ^ "NVIDIA DLSS: respuestas a sus preguntas". Nvidia . 2019-02-15 . Consultado el 2020-04-19 . El equipo de DLSS primero extrae muchos fotogramas con alias del juego de destino y luego, para cada uno, generamos un "fotograma perfecto" coincidente mediante supermuestreo o renderizado por acumulación. Estos fotogramas emparejados se envían a la supercomputadora de NVIDIA. La supercomputadora entrena al modelo DLSS para reconocer entradas con alias y generar imágenes anti-aliasing de alta calidad que coincidan lo más posible con el "fotograma perfecto". Luego repetimos el proceso, pero esta vez entrenamos al modelo para generar píxeles adicionales en lugar de aplicar AA. Esto tiene el efecto de aumentar la resolución de la entrada. La combinación de ambas técnicas permite que la GPU renderice la resolución completa del monitor a velocidades de cuadro más altas.
  23. ^ abc "NVIDIA DLSS 2.0: un gran salto en la renderización con IA". Nvidia . 23 de marzo de 2020 . Consultado el 7 de abril de 2020 .
  24. ^ ab "¿Qué es Nvidia DLAA? Explicación del anti-aliasing". Tendencias digitales . 28 de septiembre de 2021 . Consultado el 10 de febrero de 2022 .
  25. ^ Frente de nubes pequeñas AA temporal
  26. ^ "Descarga de NVIDIA DLSS DLL (2.3.7)". TechPowerUp . Consultado el 10 de febrero de 2022 .
  27. ^ "SDK de flujo óptico de NVIDIA". NVIDIA Developer . 2018-11-29 . Consultado el 20 de septiembre de 2022 .
  28. ^ Smith, Matthew S. (28 de diciembre de 2023). "¿Qué es DLSS y por qué es importante para los juegos?". IGN . Consultado el 13 de junio de 2024 .
  29. ^ "Sobre tensores, Tensorflow y los últimos 'núcleos Tensor' de Nvidia". tomshardware.com. 2017-04-11 . Consultado el 2020-04-08 .
  30. ^ "GUÍA DE RENDIMIENTO DE TENSOR CORE DL" (PDF) . Nvidia . Archivado (PDF) del original el 2020-11-11.
  31. ^ "Uso de primitivas de nivel Warp de CUDA". Nvidia . 2018-01-15 . Consultado el 2020-04-08 . Las GPU NVIDIA ejecutan grupos de subprocesos conocidos como warps en modo SIMT (instrucción única, subproceso múltiple)
  32. ^ "NVIDIA DLSS: respuestas a tus preguntas" www.nvidia.com . Consultado el 9 de julio de 2024 .
  33. ^ "Alan Wake 2 para PC es una auténtica vergüenza". Tendencias digitales . 2023-10-26 . Consultado el 2024-07-09 .
  34. ^ "Cuando una alta tasa de cuadros puede hacerte perder el juego". Tendencias digitales . 2023-11-21 . Consultado el 2024-07-09 .
  35. ^ "Revisión de Nvidia DLSS 3: lo probamos en 9 juegos". TechSpot . 2023-03-08 . Consultado el 2024-07-09 .

Enlaces externos