stringtranslate.com

Súper muestreo 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 son exclusivas de su línea RTX de tarjetas gráficas , [1] y están disponibles en varios videojuegos . El objetivo de estas tecnologías es permitir que la mayoría del proceso de gráficos se ejecute a una resolución más baja para aumentar el 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. resolución. Esto permite configuraciones gráficas y/o velocidades de fotogramas más altas para una resolución de salida determinada, según las preferencias del usuario. [2]

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 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 . [3] Nvidia también ha introducido la superresolución dinámica de aprendizaje profundo ( DLDSR ), una tecnología relacionada y opuesta en la que los gráficos se representan 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 mayor calidad de imagen. que renderizar con resolución nativa. [4]

Historia

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

En 2019, el videojuego Control se envió con trazado de rayos y una versión mejorada de DLSS, que no usaba Tensor Cores. [9] [10]

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 juegos recientemente lanzados , como Unreal Engine [11] y Unity . [12] Esta vez, Nvidia dijo que usó los Tensor Cores nuevamente y que no era necesario entrenar la IA específicamente en cada juego. [5] [13] A pesar de compartir la marca DLSS, las dos iteraciones de DLSS difieren significativamente y no son compatibles con versiones anteriores. [14] [15]

Historial de lanzamientos

Ajustes preestablecidos de calidad

  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 el muestreo de 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, en comparación con la resolución de salida, que utiliza la tecnología para renderizar escenas internamente antes de aumentar el muestreo. Por ejemplo, una escena de 1080p con una escala de renderizado del 50% tendría una resolución interna de 540p.

Implementación

DLS 1.0

La primera iteración de DLSS es un escalador de imágenes predominantemente espacial con dos etapas, ambas basadas en redes neuronales con codificadores automáticos convolucionales . [21] El primer paso es una red de mejora de imágenes que utiliza el cuadro actual y los vectores de movimiento para realizar mejoras de bordes y suavizado espacial . La segunda etapa es un paso de mejora de la imagen que utiliza un único fotograma sin formato de baja resolución para mejorar la imagen a la resolución de salida deseada. Usar un solo cuadro para la ampliación significa que la propia red neuronal debe generar una gran cantidad de información nueva para producir una salida de alta resolución, lo que puede provocar ligeras alucinaciones , como hojas que difieren en estilo del contenido original. [14]

Las redes neuronales se entrenan por juego generando un "cuadro perfecto" utilizando supermuestreo tradicional a 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 aumentan utilizando aumentos 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. [15] [22]

Esta primera versión recibió una respuesta mixta, y muchos criticaron la apariencia a menudo suave y los artefactos en ciertas situaciones; [23] [7] [6] probablemente sea un efecto secundario de los datos limitados debido al uso de una sola entrada de cuadro para las redes neuronales que no se pudieron entrenar para funcionar de manera óptima en todos los escenarios y casos extremos . [14] [15]

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

DLS 2.0

DLSS 2.0 es una implementación de muestreo ascendente de suavizado temporal (TAAU), que utiliza ampliamente datos de fotogramas anteriores a través de fluctuaciones de subpíxeles para resolver detalles finos y reducir el alias. Los datos que recopila DLSS 2.0 incluyen: la entrada sin procesar de baja resolución, vectores de movimiento , buffers de profundidad e información de exposición /brillo. [14] También se puede utilizar como una implementación TAA más simple en la que la imagen se representa con una resolución del 100%, en lugar de ser muestreada mediante DLSS. Nvidia lo denomina DLAA (Deep Learning Anti-Aliasing) . [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 fantasma y parpadeos . Un ejemplo de esto es la sujeción de vecindad que evita enérgicamente 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. [14]

DLSS 2.0 utiliza una red neuronal convolucional de codificador automático [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 TAA y TAAU, al mismo tiempo que elimina la mayoría de los artefactos temporales. Esta es la razón por la que DLSS 2.0 a veces puede producir una imagen más nítida que la renderizada a resoluciones más altas, o incluso nativas, usando 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 usa DLSS 2.0.

Debido a que los artefactos temporales ocurren en la mayoría de los estilos y entornos artísticos más o menos de la misma manera, no es necesario volver a entrenar la red neuronal que impulsa DLSS 2.0 cuando se usa 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 menores de entrenamiento a medida que se lanzan los juegos, aunque Nvidia no proporciona registros de cambios para estas revisiones menores para confirmar esto.

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 ~2 veces menos gastos generales (~1-2 ms frente a ~2-4 ms). [14]

También cabe señalar que las formas de TAAU como DLSS 2.0 no son escaladoras en el mismo sentido que 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 datos nuevos. En la práctica, esto significa que las texturas de baja resolución en los juegos seguirán pareciendo de baja resolución cuando se utilicen las técnicas TAAU actuales. Es por eso que Nvidia recomienda que los desarrolladores de juegos utilicen texturas de mayor resolución de la que normalmente usarían para una resolución de renderizado determinada aplicando un sesgo de mapa MIP cuando DLSS 2.0 está habilitado. [14]

DLS 3.0

Aumenta DLSS 2.0 haciendo uso de la interpolación de movimiento . El algoritmo de generación de fotogramas DLSS toma dos fotogramas renderizados del proceso de renderizado y genera un nuevo fotograma que realiza una transición suave entre ellos. Entonces, por cada fotograma renderizado, se genera un fotograma adicional. [3]

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 que ya está disponible en las GPU Turing y Ampere RTX anteriores. [27] Esto da como resultado que DLSS 3.0 sea exclusivo para la serie RTX 40.

En el momento del lanzamiento, DLSS 3.0 no funciona para pantallas de realidad virtual. [ cita necesaria ]

DLS 3.5

DLSS 3.5 agrega reconstrucción de rayos, reemplazando múltiples algoritmos de eliminación de ruido con un único modelo de IA entrenado con cinco veces más datos que DLSS 3. La reconstrucción de rayos estará disponible en todas las GPU RTX y se enfocará primero en juegos 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 . [19] [18]

Antialiasing

DLSS requiere y aplica su propio método anti-aliasing.

Opera con principios similares a los de 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 cuadro. En cambio, muestra 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 pasados, y puede considerarse como una implementación TAA avanzada y superior posible gracias a los núcleos tensoriales disponibles. [14]

Nvidia ofrece suavizado de aprendizaje profundo (DLAA). DLAA proporciona los mismos usos de DLSS anti-aliasing impulsados ​​por IA, pero sin ninguna funcionalidad de ampliación o reducción de escala.

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 , que utilizan aceleradores de IA dedicados llamados Tensor Cores . [23] [ verificación fallida ] Los Tensor Cores están disponibles desde la microarquitectura GPU Nvidia Volta , que se utilizó por primera vez en la línea de productos Tesla V100 . [28] Se utilizan para realizar operaciones fusionadas de multiplicación y suma (FMA) que se utilizan ampliamente en cálculos de redes neuronales para aplicar una gran serie de multiplicaciones de pesos, seguidas de la adición de un sesgo. Los núcleos tensoriales pueden operar en los tipos de datos FP16, INT8, INT4 e INT1. Cada núcleo puede realizar 1024 bits de operaciones FMA por reloj, por lo que 1024 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. [29]

Los Tensor Cores utilizan CUDA Warp -Level Primitives en 32 subprocesos paralelos para aprovechar su arquitectura paralela. [30] Un Warp es un conjunto de 32 subprocesos que están configurados para ejecutar la misma instrucción.

Ver también

Referencias

  1. ^ "Tecnología NVIDIA DLSS para un rendimiento increíble". NVIDIA . Consultado el 7 de febrero de 2022 .
  2. ^ "Nvidia RTX DLSS: todo lo que necesitas saber". Tendencias digitales . 2020-02-14 . Consultado el 5 de abril de 2020 . 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. Esto entrena al algoritmo para que pueda producir imágenes igualmente hermosas, pero sin requerir que la tarjeta gráfica trabaje tan duro para hacerlo.
  3. ^ abc "Presentación de NVIDIA DLSS 3". NVIDIA . Consultado el 20 de septiembre de 2022 .
  4. ^ Archer, James (17 de enero de 2022). "Nvidia DLDSR probado: mejores imágenes y mejor rendimiento que DSR". Escopeta de papel piedra . Consultado el 23 de febrero de 2022 .
  5. ^ abc "Nvidia DLSS en 2020: resultados sorprendentes". techspot.com. 2020-02-26 . Consultado el 5 de abril de 2020 .
  6. ^ abc "Battlefield V DLSS probado: demasiado prometido, insuficientemente entregado". techspot.com. 2019-02-19 . Consultado el 6 de abril de 2020 . Por supuesto, esto es de esperarse. DLSS nunca iba a proporcionar la misma calidad de imagen que el 4K nativo, al tiempo que proporcionaba una mejora del rendimiento del 37%. Eso sería magia negra. Pero la diferencia de calidad al comparar los dos es casi ridícula, en lo lejos que está DLSS de la presentación nativa en estas áreas estresantes.
  7. ^ 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 6 de abril de 2020 . Recientemente, dos grandes títulos recibieron soporte NVIDIA DLSS, a saber, Metro Exodus y Battlefield V. Ambos juegos vienen con la implementación DXR (DirectX Raytracing) de NVIDIA que por el momento solo es compatible con las tarjetas GeForce RTX. DLSS hace que estos juegos se puedan reproducir a resoluciones más altas con velocidades de cuadros mucho mejores, aunque hay una disminución notable en la nitidez de la imagen. Ahora, AMD ha atacado a DLSS, diciendo que los métodos AA tradicionales como SMAA y TAA "ofrecen combinaciones superiores de calidad de imagen y rendimiento".
  8. ^ "Nvidia hizo que DLSS fuera muchísimo mejor de manera muy silenciosa". Kotaku . 2020-02-22 . Consultado el 6 de abril de 2020 . El beneficio para la mayoría de las personas es que, generalmente, DLSS viene con una mejora considerable de FPS. Cuánto 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 golpe a la calidad de la imagen.
  9. ^ ab "Remedy's Control vs DLSS 2.0: la mejora de la IA alcanza el siguiente nivel". Eurogamer . 2020-04-04 . Consultado el 5 de abril de 2020 . Por supuesto, esta no es la primera implementación de DLSS que vemos en Control. El juego se envió con una interpretación bastante decente de la tecnología que en realidad no utilizaba el aprendizaje automático.
  10. ^ "La actualización NVIDIA DLSS 2.0 solucionará el gran error de las tarjetas GeForce RTX". techquila.co.in. 2020-03-24 . Consultado el 6 de abril de 2020 . Como 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 y al mismo tiempo conserva velocidades de fotogramas más altas en los juegos con trazado de rayos. Si bien la función no se utilizó tan bien en su primera versión, NVIDIA ahora confía en haber solucionado con éxito todos los problemas que tenía antes.
  11. ^ "NVIDIA DLSS Plugin y Reflex ahora disponibles para Unreal Engine". Blog para desarrolladores de NVIDIA . 2021-02-11 . Consultado el 7 de febrero de 2022 .
  12. ^ "NVIDIA DLSS compatible de forma nativa con Unity 2021.2". Blog para desarrolladores de NVIDIA . 2021-04-14 . Consultado el 7 de febrero de 2022 .
  13. ^ "HW News: Crysis Remastered Ray Tracing, NVIDIA DLSS 2, rumores de Ryzen 3100". 2020-04-19. Archivado desde el original el 26 de septiembre de 2020 . Consultado el 19 de abril de 2020 . El DLSS original requería entrenar la red de IA para cada juego nuevo. DLSS 2.0 se entrena utilizando contenido no específico del juego, ofreciendo 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.
  14. ^ abcdefgh Edward Liu, NVIDIA "DLSS 2.0: reconstrucción de imágenes para renderizado en tiempo real con aprendizaje profundo"
  15. ^ abcd "Verdaderamente de próxima generación: agregar aprendizaje profundo a juegos y gráficos (presentado por NVIDIA)". www.gdcvault.com . Consultado el 7 de febrero de 2022 .
  16. ^ Edelsten, Andrew (30 de agosto de 2019). "NVIDIA DLSS: control y más allá". 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
  17. ^ "Revisión de NVIDIA DLSS 2.0 con control: ¿es esto mágico?". techquila.co.in. 2020-04-05 . Consultado el 6 de abril de 2020 .
  18. ^ abc "El nuevo DLSS 3.5 de Nvidia funciona en todas las GPU RTX para mejorar la calidad del trazado de rayos". El borde. 22 de agosto de 2023 . Consultado el 6 de septiembre de 2023 .
  19. ^ ab "Nvidia anuncia DLSS 3.5 con reconstrucción de rayos, lo que mejora la calidad de RT con un eliminador de ruido capacitado con IA". EuroGamer. 23 de agosto de 2023 . Consultado el 6 de septiembre de 2023 .
  20. ^ "NVIDIA prepara el modo Ultra Quality para DLSS, versión 2.2.9.0 detectada". VideoCardz.com . Consultado el 6 de julio de 2021 .
  21. ^ "DLSS: ¿Qué significa para los desarrolladores de juegos?". Blog para desarrolladores de NVIDIA . 2018-09-19 . Consultado el 7 de febrero de 2022 .
  22. ^ "NVIDIA DLSS: respuestas a sus preguntas". NVIDIA . 2019-02-15 . Consultado el 19 de abril de 2020 . El equipo de DLSS primero extrae muchos cuadros con alias del juego objetivo y luego, para cada uno, generamos un "cuadro perfecto" coincidente mediante supermuestreo o renderizado por acumulación. Estos cuadros emparejados se envían a la supercomputadora de NVIDIA. La supercomputadora entrena el modelo DLSS para reconocer entradas con alias y generar imágenes suavizadas de alta calidad que coincidan lo más posible con el "cuadro perfecto". Luego repetimos el proceso, pero esta vez entrenamos el 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 reproduzca la resolución completa del monitor a velocidades de cuadros más altas.
  23. ^ abc "NVIDIA DLSS 2.0: un gran salto en el renderizado mediante IA". NVIDIA . 2020-03-23 . Consultado el 7 de abril de 2020 .
  24. ^ "¿Qué es Nvidia DLAA? Una explicación anti-aliasing". Tendencias digitales . 2021-09-28 . Consultado el 10 de febrero de 2022 .
  25. ^ Frente de nube pequeña 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". Desarrollador NVIDIA . 2018-11-29 . Consultado el 20 de septiembre de 2022 .
  28. ^ "Sobre tensores, Tensorflow y los últimos 'Tensor Cores' de Nvidia'". tomshardware.com. 2017-04-11 . Consultado el 8 de abril de 2020 .
  29. ^ "GUÍA DE RENDIMIENTO DE TENSOR CORE DL" (PDF) . NVIDIA . Archivado (PDF) desde el original el 11 de noviembre de 2020.
  30. ^ "Uso de primitivas de nivel de deformación CUDA". NVIDIA . 2018-01-15 . Consultado el 8 de abril de 2020 . Las GPU NVIDIA ejecutan grupos de subprocesos conocidos como warps en forma SIMT (Instrucción única, subprocesos múltiples)

enlaces externos