Raytracing für GTX-Grafikkarten: Nvidia veröffentlicht DXR-Treiber plus drei Raytracing-Techdemos
Jetzt offiziell: Mit dem neuen Treiber Geforce 425.31 schaltet Nvidia die Raytracing-Funktionen der RTX-Grafikkarten für die GTX-10- und GTX-16-Reihen frei. Um diesen Schritt gebührend zu feiern, veröffentlichen die Kalifornier parallel eine Reihe sehenswerter Raytracing-Techdemos - darunter den Showcase Atomic Heart. PC Games Hardware prüft, wie sich Pascal und Turing "light" beim Raytracing schlagen.
In diesem Artikel
Raytracing und KI-gestütztes Anti-Aliasing: Darum dreht sich bei Nvidia alles seit der Turing-Präsentation im August 2018. Zwar lagen einige Monate zwischen Vorstellung und Umsetzung, mittlerweile ziehen jedoch einige Spiele Nutzen aus den neuen Funktionen. Neben Battlefield 5 und Metro Exodus ist neuerdings auch Shadow of the Tomb Raider in der Lage, von via Raytracing berechneten Effekten zu profitieren. Die Grundvoraussetzung dafür ist eine Geforce-Grafikkarte der RTX-20-Reihe - bis heute.
Im März hat Nvidia ein Treiber-Update versprochen, das Raytracing auf Grafikkarten ohne entsprechende Hardware-Einheiten freischaltet. Nun lassen die Kalifornier Taten folgen, der neue Treiber lehrt Grafikkarten der 10er und 16er-Serien die Strahlenverfolgung im virtuellen Raum. Die folgenden GTX-Grafikkarten sind mit dem neuen Treiber voll zu DirectX 12 Raytracing, kurz DXR, kompatibel:
- Titan Xp
- Titan X (Pascal)
- Geforce GTX 1660 Ti
- Geforce GTX 1660
- Geforce GTX 1080 Ti
- Geforce GTX 1080
- Geforce GTX 1070 Ti
- Geforce GTX 1070
- Geforce GTX 1060 6GB
- Notebooks mit entsprechenden GPUs und 6+ GiB Grafikspeicher
Die von Nvidia gezogene Grenze ist offensichtlich: Um DXR zu verwenden, sind mindestens eine Pascal-Mittelklasse-GPU sowie 6 GiByte Speicher notwendig. Die GTX 1060 3GB, GTX 1050 Ti und kleiner sind von DXR ausgenommen. Nvidia begründet die Entscheidung mit den hohen Anforderungen an die Grafik-Hardware: Um Raytracing zu berechnen, wird reichlich Rechenzeit benötigt und die hinzukommenden Effekte benötigen Teile des Framebuffers. Eine sinnvolle Nutzung bedingt somit ein Mindestmaß an Leistung und Kapazität.
Um Missverständnissen vorzubeugen: Der vorliegende Artikel widmet sich dem offiziellen Software-DXR-Treiber von Nvidia. Leser unserer Abhandlung im Rahmen des 1. April werden einige Textpassagen wiedererkennen. Besonders spannend ist die Verknüpfung der damals angestellten Benchmarks mit dem Status quo.
Game Ready Driver: DXR auf GTX
Die Basis für Raytracing befindet sich seit Jahren im Treiber, allerdings losgelöst vom wesentlich später eingeführten DXR-Standard innerhalb von DirectX 12. Nvidia gibt an, seit gut zehn Jahren an Raytracing zu forschen; die erste ernsthafte Umsetzung mit partieller Hardware-Unterstützung erfolgte schließlich 2017 mit dem Volta GV100. Dieser diente vielen Entwicklern als Testschlitten, um Raytracing-Algorithmen zu entwickeln und ist nach wie vor als HPC-Beschleuniger am Markt.
Mit der Turing-Architektur ist Raytracing, das Nvidia zusammen mit weiteren Funktionen als RTX vermarktet, im Massenmarkt angekommen - sofern man die Preishürde von rund 350 Euro bis hinauf zu 2.700 Euro (RTX 2060 bis Titan RTX) so bezeichnen möchte. Obwohl Nvidia angibt, dass sich die Turing-RTX-Grafikkarten blendend verkaufen, ist die RTX-Hardware-Basis gemessen am Gesamtmarkt verschwindend gering. Damit eine Funktion für Entwickler richtig interessant wird, muss das Fundament breiter aufgestellt sein, was Nvidia natürlich bewusst ist.
Quelle: Nvidia
Game Ready Driver DXR for Pascal and Turing GTX Full presentation Seite 04
Nach Monaten der Treiberoptimierung, bei der die RTX-Hardware im Fokus stand, ist die Software reif genug, um weitere Aufgabenfelder zu stemmen. Der heute veröffentlichte Treiber Geforce 425.31 bietet erstmals einen Software-Fallback für DXR, um Raytracing auch auf Grafikchips zu ermöglichem, die keine speziellen Rechenwerke dafür bieten. "Fallback" bedeutet im Fachjargon stets, dass man Berechnungen nicht so durchführt, wie man sie normalerweise angeht - sondern über Umwege. Im aktuellen Kontext bezieht sich der Fallback auf die Art der Recheneinheiten: Bei Turing (RTX 20) erfolgt die Strahlenverfolgung im Raum über spezialisierte Rechenwerke, die RT-Cores. Bei Pascal (und Volta) fehlen diese Einheiten im Chip. Da die stattdessen reichlich vorhandenen Shader-ALUs hochflexibel programmierbar sind, können diese für die Arbeit eingespannt werden. Genau das passiert nun: Pascal-GPUs, welche millionenfach verkauft wurden, werden Raytracing-tauglich und verbreitern die Hardware-Basis somit über Nacht.
Bereits vor Monaten gewährte man häppchenweise eine Vorschau auf "Software-Raytracing". Da wäre der Launch der Geforce RTX 2070 zu nennen, anlässlich dessen man die sehenswerte Demo Star Wars Reflections auch auf Pascal betreiben konnte - zumindest Pressevertreter, denn der Echtzeit-Kurzfilm war aus Urheberrechtsgründen lange nicht öffentlich zugänglich. Einen etwas größeren Rummel erzeugte die Erkenntnis zum Jahreswechsel, dass eine Titan V mit Volta-GV100-Prozessor spielbare Bildraten bei Battlefield 5 mit Raytracing erzielen kann - obwohl Volta keine RT-Cores besitzt. Dies war ein weiterer Vorgeschmack auf den heutigen Tag: Raytracing-Berechnungen mithilfe der FP32-ALUs.
Quelle: Nvidia
Raytracing für GTX-Grafikkarten: Nvidia veröffentlicht DXR-Treiber für GTX 10 (Pascal) und GTX 16 (Turing) (12)
Raytracing-Exkurs: Spezialisierte vs. generalisierte Einheiten
Nvidias Errungenschaften im Laufe der Jahre lassen sich mit zwei Worten zusammenfassen: Software-Algorithmen und dedizierte Hardware-Einheiten. Letztere, die RT Cores, halten mit Turing Einzug. Bei diesen Raytracing-Kernen handelt es sich um Fixed-Function-Units, spezialisierte Einheiten, die sich primär um die Nachverfolgung der Strahlen kümmern. Ihre Aufgabe ist es, festzustellen, welche Strahlen wo auf Objekte und somit Polygone stoßen - es gilt sprichwörtlich, eine "Nadel" im Polygonhaufen zu finden. Auch dabei kommt eine Vereinfachung zum Einsatz: Anstatt einer pixelweisen, sehr zeitaufwendigen Suche des Polygons wird der Raum zunächst in größere Würfel aufgeteilt, die mithilfe effizienter Algorithmen schneller Aufschluss über darin enthaltene Polygone geben. Vereinfacht gesagt schaut man zunächst in eine große Kiste, die vom Strahl im ersten Schritt getroffen wurde. In dieser Kiste befinden sich weitere, immer kleinere Kisten. Nach einigen Schritten hat man das entsprechende Polygon relativ schnell gefunden und kann mit dem Shading beginnen, während eine pixelweise Suche womöglich immer noch keine Referenz zu diesem Polygon ergab. Wer's genauer wissen will, füttert eine Suchmaschine mit dem Begriff "Bounding volume hierarchy" (BVH).
Diese Arbeit lässt sich auch "in Software" erledigen, also ohne spezialisierte Hardware-Einheiten, sondern mithilfe der generalisierten Shader-ALUs. Nvidia gibt an, dass durchschnittlich mehrere Tausend Instruktionen pro Strahl anfallen, sodass konventionelle Rechenwerke verhältnismäßig lange für das BVH traversal und anschließende Shading benötigen. Turing entschärft das Problem nicht nur mithilfe der RT Cores, sondern auch auch durch höhere Parallelität: RT Cores und Shader-ALUs arbeiten Hand in Hand. Letztere feuern die Strahlen ab, die RT-Kerne übernehmen die schnelle Lokalisierung der Polygone, die ALUs das anschließende Shading - und so weiter, und so fort.
Nvidia gibt an, dass Raytracing eine Integer-lastige Angelegenheit sei. Wir erinnern uns: Die Turing-Architektur - inklusive des kleinen Ablegers TU116 ohne RT- und Tensor-Kerne - verfügt pro FP32-ALU über eine INT32-Einheit. Letzteren wird beim Software-Raytracing somit eine wichtige Rolle zuteil: Sie können ihren überarbeiteten Kollegen, welche eigentlich auf komplexere Gleitkomma-Operationen ausgelegt sind, effektiv unter die Arme greifen. Die Milchmädchenrechnung, Turing-GPUs einfach die doppelte Anzahl Shader-ALUs anzudichten, funktioniert dabei jedoch nicht. Wie groß die praktischen Auswirkungen sind, zeigt sich in den Benchmarks.
Quelle: Nvidia (Screenshot: PCGH)
Raytracing für GTX-Grafikkarten: Nvidia veröffentlicht DXR-Treiber für GTX 10 (Pascal) und GTX 16 (Turing) (2)
Aus alldem ergibt sich die von Nvidia vollmundig genannte Leistungsdifferenz zwischen Turing und Pascal (RTX 2080 Ti vs. GTX 1080 Ti) - Faktor 10 -, da pro Gigaray rund 10 TFLOPS an Rechenleistung aufgewendet werden müssen. Wir werden sogleich in den Benchmarks klären, ob sich die Realität mit dieser gewiss dramatisch gerechneten Zahl deckt.

Sparmaßnahmen? Dedizierte Cores kosten mehr als unifieds, weil sie Platz brauchen und angebunden werden müssen (Cache). Der Begriff "GPU Partitionierung" ist Teil der vGPU Cloud Gaming Strategie seitens Microsoft und kann einem tatsächlich nur gefallen, wenn man zugeteilte GPU Ressourcen nach einem Abomodell mag, was auf die meisten dGPU Spieler wahrscheinlich nie zutreffen wird.
Schon jetzt dürfte Turing alles sprengen, was die reine Waferfläche angeht und genau daher wird nVidia sich hüten auf 7nm zu wechseln, die Kosten dürften hier 12/16nm bei 7000-8000 pro Wafer liegen, in 7nm bei 14000-16000$ über 7nm+ mag da noch niemand reden - weil das wohl sicherlich ein Redesign und eigens angepasstes nVidia Fertigungsverfahren erfordert.
Der PR Stunt wie groß ein Pascal ausfallen müsste, um die Ray Traverse zu berechnen, ist allein nVidias Erguss und Problem. Volta war eine Machbarkeitsstudie und genauso sehen auch die Preislagen dazu aus. Es macht deutlich mehr Sinn an Software und Compilern zu optimieren, als ständig irgendwelche dedizierten Cores auf einem GPU Design zu verwenden. Manchen Leuten scheinen die Preise dafür völlig egal zu sein. Allein Tensor und RT + Caching jubelt die Waferfläche um 22% in die Höhe, dazu kommt noch die Core Fabric und die Signalwege, die man bei höherem oder gleich gebliebenem Takt dafür schaffen muss.
Das Renderprinzip hat aber einen wesentlichen Anteil daran, weil auf den Code optimiert werden muss und man die Einheiten auch nutzen können muss. Die Frage ist dabei für welchen Zweck. Dabei ist die Parallelisierung der Prozesse auch nicht von der Partitionierung (Datenpartitionierung) abhängig, sondern von dem Algorithmus und der möglichen Konvertierung (erweiterte oder eingeschränkte).
Unter GPGPU spielt die Partitionierung ein unwesentliche Rolle, da diese Architektur (Instructions Multiple Data) und ihr Parallelisierungsgrad Aufgaben auf allen Einheiten gleichzeitig ausführen kann, was bei der Ressourcenauslastung und der Verarbeitung der Optimierung bedarf. Trotzdem liegt dieser Grad, mit seinen multiplen Threads weit über dem was man mit Partitionierungsarten erreichen könnte und diese fordert in jeden Fall hohen Sychronisierungsaufwand. Feingranularität vorausgesetzt, lässt sich auch eine hohe Auslastung erzielen.
Wenn sich Fiji und Vega ähneln, liegt das eher daran, dass man sich große Umbrüche und Treiberoptimierungen sparen kann. Die Architektur kein neues oder gesondertes Umfeld braucht, und das was bis dahin entwickelt wurde darauf lauffähig bleibt. Es ist also eine Frage der nachfolgenden Kosten und ob es dafür einen Absatzmarkt gibt, zuletzt auch was der - der diese Hardware abnimmt sich als Kunde wünscht.
Die Geschwindigkeiten werden heute durch die parallele Prozessausführung erreicht, wie auch Turing in dem Bsp. von FP32 und Int32 beweist. BFV soll im Verhältnis und nach Auskunft von nVidia, bereits bei 100 FP32 und gleichzeitig 50 INT32 liegen (100:50). Das erfordert aber auch eine Anpassung bei der Datenverarbeitung. Mal als Bsp. C++ AMP das ermöglich einen massiven Parallelisierungsgrad zu erreichen und Programme zu schreiben, die kompiliert auf der Hardware ausgeführt werden können und diese auch auslasten.
Ich habe es jetzt endlich mal zum Laufen gebracht und muss sagen, von Battlefield bin ich ziemlich enttäuscht, es gibt quasi gar keine Dinge, auf den meisten Maps, die irgendetwas reflektieren, ziemlich nutzlos daher. In Shadow of the Tomb Raider sieht man den Unterschied im Grunde nach immer, nur die Frage ist eben ob korrekte Schatten es wert sind die FPS so einkrachen zu lassen. Metro habe ich nicht , da vermute ich aber den mit Abstand größten optischen Zugewinn, auf Reflexionen und Schatten sollte man meiner Meinung nach verzichten bis ausreichend RT Leistung da ist und sich auf Global Illumination konzentrieren.
Echtzeit Raytracing ist aber eine andere Geschichte, ich glaube nicht, das es hier zu einer entsprechenden Lösung kommt, es würde auch nicht viele Kunden dafür geben, da die Kosten für eine GPU + dezidierter Beschleunigerkarte immer höher sein werden und mehr technische Probleme verursachten, als eine GPU der nächst höheren Stufe. Wem dann die höchste Stufe rtx2080 ti nicht reicht, der ist im Profibereich mit ganz anderen Preisen.
"Die beste RT Leistung" wie nVidia beschreibt, erhält man damit also unter Spielen nicht. Ob das später nochmal kommt ist unbekannt, man überlegt wie man beschreibt. Dedizierte Renderercards wie Ageia's PhysX würde ich eher ausschließen.
RTX ist nicht von PCIe Bandbreite abhängig, bzw. auch nicht vom Link.
Ageia's PhysX physics processing unit - The Tech Report - Page 1
MfG, Föhn.
Echtzeit Raytracing ist aber eine andere Geschichte, ich glaube nicht, das es hier zu einer entsprechenden Lösung kommt, es würde auch nicht viele Kunden dafür geben, da die Kosten für eine GPU + dezidierter Beschleunigerkarte immer höher sein werden und mehr technische Probleme verursachten, als eine GPU der nächst höheren Stufe. Wem dann die höchste Stufe rtx2080 ti nicht reicht, der ist im Profibereich mit ganz anderen Preisen.