Nvidia DLSS - Special, Hardware, PC

Nvidia DLSS
27.10.2021, Marcel Kleffmann

Special: Nvidia DLSS

Performance-Turbo dank KI

Wie schnell oder wie flüssig ein Spiel läuft, hängt zu einem großen Teil von der Grafikpracht, der Optimierung je nach Plattform und natürlich von der verfügbaren Hardware ab. Sowohl die Auflösung als auch die gewählten Grafikoptionen zur Festlegung der Qualität (Raytracing, Lichteffekte, volumetrische Beleuchtung, Kantenglättung, Sichtweite etc.) beeinflussen die Performance und damit den wahrgenommenen Spielfluss, der in der Regel durch die Bilder pro Sekunde (fps) beschrieben wird. 30 fps fühlt sich zwar flüssig an, aber wenn man das Spielgefühl direkt mit 60 fps oder mehr vergleicht, dann nehmen Reaktivität und Geschmeidigkeit mit steigender fps-Rate zu - wobei es natürlich auch auf die Stabilität der Bildwiederholrate (Ruckler), möglichst gleichmäßige Frametimes und auf das Spielgenre (Spiellogik) ankommt.

DLSS von Nvidia verspricht einen ordentlichen Schub im Bereich der Bildwiederholrate, vor allem wenn Raytracing oder andere Leistungsfresser bei den Grafikoptionen eingeschaltet werden. Es ist ein Upscaling-Verfahren und rechnet daher ein Bild von einer niedrigen Auflösung auf eine höhere Auflösung "hoch" und erhält bzw. ergänzt dabei möglichst viele Details. So wird das Spiel in einer niedrigen Auflösung gerendert, was meist viel Rechenleistung gespart. Danach wird dieses Bild hochskaliert und mit KI-Methoden grafisch verbessert.

Was macht DLSS?

Ist die Zielvorgabe, ein natives 4K-Bild (3840x2160; Seitenverhältnis: 16:9) zu realisieren, so müssen 8.294.400 Pixel berechnet werden. Möchte man ein Full-HD-Bild (1920x1080: 2.073.600 Pixel) auf die 4K-Auflösung "aufblasen", dann müssen irgendwie mehr als 6 Mio. Pixel nachträglich gefüllt werden. Warum sollte man überhaupt ein Bild hochskalieren wollen? Je niedriger die Auflösung eines gerenderten Bildes ist, desto weniger Leistung oder Rechen-/Renderaufwand ist erforderlich. So können im Regelfall die Frames/Bilder in 1080p deutlich schneller als in 4K berechnet werden, was sich logischerweise auf die mögliche Bilderwiederholrate (in Hz oder fps: Bilder pro Sekunde) auswirkt. Stellt man sich noch vor, dass 30, 60 oder gar 144 Bilder pro Sekunde für ein flüssiges Spielerlebnis realisiert werden sollen, kann man sich in etwa die Komplexität solch eines Rechengeschehens vorstellen.

Spiele mit aufwändigen Raytracing-Effekten (hier: LEGO Builder's Journey) profitieren enorm von dem Performance-Boost durch DLSS.
Um die fehlenden Pixel bei einer Hochskalierung wie bei einem Lückentext zu füllen, gibt es mehrere Methoden, die mehr Rechenleistung sparen, als wenn jeder Pixel einzeln berechnet werden würde.

Wer kein Interesse an den Hintergründen hat, sollte gleich zu den Benchmarks ab Seite 4 springen.

Woher kommen die fehlenden Pixel?

"Einfache" Ansätze versuchen z.B. die Farbwerte "fehlender" Pixel anhand der in der Umgebung befindlichen Pixel zu nehmen (Interpolation benachbarter Farbwerte) und ggf. einen Farbverlauf zwischen den vorhandenen Pixeln zu erstellen, um die Freiräume zu schließen, was das Endergebnis jedoch stark weichzeichnet und unscharf macht. Generell gilt: Je mehr Informationen zur Lückenfüllung genutzt werden können, desto besser kann das Ergebnis ausfallen.

Eine andere Methode ist das Checkerboard Rendering , das Bildelemente beim Rendern wie bei einem Schachbrett entfernt und später die "leeren Felder" wieder durch Nachbarschaftsvergleiche füllt. Abermals gilt, dass die Farbe des fehlenden Pixels die Durchschnittsfarbe der umgebenden Pixel ist, wobei die von Sony verwendete Methode deutlich komplexer ist (Details bei Medium.com ).  

Die fehlenden Pixel für eine Hochskalierung von einer künstlichen Intelligenz füllen zu lassen, diese Methode ist die Grundlage von DLSS. Die Hochskalierung plus Kantenglättung wird von einem speziell trainierten KI-System übernommen, welches die Hochskalierung (vereinfacht gesagt) anhand von sehr großen Ausgangsbildern erlernt hat. Die erlernten Elemente und Regeln können dann dazu genutzt werden, um (dem KI-System unbekannte) Bilder hochzuskalieren und die Freiräume mit hoffentlich sinnvollen Pixelfarben zu füllen.

Künstliche Intelligenz im Einsatz

Deep Learning ist eine Methode des maschinellen Lernens, die auf künstlichen neuronalen Netzen basiert. Diese Netzwerke bekommen möglichst viele Daten als Input serviert und bilden auf Basis des internen Lernvorgangs selbstständig zahlreiche (versteckte) Zwischenschichten aus und liefern abschließend eine oder mehrere Ausgaben.  

Hintergründe: Was ist DLSS?

DLSS steht für Deep Learning Super Sampling. Die beiden Begriffe Deep Learning und Super Sampling sollen zunächst kurz erklärt werden. Es gilt: Die nachfolgenden Darstellungen sind verkürzt und vereinfacht.

Deep Learning

Bei DLSS wird das neuronale Netzwerk mit sehr großen Bilddaten (hohe Auflösung) gefüttert, um Bildinhalte zu lernen, die für eine Hochskalierung relevant sind. So erlernt es selbstständig versteckte Zusammenhänge oder Merkmale in den Daten, die immer wieder mit dem "Ground Truth" verglichen und optimiert werden. Der "Ground Truth" ist ein extrem großes Ausgangsbild (16K-Auflösung). Die Ausgaben des KI-Netzwerks (2K-Auflösung) werden immer wieder mit diesem Ausgangsbild verglichen. Dieser sehr rechenaufwändige Vorgang wird etliche Male wiederholt. Das geschieht bei Supercomputern bei Nvidia und musste vor DLSS-Version 2.0 für jedes Spiel neu trainiert werden. Mit Version 2.0 wurde auf "ein Bild für alles" umgestellt, was die Implementierung für die Entwickler vereinfacht hat. 
 

Die "erlernten" Merkmale werden zusammengefasst und z.B. als Profile im Grafikkartentreiber (NGX: Neural Graphics Framework) gespeichert und auf die vom Grafikprozessor erzeugten Bilder via Upscaling-Software angewandt. Auf dem heimischen Rechner wird also kein Training für Deep Learning durchgeführt, vielmehr werden die auf dem Nvidia-Supercomputer erlernten Ergebnisse angewandt.  

So stellt Nvidia die Funktionsweise von DLSS und das Training bzw. den KI-Lernvorgang vor.
Super Sampling ist eine Methode aus dem Bereich der Kantenglättung (Anti-Aliasing), um gezackte oder pixelige Kanten zu reduzieren, die oft wie Treppeneffekte aussehen (Quelle: Viscircle ). Die Idee hinter Super Sampling ist (vereinfacht gesagt), dass ein Bild in einer höheren Auflösung als die Ausgabe-/Zielauflösung berechnet wird - was natürlich deutlich mehr Leistung kostet. Im Anschluss wird die Auflösung wieder reduziert, wobei zur Berechnung der Farbwerte der einzelnen Pixel jeweils gemittelte Farbwerte herangezogen werden, die so sanftere Übergänge entlang einer Farbkante erzeugen. Bei Super Sampling gibt es auch eine "temporale" Variante, die nicht auf der räumlichen Position von Pixeln basiert, sondern auf ihrem zeitlichen Verlauf - also auf Pixeln, die aus dem vorher berechneten Bild in die Berechnung des neuen Bildes einbezogen werden. Durch diese zusätzlichen Zeit-Informationen werden Ghosting-Artefakte (schattenhafte Bewegungen) reduziert.

Super Sampling

Die früheren Versionen von DLSS hatten Probleme mit Bewegungen hinter Gitter-Strukturen und generell bei Haaren. Hier am Beispiel von Control. Ganz unten kam DLSS 2.0 zum Einsatz.
Bei DLSS kommen an dieser Stelle die Bewegungsvektoren ins Spiel, also die Bewegungsrichtung von Pixeln, die zusätzlich zur Projektion und zur Berechnung des neuen Bildes genutzt werden. Somit stehen beim Upscaling-Vorgang mehr Informationen bei sich bewegenden Objekten zur Verfügung, was die Qualität und die Stabilität des Endbildes verbessert.

Bewegungsvektoren

In Control konnte man z.B. verwaschene und unscharfe Haare bei der Hauptfigur und unscharfe bzw. flimmernde Netz-/Gitterstrukturen bei der Nutzung von DLSS 1.X erkennen. Nach dem Upgrade auf Version 2.0 gehören solche Fehler oft der Vergangenheit an, da der DLSS-Upscaler zusätzlich mit den Bewegungsvektoren gefüttert wird. Allerdings müssen die Spiele-Entwickler diese Daten, die meist schon irgendwo im Spiel bzw. in der Engine vorliegen (z.B. bei TAA), entsprechend weitergeben, was eine händlische Implementierung von DLSS nötig macht - wobei in der Zwischenzeit schon ein DLSS-Plug-Ins für die Unreal Engine 4 zur Verfügung steht.

Soweit zu den Hintergründen. Wie genau lernt jetzt der Supercomputer die Merkmale, die für das Upscaling notwendig sind und welche Input-Daten werden dafür genutzt? Einmal sind da die niedrig aufgelösten (native Auflösung) und mit Aliasing versehenen Bilder, die von der Spiel-Engine gerendert werden - also Frames ohne Kantenglättung. Dazu kommen die Bewegungsvektoren der Pixel, ebenfalls mit niedriger Auflösung aus denselben Frames. Außerdem werden die Bewegungsvektoren des vorher berechneten, hochskalierten Bildes verwendet, um abzuschätzen, wie das nächste Bild aussehen wird. Dieser Prozess heißt "temporales Feedback", da Informationen aus der Vergangenheit genutzt werden, um Informationen für die Zukunft zu erhalten. Da hier Informationen aus dem hochaufgelösten Bild mit einbezogen werden (Super Sampling), wird an dieser Stelle die Grundlage für die Kantenglättung gelegt.

Wie funktioniert das?

Diese ganzen Informationen landen als Input in dem neuronalen KI-Netzwerk, in einem so genannten "Convolutional Autoencoder" (Details ). Dieses neuronale Netz verwendet das aktuelle Bild mit niedriger Auflösung (ohne Kantenglättung und mit Bewegungsvektoren) und das vorherige Bild mit hoher Auflösung, um Pixel für Pixel ein höheraufgelöstes Bild zu erzeugen.

So stellt Nvidia die Funktionsweise von DLSS und das Training bzw. den KI-Lernvorgang vor.
Während des Trainingsprozesses wird das berechnete Upscaling-Produkt mit einem offline gerenderten Referenzbild ("Ground Truth" in 16K) verglichen. Der Unterschied zwischen dem berechneten Bild und dem Original wird an das Netzwerk zurückgemeldet, damit es weiter lernen und die Ergebnisse verbessern kann. Dieser Prozess wird auf dem Supercomputer zehntausende Male wiederholt, bis das Netzwerk zufriedenstellende Bilder erstellt. Sobald das neuronale Netzwerk trainiert ist, wird das Ergebnis bzw. das erlernte KI-Modell durch das Neural Graphics Framework (NGX) über den Game-Ready-Treiber und OTA-Updates ausgeliefert.  

Umsetzung mit RTX-Grafikkarten

Trotz Raytracing-Reflexionen, 4K-Auflösung und maximalen Grafikdetails läuft Doom Eternal dank DLSS mehr als butterweich und mit über 100 fps.
Mit den Tensor-Kernen, die in den RTX-Grafikprozessoren (Architekturen: Turing und Ampere; RTX-Reihe) verbaut sind, kann das KI-Modell gleichzeitig mit dem Spiel in Echtzeit ausgeführt werden. Nvidia erklärt, dass die für das KI-gestützte Upscaling notwendige Rechenleitung nur durch die Tensor Cores der RTX-GPUs möglich sei. Dieser Chip-Bestandteil ist auf die Beschleunigung von KI-gestützten Berechnungen ausgelegt.

Auch AMD FidelityFX Super Resolution (FSR) ist ein Upscaling-Verfahren, um den Rechenaufwand zu reduzieren und die Bildwiederholrate zu steigern. In diesem Upscaling-Prozess ist ein Algorithmus eingeschaltet, der die Bildqualität optimiert. Die Kantenglättung (Anti-Aliasing) wiederum erfolgt beim Ausgangsbild. Der Upscaling-Prozess analysiert das Quellbild, um Kanten zu erkennen und rekonstruiert diese dann in hoher Auflösung in der höheren Zielauflösung. Anschließend verbessert ein Schärfungsdurchgang die Bildqualität weiter, indem Pixeldetails verbessert werden. Beide Durchgänge finden in einem einzigen Schritt in der Grafikpipeline eines Spiels statt. FSR muss von Entwicklern in ein Spiel integriert werden, damit es funktioniert. KI-Elemente werden nicht eingesetzt.

Exkurs: AMD FidelityFX Super Resolution (FSR)

Im Vergleich zum einfachen Punkt- oder bilinearen Upscaling steigt die Bildqualität bei FSR deutlich. Im Vergleich zu DLSS hinkt FSR im Qualitätsbereich etwas hinterher, da das KI-gestützte Upscaling von Nvidia sogar mehr Details erzeugen und für eine größere Schärfe sorgen kann - teilweise sogar schärfer als beim Original. Ein Grund für die bessere Bildqualität sind die temporalen Komponenten, die DLSS nutzt, also die einbezogenen Bewegungsvektoren. Dennoch ist auch der Leistungsschub, den FSR verspricht, überaus beachtlich und im Modus "Ultra-Qualität" kann sich das Resultat meist gut sehen lassen (siehe Seite 5).

Wie sich DLSS auf die Bildwiederholrate in verschiedenen Spielen auswirkt, haben wir in mehreren Benchmarks überprüft und die Ergebnisse auf den folgenden Diagrammen festgehalten. Die meisten Testläufe erfolgten in 4K-Auflösung mit maximalen Grafikeinstellungen und DLSS auf "Qualität".

Performance-Turbo?

Die Ergebnisse sind eindeutig. DLSS schiebt die Bildwiederholrate deutlich an. Bei Minecraft wird die Bildwiederholrate auf allen getesteten Grafikkarten mehr als verdoppelt. Auch bei Control und Cyberpunk 2077 sieht es ähnlich aus - gerade die "kleineren" RTX-Modelle profiteren hier stark, was sich ebenso bei Call of Duty: Black Ops Cold War zeigt, wobei längst nicht alle Grafikkarten für den 4K-Betrieb laut Hersteller vorgesehen sind. Im Benchmark der Metro Exodus Enhanced Edition hebt DLSS die Performance um knapp 50 Prozent an - ähnlich sieht es bei Watch Dogs Legion und CoD aus. Bei Chernobylite liegt der Zugewinn je nach RTX-Grafikkarte zwischen 30 und 40 Prozent. Bei Red Dead Redemption 2 beträgt der fps-Zuwachs ca. 20 Prozent.

Bei den Benchmarks der Metro Exodus Enhanced Edition erkennt man ebenfalls, dass DLSS erst auf höheren Auflösungen seine Muskeln zeigt und für mehr Bilder pro Sekunde sorgt. Eine Liste mit Spielen und Programmen, die DLSS unterstützen, findet ihr hier . Auch etwaige Raytracing-Unterstützung ist dort verzeichnet.

Die nachfolgenden Testläufe wurden durch Hardware-Leihgaben von Nvidia und LG ermöglicht. Nvidia stellte uns fünf RTX-Grafikkarten (2080 Ti, 3060 Ti, 3070, 3080, 3080 Ti) zur Verfügung, die nach diesem Bericht wieder an den Hersteller zurückgeschickt wurden. LG stellte in dem Kontext einen 4K-Monitor bereit, und zwar den 27GN950-B (27 Zoll Nano IPS Display mit 1 ms (GtG), G-Sync kompatibel, 144 Hz, VESA DisplayHDR600). Zum Monitor: Mit der allgemeinen Bildqualität, den kräftigen Farben, dem schnellen Panel und keinem nennenswerten Backlight-Bleeding war ich sehr zufrieden, wobei die 27-Zoll-Bildschirmdiagonale für 4K schon etwas "klein" wirkte. Nicht so berauschend waren hingegen der Stromverbrauch (Energieeffizienzklasse G (von A bis G)), die Wärmeentwicklung und die zirkuläre Beleuchtung auf der Rückseite. Schade, dass das knapp 1.000 Euro teure Gerät gerade kaum verfügbar ist. Seitens der redaktionellen Berichterstattung und Aufbereitung wurden uns weder von Nvidia noch von LG irgendwelche Vorgaben gemacht.

Transparenz: Testläufe, Benchmarks & Co.

DLSS bietet mehrere Qualitätseinstellungen, welche die Relation zwischen nativer Auflösung und Zielauflösung verändern. Nvidia empfielt den Qualitätsmodus für 1920x1080 und 2560x1440, den Performance-Modus für 3840x2160 und den Ultra-Performance-Modus für 7680x4320 (jeweils Endauflösung). Die fps-Auswirkungen der verschiedenen Modi sollen die folgenden Diagramme illustrieren.

Bildqualität?

Generell ist die Bildqualität, die DLSS auf den Einstellungen "Qualität" und "Ausgewogen" (mit leichten Abstrichen) erzeugt, hervorragend und kann weitgehend mit der Bildqualität "ohne DLSS" aufnehmen. Bizarrerweise sind manche Objekte nach der Hochskalierung dank der KI-Nachbearbeitung sogar schärfer als auf dem Ausgangsbild ohne DLSS. Dennoch gibt es hier und da kleinere Rausch-Artefakte (CP2077), Dithering z.B. bei Schatten in Chernobylite oder flimmernde Kanten zu beobachten. Letzteres sieht man z.B. in Guardians of the Galaxy. Stärker sieht man diese Macken und andere Fehler bei "Performance" und vor allem bei "Ultra-Performance". Die DLSS-Bildqualität hatten wir bei Outriders etwas genauer betrachtet. DLSS 1.0, die Version, die in den ersten Spielen (2018) zum Einsatz kam, produzierte noch weiteraus mehr Grafikfehler, vor allem bei Haaren oder Gitterstrukturen (Video-Vergleich ).

In der aktuellsten Version von DLSS gibt es neuerdings einen Schärferegler, mit dem man manuell die Schärfe justieren kann, z.B. in Guardians of the Galaxy oder F.I.S.T.: Forged in Shadow Torch.



Last but not least findet ihr ganz unten einen Vergleich von DLSS mit FSR in Chernobylite. Während FSR 1.0 bei der Bildwiederholrate vor DLSS liegt, ist die Bildqualität bei der Lösung von DLSS etwas besser und ruhiger.

DLSS ist schon fast ein "Game-Changer". Die Steigerung der Bildwiederholrate durch das KI-optimierte Upscaling ist überaus beeindruckend und verspricht auf den höheren Qualitätsstufen sogar kaum Einschränkungen bei der Grafikqualität, stellenweise ist das Bild sogar schärfer als in der nativen Auflösung. Hier und da schleichen sich aber auch kleinere Bildfehler ein (Rauschen, Dithering, Kantenflimmern), die Nvidia sukzessive in neuen DLSS-Versionen aus der Welt schaffen will. Gerade im Zusammenspiel mit aufwändigen Grafikeffekten wie z.B. Raytracing macht DLSS den Unterschied und sorgt meist dafür, dass diese Titel mit entsprechenden Effekten überhaupt erst gut spielbar sind. DLSS entfaltet sein Potenzial vornehmlich auf höheren Auflösungen, also ab 1440p und aufwärts.

Fazit und Ausblick

Durch die Erleichterung der Implementierung der Technologie dank Plugins für die Game-Engines bleibt zu hoffen, dass mehr und mehr Spieleentwickler in Zukunft auf diese Technologie setzen werden, denn eine bessere fps-Performance bei hoher Bildqualität ist quasi eine Win-Win-Situation - allerdings ist DLSS nur auf RTX-Grafikkarten von Nvidia verfügbar, da spezielle KI-Kerne in der GPU nötig sind. AMD setzt mit FSR auf eine etwas simplere, jedoch gute Upscaling-Lösung ohne KI-Unterstützung, während Intel bei seinen zukünftigen Grafikkarten mit XeSS ebenfalls von KI-Power Gebrauch machen wird. Es bleibt also spannend in diesem Bereich, der ebenfalls für Konsolen-Hersteller und Virtual Reality (wenige VR-Titel nutzen bisher DLSS) interessant sein dürfte.

 
Kommentare
Eirulan

gestrige Kolumne..?

vor 2 Jahren
AdrianVeidt

Oh.. Abschiedsvideo und Kolumne von gestern wieder gelöscht?

vor 2 Jahren
Chibiterasu

Danke für den Artikel!

Für mich bleibt das spannend, dass ein Prozedere mit dem Pixel durch eine KI dazu"erfunden" werden, effizienter ist als das Ding einfach höher aufgelöst zu berechnen. Versteh schon langsam warum, aber es bleibt cool.
Werde ich mit meiner 3060 TI sicher viel nutzen.

vor 2 Jahren
Vin Dos

Oh ja, stimmt...dieses AMD Fidelity Ding.

Edit: War natürlich das beste Beispiel . Hab nochmals ein bißchen gegoogled und auf PCGH ein paar gute Beispiele gefunden. In dem Text wird ein "brößeln" erwähnt. Das ist eigentlich genau der Effekt den ich beschreiben wollte.

https://www.pcgameshardware.de/Nvidia-G ... 1346257/2/

Zuletzt bearbeitet vor 2 Jahren

vor 2 Jahren
Leon-x

Es funktioniert bei mir bei vielen Spielen auch gut, so dass ich nichts auszusetzen habe. Allerdings jetzt z.B. bei FarCry6 sehe ich in der Vegetation dann doch einen Unterschied zwischen DLSSS AN/AUS, zumindest bilde ich mir ein dass es alles pixeliger wirkt (ähnlich wie die ganzen "Bildverbesserer" am TV Artefakte erzeugen).
Glaube kaum dass du bei Far Cry 6 da einen Unterschied siehst. Ansonsten musst du mir erklären wie du DLSS in einem AMD gesponsortem Titel zum Laufen gebracht hast.

Far Cry 6 hat AMDs FSR was aber nicht so arbeitet wie DLSS. Häufig auch unschärfer und weniger detailiert ist mit Version 1.0. Funktioniert bei Spielen mit klaren Kanten besser da FSR keine temporale Komponente wie DLSS nutzt.

vor 2 Jahren