Die fehlenden Asynchronous Shader bei nVidia

Samstag, 5. September 2015
 / von Leonidas
 

Aus den eher nicht vorhandenen Zugewinnen an Gaming-Performance durch Windows 10 bleibt die Frage übrig, ob dies eventuell unter DirectX 12 anders aussieht – bzw. eher, um wieviel DirectX-12-Spiele in dieser Frage zulegen können, denn DirectX 12 wurde nun schon definitiv zugunsten eines klaren Performancegewinns angekündigt. Hierzu gab es Mitte August erste Benchmarks unter einer Vorab-Version des Strategietitels "Ashes of the Singularity", welches Messungen unter DirectX 11 & 12 – und somit einen direkten Vergleich – bietet. Da hierbei allerdings eine Alpha-Version des Spiels getestet wurde und einige Performancezuwächse eher astronomisch ausfielen, sah das ganze auf den ersten Blick nicht unbedingt nach einen typischen Beispiel für den Performancewettstreit zwischen DirectX 11 & 12 aus. Zuerst wurden für diese wirklich kuriosen Benchmarkresultate zudem Probleme mit Multisampling Anti-Aliasing schuldig gemacht, was sich aber nicht halten lies – und ohne einen ernsthaften Ansatzpunkt zur Erklärung zu haben, ist es eher schwer, in einer solchen Diskussion etwas sinnvolles beizutragen:

Ashes of the Singularity – Performancegewinn von DirectX 12 gegenüber DirectX 11
AMD FHD AMD WQHD AMD 4K NV FHD NV WQHD NV 4K
Fury X vs. 980 Ti @ ComputerBase +71,6% +72,1% +34,3% +11,6% -0,3% -5,9%
Fury X vs. Titan X @ PC Games Hardware +58,8% - - +6,6% - -
Fury X vs. 980 Ti @ ExtremeTech +71,0% - +34,7% -2,8% - -6,9%
390X vs. 980 @ PC Perspective +42,4% +27,8% - -14,2% -12,1% -

Jenen Ansatzpunkt für die teilweise herausragenden Performancegewinne von AMD-Hardware unter DirectX 12 gegenüber offensichtlich mageren Performancegewinnen von nVidia-Hardware im gleichen Test bietet nunmehr der Punkt der unter Ashes of the Singularity genutzten "Asynchronous Shader". Dies wurde bislang als ein Feature der GCN-Architektur beschrieben, um die Shader-Einheiten besser auslasten zu können – in gewissem Sinne wie HyperThreading für Grafikkarten. Dabei ist es sowohl möglich, für einen optimierten Ablauf der anstehenden Rendering-Aufgaben zu sorgen, als auch zusätzliche Compute-Aufgaben zu übernehmen, welche man ansonsten unter Umständen der CPU aufgebürdet hätte. Asynchronous Shader funktioniert generell nur unter Mantle, Vulkan und eben DirectX 12 (rein optionaler Bestandteil der DirectX-12-Spezifikation) – dafür interessanterweise aber auch bei nVidia-Grafikkarten, ist also entgegen früherer Beschreibungen kein AMD-exklusives Feature. AMD hat allerdings den Vorteil, daß man über die ACE-Einheiten der GCN-Architektur (die modernsten GCN-Chips haben bis zu 8 davon) die verschiedenen Datenströme koordinieren und vor allem schnelle Aufgabenwechsel einleiten kann.

Und genau hier liegt der Hase im Pfeffer: AMDs Hardware beherrscht Asynchronous Shader rein praktisch unter DirectX 12, nVidias Hardware nur theoretisch – ohne die Möglichkeit der schnellen Aufgabenwechsel für die verschiedenen Datenströme verliert man eher an Performance als daß man welche hinzugewinnen würde. Aus diesem Grunde haben die Programmierer von Ashes of the Singularity in ihrem Spiel auch das Asynchronous-Shader-Feature für nVidia-Grafikkarten (auf Anraten nVidias selber) gleich lieber komplett deaktiviert – was letztendlich die Erklärung für die zu sehende Benchmark-Situation ergibt, wo unter DirectX 12 nVidia nur mager und AMD hingegen herausragend hinzugewinnt. Wie sich inzwischen zudem herauskristallisiert, erreicht nVidia die grundsätzliche Eigung seiner Hardware zu Asynchronous Shader durch eine platte Emulation unter Hinzuziehung der CPU – was dann auch erklärt, warum damit (bei nVidia) keine Performance gewonnen wird. Da der ganze Zweck des Features ausschließlich in einem Performancegewinn besteht und es hierbei nicht um irgendeinen Bildqualitätseffekt geht, reicht diese rein Checklisten-technisch vorhandene Unterstützung aber nicht aus – Asynchronous Shader sind faktisch fehlend bei nVidia.

Allerdings muß auch klar gesagt werden, daß sich selbst unter Ashes of the Singularity damit nicht die Situation ergibt, daß die AMD-Hardware der nVidia-Hardware dann maßlos davonzieht – auch wenn die relativen Performancegewinne dies auf den ersten Blick vermuten lassen würden. Vielmehr ist es jedoch so, daß die AMD-Hardware durch diesen großen Performancesprung unter DirectX 12 überhaupt erst einmal in der Lage ist, deren wirklich monströs zurückhängende Performance unter DirectX 11 zu egalisieren. Am Ende reicht es für die AMD-Hardware noch aus, um etwas schneller als ansonsten gleichwertige nVidia-Hardware herauszukommen – aber der dabei erreichte Performancevorspung gegenüber nVidia ist weitaus geringer als die erst einmal erzielten (monströsen) Vorteile durch den Einsatz von DirectX 12:

Ashes of the Singularity (DX12) – Abweichung vom 3DCenter Performance-Index
Perf.Index FullHD Abweichung
Fury X vs. 980 Ti @ ComputerBase 660% vs. 730% 47,7 fps vs. 47,0 fps +12,3% mehr für AMD
390 vs. 970 @ ComputerBase 520% vs. 520% 39,5 fps vs. 34,0 fps +16,2% mehr für AMD
280X vs. 770 @ ComputerBase 380% vs. 380% 28,7 fps vs. 25,7 fps +11,7% mehr für AMD
Fury X vs. Titan X @ PC Games Hardware 660% vs. 760% 33,2 fps vs. 35,4 fps +8,0% mehr für AMD
Fury X vs. 980 Ti @ ExtremeTech 660% vs. 730% 47,7 fps vs. 48,3 fps +9,2% mehr für AMD
390X vs. 980 @ PC Perspective 570% vs. 600% 56,4 fps vs. 50,1 fps +18,5% mehr für AMD
Perf.Index 4K Abweichung
Fury X vs. 980 Ti @ ComputerBase 95% vs. 95% 32,5 fps vs. 30,2 fps +7,6% mehr für AMD
Fury X vs. 980 Ti @ ExtremeTech 95% vs. 95% 31,8 fps vs. 31,1 fps +2,3% mehr für AMD

Nichtsdestotrotz: Grob 10 Prozent Performancevorteil gegenüber dem normalen Performancebild sind in jedem Performance-Vergleich ein gewichtiges Pfund und kehren einige ansonsten festgesetzte Verhältnisse total um: Die Radeon R9 Fury X schneller als die GeForce GTX 980 Ti, die Radeon R9 390X schneller als die GeForce GTX 980, usw. Die sich hauptsächlich hieraus ergebende Frage ist allerdings, ob sich ein solches Performancebild auch wirklich unter einer Vielzahl an DirectX-12-Titeln ergeben wird. Hieran muß vorerst ein gewisses Fragezeichen gehangen werden, da unsicher ist, in welchem Rahmen andere DirectX-12-Titel das Feature "Asynchronous Shader" nutzen werden – und ob eine Vielzahl an Spielen überhaupt eine so große Ausnutzung dieses Features erreichen kann.

Der ganze Test unter Ashes of the Singularity kommt letztlich der AMD-Hardware und ihrer besonders hohen Shader-Power überaus deutlich entgegen, dies muß auch herausgestellt werden. Es darf daher (zum derzeitigen Stand) noch leicht bezweifelt werden, daß dies der Normalzustand unter DirectX 12 sein wird. Sicherlich werden unter DirectX 12 Strategietitel wie eben Ashes of the Singularity gern mit so etwas wie dem Asynchronous-Shader-Feature arbeiten, weil es einfach enorme Vorteile bei einer hohen Anzahl an darzustellenden Einheiten bietet. Andere Spielegenres sind schon rein konzeptionell weit weg von dieser Problematik – und da könnte der Vorteil durch Asynchronous Shader viel geringer ausfallen. Dies muß einfach abgewartet werden, es gibt hierzu derzeit noch keinen soliden Ausblick.

Das Pendel könnte hierbei also in beide Richtungen ausschlagen: Entweder Fälle wie Ashes of the Singularity bleiben in der klaren Minderheit und beeinflußen das Gesamtbild dann nur marginal – oder aber eine breite Masse an Spielen zieht Vorteile aus dem Asynchronous-Shader-Feature. In letzterem Fall würden AMDs Grafikkarten unter DirectX 12 ihre bisher bekannte Performance verlassen und müssten bemerkbar weiter vorn eingeordnet werden – was zu beobachten und nach Erlangung einer ausreichender Datenlage erneut zu betrachten wäre. Sollte es soweit kommen, hätte nVidia natürlich die Schmach zu ertragen, dieses augenscheinlich wichtige Feature verschlafen zu haben – bzw. die GCN-Architektur von AMD könnte damit glänzen, hierbei gut vorausgedacht zu haben.

Dabei hat AMD in dieser Angelegenheit einen Punkt in jedem Fall auf seiner Seite: Asynchronous Shader ist kein Bildqualitäts-Feature – sondern ein reines Performance-Feature. Damit ist es für die Spieleentwickler viel einfach einzubauen, weil man damit nicht die einen Nutzer bei der Bildqualität bevorteilt und die anderen Nutzer benachteilt – was kein Spieleentwickler gern macht. Mehr Performance ist jedoch bezüglich der Bildqualität erst einmal neutral – und wenn es nur bei den Grafikchips eines Anbieters funktioniert, ist dies kein Hindernis zur Nutzung. Zudem scheint sich der Aufwand für die Spieleentwickler, das Asynchronous-Shader-Feature einzubinden, in einem engen Rahmen zu halten – was dann wiederum dessen praktische Nutzung begünstigt.

Auf den aktuellen Spielekonsolen, welche ja jetzt schon an ihrem Leistungslimit operieren, soll das Feature gar öfters mal eingesetzt werden und dort bei unterschiedlichen Spielen zwischen 20-30% Performancevorteil bringen. An dieser Stelle könnte es wirklich einmal konkrete Vorteile haben, daß in Xbox One und PS4 beiderseits GCN-basierte Grafikchips stecken – die Spieleentwickler arbeiten sich somit möglicherweise auf dem nur unter AMD-Hardware funktionierenden Feature "Asynchronous Shader" ein und nutzen es dann generell häufiger – auch für PC-Ports oder primäre PC-Titel. Die Möglichkeit, daß AMD bemerkbaren bis entscheidenden Nutzen aus dem Asynchronous-Shader-Feature zieht, ist also in jedem Fall gegeben. Wie weit dies geht, können allerdings wirklich nur zukünftige Benchmarks zeigen – in diesem Fall ist ein Benchmark kein Benchmark, da müssen doch schon (viel) mehr Daten auftauchen.