DLSS 3.0 im ersten Praxis-Test: Wie gut ist Nvidias neues Upsampling mit KI-Frameraten-Boost?
Mit der Ada-Lovelace-Generation bietet Nvidia eine Reihe neuer, spannender Features. Der Star der Tech-Offensive ist DLSS 3.0, die dritte Iteration von Nvidias Deep Learning Supersampling. Nun werden ganze Frames von der KI erstellt und zwischen die berechneten geschoben, um die Performance zu steigern. Wie gut funktioniert das tatsächlich?
In diesem Artikel
Nvidias DLSS erfreut sich spätestens seit der zweiten Generation hoher Beliebtheit - mit unter anderem AMDs FSR 2.x sowie Intels XeSS sind dem proprietären Upsampling-Verfahren allerdings jüngst Konkurrenten gegenübergetreten. Und neben den Grafikkartenherstellern gibt es außerdem auch andere Entwickler, die an modernen Temporal-Upsampling-Verfahren arbeiten. Zuletzt hat DLSS 2.x also ein wenig an Vormachtstellung eingebüßt, es wurde also gewissermaßen Zeit für Nvidia, an dieser Stelle mit neuen Ideen für einen frischen Anstoß zu sorgen.
DLSS 3.0: So funktioniert das neue KI-Upsampling
Nvidias jüngster Streich ist also DLSS 3.0. Das neue Deep Learning Supersampling wird von Nvidia als Ultimo der aktuellen, KI-unterstützten Bildaufbereitungen gehandelt, und ohne zu viel zu versprechen, ist DLSS 3.0 sicherlich die aktuell fortschrittlichste Technologie dieser Art. DLSS 3.0 baut auf den Vorgängern auf. DLSS 3.0 basiert also insbesondere auf DLSS 2.0, die generelle Bildqualität der Upsampling-Verfahren ähnelt sich stark, inklusive einiger Auffälligkeiten, darunter etwa die relativ starke Weichzeichnung des Bildes - insbesondere bei höheren Faktoren - sowie hier und dort Neigung zu Schlierenbildung und Moiré-Artefakten. Zwar nutzt Nvidia schon in DLSS 2.0 wie Intel auf der Grafikkarte verbaute Einheiten, um das temporal aufbereitete Bild beim Upsampling zu bereinigen, anders als bei XeSS ist die Schärfung und Säuberung des Bildes aber nicht mehr das KI-Hauptmerkmal von DLSS 3.0.
In DLSS 3.0 werden während des Einsatzes ganze Frames von der KI erzeugt und zwischen die "echten", also tatsächlich von der CPU und Grafikkarte berechneten Bilder eingefügt. Das funktioniert folgendermaßen: Die Grafikkarte berechnet etwa mit DLSS Performance ein Bild in Viertelauflösung, darauf wird dieses als erstes Bild zurückgehalten. Wenn der zweite, ebenfalls mittels DLSS in reduzierter Auflösung erstellte, zweite Frame von der Grafikkarte berechnet wurde, wird der erste, bislang zurückgehaltene Frame, dazu genutzt, aus den Informationen des ersten mithilfe des zweiten Frames einen komplett neuen, von der KI erstellten Frame zu interpolieren.
Darauf wird Frame 1, der generierte KI-Frame (Nvidia nennt diesen "Frame 1.5"), vor dem zweiten Frame ausgegeben. Letzterer dient zugleich wieder als Basis für die folgende KI-Berechnung ("Frame 2.5"). DLSS 3.0 rendert also immer einen Frame, darauf folgt ein KI-Frame, darauf ein weiterer berechneter Frame, dann wieder ein KI-Frame. Jeder zweite Frame mit DLSS 3.0 ist also ein von der KI erzeugtes, "unechtes" Bild, das zwischen tatsächlich gerenderten Frames, aus deren Informationen der KI-Frame erstellt wurde, eingeschoben wird. Vereinfacht sieht das Ganze so aus - Ausgang ist Viertelauflösung, also DLSS Performance. In diesem Fall rendert die Grafikkarte also nur ein Achtel der tatsächlich auf dem Bildschirm sichtbaren Pixel. Der Rest entstammt dem Upsampling und den im Wechsel eingeschobenen KI-Frames.
Quelle: Nvidia
DLSS 3 im ersten Praxis-Test: Wie gut ist Nvidias neues Upsampling mit KI-Frameraten-Boost? (3)
Für diese Technologie erweitert Nvidia die Inputs von DLSS um einen vierten. Neben den drei mittlerweile zum Standard-Repertoire aktueller temporaler Upsampling-Verfahren gehörigen Inputs des Color-, Depth-Buffers und den Motion Vectors nutzt DLSS 3.0 obendrein sogenannte Optical Flow Fields. Dabei handelt es sich um eine unter anderem in der Robotik zur Bewegungserkennung oder bei Video-Codes zur Vermeidung von Artefakten genutzte Technologie. Gegenüber Motion Vectors haben Flow Fields den Vorteil, dass sie deutlich akkurater arbeiten können, etwa Bildpunkte genau erfassen, und so auch Elemente berücksichtigen können, die bei den anderen Upsampling-Verfahren nicht oder nur schlecht erfasst werden können - bestimmte Effekte wie Partikel etwa.
Allerdings setzt Nvidia wiederholt auf eigene Hardware und Herangehensweisen, neben den Tensor Cores außerdem den auf GPUs der RTX-4000er-Reihen verbauten Optical Flow Accellerator. Dieser ist neben den weit ausgebauten Tensor-Einheiten der Grund, weshalb DLSS 3.0 exklusiv mit Nvidia-GPUs ab Ada-Lovelace funktioniert. Der neben Depth- und Color-Buffer sowie den Motion Vectors zusätzliche Input ist obendrein der Grund dafür, dass Entwickler ihre Spiele und Engines spezifisch für DLSS 3.0 optimieren müssen. DLSS 3.0 kann also nicht ganz so umstandslos in Titel integriert werden, die bisher nur DLSS, ein anderes Upsampling-Verfahren oder gar lediglich ein TAA nutzen.

In unserem Fall die Zeit zwischen Eingabe und Verarbeitung+Ausgabe.
Am Ende ist aber wie so vieles alles nur ne Definitionsfrage.
Und ein Danke für die interessanten Gedanken!
Man darf dann ja gespannt sein.
Ich für meinen Teil habs gerne so Lag-frei wie möglich.
Wenn erstmal die 4060 da ist un beweisen kann, dass mit FG Cyberpunk 2077 in UHD gut spielbar darstellen kann (oder eben nicht), dann wissen wir hoffentlich mehr. Oder vielleicht kann [Ins Forum, um diesen Inhalt zu sehen] mal tief im Prozessor-Archiv wühlen. Aus der Hüfte geschossen würde ich sagen, dass Frame Generation eigentlich bei CPU-Limitierung genauso gut oder schlecht funktioniert, wie im CPU-Limit und ich glaube CPUs, die Cyberpunk mit 20-30 Fps darstellen, gibt es durchaus.
Bei Double-Buffering dagegen verdoppelt sich der Input-Lag realistischerweise um einen Frame = zwei Zyklen, denn man kann unmöglich während der Anzeige eines Bilds so schnell reagieren, dass die Eingabe schon im folgenden, bereits in Berechnung befindlichen Bild berücksichtigt wird. Und für die Berechnung des ersten Bildes sollte man fairerweise auch zwei Zyklen statt einem einplanen.
Bei DLSS 3.0 hat die Berücksichtigung der Reaktionszeit ähnlich drastische Auswirkungen wie bei Double Buffering: Da die Ausgabe des ersten Frames verzögert erfolgt und wir keine Zauberer sind, kann die Reaktion des Spielers nicht mehr rechtzeitig für den übernächsten Frame erfolgen, sondern erst für den über-übernächsten. Das heißt Frame Generation erzeugt gegenüber Triple-Bffering nicht nur einen weiteren Zyklen mehr Output-Lag, sondern zusätzliche zwei Zyklen Input-Lag gegenüber meiner ursprünglichen Schätzung und somit auch gegenüber Triple-Buffering. Das ist genauso mieß wie der Worst-Case bei Double-Buffering mit einem Drittel der (interpolierten) Framerate. Dazu verschlimmert sich auch noch die Zeit, bis man überhaupt reagieren kann, gegenüber Triple-Buffering genauso stark, wie vom Double-Buffer-Best-Case zu Triple-Buffering.
Im Anhang habe ich das mal mit den benötigten Puffern in der GPU darzustellen versucht.
Anmerkung:
Die Begriffswahl ist dem gängigen Gebrauch angepasst, der aber irgendwie reichlich bescheuert ist. Warum nutzen wir eigentlich "Input-Lag" für den Zeitraum von einer Spielereingabe (z.B. Mausbewegung) bis zu deren Darstellung, obwohl es sich um das Warten auf eine Ausgabe handelt? Der oben beschrieben Output-Lag wiederum gibt die Zeit an, bis der Spieler endlich eine Eingabe auf ein Ingame-Ereignis tätigt.
Konntest Du das auch schon im Praxistest bestätigen?