NVIDIA DLSS 3 llegaría a las RTX 30 y RTX 20, pero no sería tan rápido

Aunque ya lo comentamos en los sucesivos artículos de rendimiento y tecnología de DLSS 3 o DLSS 3.0, como cada uno guste, las críticas se están volviendo una vez más contra NVIDIA. El lanzamiento de las RTX 40 no está haciendo más que dar titulares y no para bien, así que dejar esta nueva versión del Deep Learning Super Sampling solo para las nuevas GPU parece que está sentando demasiado mal en la sede de los de Huang. Por ello, varios empleados, programadores e incluso el Vicepresidente de Investigación de Aprendizaje Profundo de la marca ha dejado caer que podríamos ver DLSS 3 en las RTX 30 y RTX 20.

Sin duda, las novedades con esta nueva versión del algoritmo de NVIDIA tiene mucho que ver con la 4ª versión de los Tensor Cores de las RTX 40, pero es mejor que esto lo explique el propio Bryan Catanzaro para entender mejor las limitaciones entre software y hardware.

La exclusividad tiene un precio y ¿un tiempo?

NVIDIA DLSS 3 Tecnologia Características

Pues el precio ya lo sabemos de sobra, el tiempo no está nada claro, porque no hablamos de un desarrollo para una arquitectura solamente, aunque al principio será así como bien comenta el propio Catanzaro:

DLSS 3 ha sido un trabajo de amor en la investigación de aprendizaje profundo aplicado desde que se fundó el grupo. No puedo esperar a que la gente juegue con él. DLSS 3 se basa en el Optical Flow Accelerator (acelerador de flujo óptico u OFA) que se ha mejorado significativamente en Ada sobre Ampere: es más rápido y de mayor calidad. 

OFA existe en las GPU desde Turing. Sin embargo, es significativamente más rápido y de mayor calidad en Ada, y confiamos en él para DLSS 3. Los clientes de [RTX 2000 y 3000] sentirían que DLSS 3 es lento, tiene mala calidad de imagen y no aumenta los FPS.

Y claro, esta es una limitación que parece que las dos series de GPU anteriores de RTX no pueden correr con la suficiente soltura, aunque NVIDIA no ha explicado los cambios internos realmente de los Tensor Core de 4ª Gen. Pero, Catanzaro deja una puerta abierta muy interesante.

DLSS 3 para las RTX 30 y RTX 20, ¿es posible? ¿Cuándo?

DLSS-3-rendimiento-performance

Pues no hay fecha, de hecho, es solo una posibilidad en el aire y no una confirmación como tal, pero el Vicepresidente echa leña al fuego ante las críticas de la exclusividad:

En teoría, es posible que con investigación e ingeniería adicionales podamos hacer que esta tecnología funcione en otras tarjetas, aunque no proporcionaría tantos beneficios. La versión actual solo funciona en tarjetas de la serie 4000.

El problema es que parece que DLSS 3 aportaría un extra de latencia que mataría el rendimiento y la experiencia de juego, por lo que parece que la solución pasa por Reflex:

NVIDIA Reflex elimina una latencia significativa del pipeline de renderizado de los juegos al eliminar la cola de renderizado y sincronizar más estrechamente la CPU y la GPU. La combinación de NVIDIA Reflex y DLSS3 proporciona FPS mucho más rápido con aproximadamente la misma latencia del sistema. El runtime NVIDIA Remix es un "motor de juego inverso" bastante complicado que encuentra objetos en las draw call, lo que nos permite derivar vectores de movimiento.

El runtime no toma ninguna decisión artística, funciona con los recursos originales y de reemplazo que se le proporcionan. Los modders pueden optar por utilizar herramientas de inteligencia artificial para mejorar el material o hacer todo a mano. Las partículas y las decals"simplemente" funcionan. Algunos hacks de DX necesitan un procesamiento especial o deben desactivarse.

En otras palabras, DLSS 3 va ligado a Reflex si se quiere conservar valores de latencia más o menos iguales y aumentar con ello los FPS, mientras que implementarlo con las RTX 30 y RTX 20 va a suponer un esfuerzo extra de programación tanto para NVIDIA como para los desarrolladores. Dicho esto, la puerta está abierta, pero tardará en llegar casi con total seguridad.

El problema de Deep Learning Super Sampling 3

NVIDIA DLSS 3 Funcionamiento

El problema que no comenta Catanzaro es la interpolación de cuadros, o lo que es igual, DLSS 3 aumenta los FPS porque genera fotogramas falsos y completos que intercala entre los reales. Es una simulación de rendimiento mejorado mediante IA y por lo tanto NVIDIA ya no se limita a reducir resolución para escalarla más tarde, ya directamente crea el FPS.

Teniendo en cuenta que OFA ya estaba presente en las RTX 30 y RTX 20 para DLSS en sus diferentes versiones, el problema como es habitual en el hardware son los llamados Tiers, es decir, las diferentes características que se le añaden al hardware o al software según este avanza y que lo anterior no lo tiene.

NVIDIA DLSS Tier hardware software

El problema es que todavía no sabemos que tier usa DLSS 3 y cuáles son sus mejoras, NVIDIA no lo ha especificado, pero lo que intenta hacer es reducir al mínimo el uso de CPU, ya que si esta última (la CPU) fuese un cuello de botella, la OFA de las RTX 40 crearía un Frame de intercalado para paliar la latencia y como es totalmente independiente del pipeline de renderizado de la GPU o de la información proveniente de la CPU, rellena ese "lag", esa latencia con un FPS o más (según se necesite).

Por lo tanto, en este caso lo que haría sería no perder rendimiento, quizás no ganarlo, pero se mantendría. Entonces, es todo maravilloso y genial, pues no, hay un problema y también tiene que ver con la latencia, como suele pasar en estos casos.

NVIDIA Reflex Latencia DLSS 3

El problema viene desde la generación de Frames Futuros o Future Frames, que es renderizado para adelantarse a lo que hará el pipeline. Como es predictivo, como hacen en parte las CPU con los registros, estaríamos metiendo un fotograma a tiempo cuando ya se ha generado un frame futuro, ergo este tendría que volver a ser calculado porque la OFA ha incluido su FPS.

¿Cómo se solventa esto? Con músculo, como suele ocurrir en estos casos. De ahí que NVIDIA tenga una cuarta generación de Tensor Core y haya aumentado tanto el número de Shaders e incluido un motor compartido de enteros y flotante.

Ahora podemos entender la diapositiva de la compañía donde se hablaba del ratio 16:1, que es el doble de lo que hace Ampere ahora mismo (8:1) y por eso no se puede interpolar con DLSS 3 un frame en las RTX 30 y RTX 20, porque implica actualmente un empeoramiento en vez de una mejora.

OFA-DLSS-3-Ada-Lovelace-vs-Ampere-vs-Turing

NVIDIA y los desarrolladores tienen que rizar el rizo con la potencia de los Tensor Cores de esa generación si quieren conseguir ese Frame intercalado sin perjudicar la latencia. Además, aunque lo consigan, tienen que tener en cuenta que la cantidad de datos generados van a ir a parar a la caché L2, y en este caso es 16 veces menor en las RTX 30 y 17,45 veces menor en el caso de las RTX 20 (RTX 3090 Ti y RTX 2080 Ti para ser específicos frente a la RTX 4090).

¿Cómo lo van a hacer sin perder rendimiento y poder ganarlo? Realmente complejo, sin duda. Primero tienen que evitar el cuello de botella que supone una menor caché L2, que, aunque no hay datos del impacto de DLSS 3 vs MB, seguro que tiene mucho que decir, y una vez que consigan esto hay que optimizar la OFA para reducir mucho la carga de trabajo. Puede que ambas partes vayan de la mano, pero lo que es seguro es que no será ni fácil ni rápido conseguir resultados, si es que llegan.