Die fehlenden Asynchronous Shader bei nVidia (Nachträge)

Samstag, 5. September 2015
 / von Leonidas
 

Nachtrag vom 6. September 2015

Die Diskussion über die fehlenden Asynchronous Shader bei nVidia geht derzeit in diese Richtung, als daß nVidia hierbei wieder einmal seine Kunden hinters Licht geführt haben könnte. Dies ist eigentlich eine Frage, deren man sich aufgrund des Mißbrauchspotentials nur vorsichtig nähern sollte – und dennoch, die sich nun langsam entblätternden Details gehen schon verdächtig in diese Richtung: So ist inzwischen klar, daß "Async Compute" zwingender Teil von DirectX 12 ist – ohne dieses Feature kein Feature-Level 12_0 oder 12_1, sprich kein Hardware-Support von DirectX 12. Lustigerweise existiert sogar eine nVidia-Präsentationsfolie zur GeForce GTX 980 Ti, wo nVidia mit dem Support von "Async Compute" unter DirectX 12 angibt. Optional ist dann jedoch der direkte Hardware-Support, wie von AMDs GCN-Architektur her bekannt – nVidia löst das ganze hingegen über den Treiber und dann über die CPU. Das Feature ist damit nicht performant nutzbar, aber eben aus Sicht von DirectX 12 dennoch vorhanden, sprich notfalls abrufbar.

Ein echter Support des Features ist dies aber nicht, denn da der einzige Anwendungszweck von "Async Compute" in einer Performancebeschleunigung liegt, kann eine softwarebasierte Lösung Performancegewinn dem natürlich nicht entsprechen. Und auch wenn nVidia hiermit also die DirectX-Spezifikationen nicht wirklich verletzt, so fehlt doch die Hardware-Beschleunigung für ein wichtiges Teilfeature von DirectX 12, welches somit auf nVidia-Hardware rein praktisch unnutzbar wird. So ganz im Sinne der Spezifikation dürfte dies auch nicht sein – und wird nVidia-Hardware in jedem Fall behindern, wenn sich die Spieleentwickler eines Tages mehr auf DirectX 12 ausrichten werden. Die Frage ist natürlich, ob dann noch die Maxwell-2-Generation bei nVidia aktuell ist – oder ob man dann schon die Nachfolge-Generation "Pascal" im Markt stehen hat, mit wahrscheinlich einem Fix für dieses Problem. Daß es Maxwell-2-Beschleuniger mit einer gewissen Chance unter DirectX 12 schwerer haben werden als die AMD-Beschleuniger, daran würden aber auch neue nVidia-Grafikkarten dann nichts mehr ändern können.

Nachtrag vom 7. September 2015

Die PC Games Hardware vermeldet eine Aussage der Entwickler von "Ashes of the Singularity", daß man zusammen mit nVidia an einer Verbesserung der Situation bei "Async Compute" arbeitet. Laut nVidia soll wohl das Feature mit den aktuellen Treibern "nicht vollständig implementiert" sein und deswegen den (unperformanten) Umweg über die CPU nehmen. Was die kommenden nVidia-Treiber dann real besser machen, bleibt aber noch streng abzuwarten: Sicher darf man erwarten, daß Async Compute dann prinzipiell nutzbar wird und es nicht wie bei Ashes of the Singularity abgeschaltet werden musste, um noch größere Performanceeinbrüche zu verhindern. Prinzipielle Nutzbarkeit bedeutet aber nicht zwingend einen Performancegewinn durch das Feature und selbst ein (kleiner) Performancegewinn bedeutet nicht automatisch, daß man damit AMD einholen könnte. In dieser Frage muß man erst einmal sehen, was inwiefern nVidia die schnellen für Async Compute benötigten Aufgabenwechsel ohne die Leistungsfähigkeit von AMDs ACE-Einheiten hinbekommt. Zudem kann es am Ende immer noch sein, daß das Feature prinzipgebunden auf AMD-Hardware für einen höheren Performancegewinn als auf nVidia-Hardware sorgt: Denn AMDs Grafikchip haben einfach viel mehr Shader-Power, die oftmals aber gar nicht ausgelastet ist – eine ideale Situation für so ein HyperThreading-ähnliches Feature wie Async Compute.

Nachtrag vom 21. Oktober 2015

Die ComputerBase hat sich mit neuen Treiber-Versionen von AMD und nVidia den Fall "Ashes of the Singularity" nochmals neu angesehen. Bei den ersten Tests zu diesem allerdings noch im Alpha-Status befindlichem DirectX-12-Titel konnten AMD-Grafikkarten die weitaus kräftigeren Zuwächse durch Zuschaltung von DirectX 12 erzielen, genauso auch wie das insgesamte Performance-Bild zugunsten von AMD-Hardware sprach. Inzwischen haben beide Grafikchip-Entwickler einiges an ihren Treibern getan, insbesondere nVidia hat sich natürlich bemüht, diese vor allem mediale Scharte auszuwetzen. Damit ist der AMD-Vorsprung einigermaßen zusammengeschrumpft: Während die ComputerBase früher in diesen Tests normierte AMD-Vorteile von +12,3% bzw. +16,2% vermessen hat, sind es nun nur noch +8,4% bzw. +5,9%. Dies ist immer noch ein gewisser AMD-Vorteil, aber dennoch um einiges weg von den anfänglichen Messungen mit deutlicher sichtbaren AMD-Vorsprüngen.

Ashes of the Singularity (DX12) – Abweichung vom 3DCenter Performance-Index
Perf.Index FullHD Abweichung
Fury X vs. 980 Ti @ Medium (ComputerBase) 670% vs. 730% 72,1 fps vs. 72,5 fps +8,4% mehr für AMD  (früher: +12,3%)
390 vs. 970 @ Medium (ComputerBase) 530% vs. 520% 54,6 fps vs. 50,6 fps +5,9% mehr für AMD  (früher: +16,2%)
Fury X vs. 980 Ti @ Epic (ComputerBase) 670% vs. 730% 39,1 fps vs. 40,0 fps +6,5% mehr für AMD
390 vs. 970 @ Epic (ComputerBase) 530% vs. 520% 29,2 fps vs. 27,1 fps +5,7% mehr für AMD

Damit kann nVidia für sich in Anspruch nehmen, die Lücke der praktisch fehlenden "Asynchronous Shader" bei seiner DirectX-12-Hardware zumindest unter Ashes of the Singularity ganz gut umschifft zu haben – egal ob die seitens nVidia vorliegenden Performance-Verbesserungen nun an diesem Feature lagen oder wo anders hergekommen sind. Jenes (derzeit praktisch fehlende) Feature dürfte nVidia eines Tages aber dennoch noch wehtun – dann nämlich, wenn DirectX 12 seitens der Spieleentwickler richtig ausgenutzt wird, dann dürfte aus reinen Performance-Gründen ein Feature wie "Asynchronous Computing" ganz oben im Kurs bei den Spieleentwicklern stehen. Allerdings ist es nicht unmöglich, daß nVidia sein Problem bis zu diesem Tag entweder gelöst haben wird oder aber dann bereits neue Hardware im Angebot hat, welches die Asynchronous Shader dann perfekt ausführen kann.

Daneben bleibt bestehen, daß AMD in den beiden derzeit vorliegenden DirectX-12-Tests klar und vor allem durchgehend besser wegkommt als im allgemeinen Performance-Bild: Sowohl die neuen Benchmarks unter Ashes of the Singularity als auch die weiteren DirectX-12-Messungen unter Fable Legends ergeben bislang diese klare Aussage. Zwei Benchmarks sind noch keine Entscheidung oder gar ein Richtungswechsel, aber man kann zumindest die Tendenz erahnen, daß DirectX 12 unter Umständen etwas besser für AMD-Hardware ausgeht als für nVidia-Hardware, zumindest in dieser Grafikchip-Generation. All dies bedarf natürlich noch der Bestätigung (oder Widerlegung) durch weitere DirectX-12-Titel, derzeit liegen zu dieser Frage in jedem Fall noch viel zu wenige Benchmarks vor.

Nachtrag vom 22. Oktober 2015

Aus dem Beyond3D-Forum kommt eine sehr interessante Erklärung, wieso AMD beim Thema "Asynchronous Compute" möglicherweise prinzipgebunden vorn liegen wird, die bisherigen Benchmarks hierzu also nicht nur einen Ausreißer darstellen. Grundlage hierfür soll der Aufbau der jeweiligen AMD- und nVidia-Grafikchips sein, welcher es AMD ermöglicht, mehr Threads zu verwalten und vor allem schneller zwischen diesen zu wechseln. Bei nVidia kostet vor allem der Threadwechsel seine Zeit, weshalb nVidia in seinem DirectX 12 Programmierer-Guide empfiehlt, selbiges zu vermeiden. Bei geringer Last dürfte dies sicherlich kaum praktische Unterschiede ergeben, aber wenn man es auf die Spitze treibt, erscheinen AMDs Grafkchips mit ihren für diese Fragen weitaus besser geeigneten ACE-Einheiten dann besser aufgestellt als die hierfür zuständige "Grid Management Unit" in den aktuellen nVidia-Grafikchips.

Allerdings dürfte sich nVidia dieses technologischen Nachteils sehr wohl bewußt sein, womit mit den nachfolgenden Grafikchip-Generationen hier Besserung bzw. womöglich auch eine komplette Umgestaltung des Befehlsflusses in den nVidia-Grafikchips zu erwarten ist. Die spannende Frage ist dabei, ob nVidia diese Änderung bereits in der kommenden Pascal-Generation einbauen kann – je nachdem, wie lange nVidia bereits dieses Problem bekannt ist, könnte es dafür vielleicht aber schon zu spät gewesen sein. Wenn die Pascal-Architektur hier keine Änderungen mit sich bringt, wäre dies ein handfester Nachteil für nVidia-Hardware unter DirectX 12 – und dies dann zu Zeiten, wo auch wirklich DirectX-12-Titel erscheinen, während die aktuelle Grafik-Hardware beim Erscheinen der großen Masse an DirectX-12-Titel wohl schon wieder überholt sein wird. Noch dazu wird Pascal gern einmal grob als "Maxwell + 16nm + HBM" beschrieben, was auf eher weniger Architektur-Änderungen hindeutet. In dieser Frage wird man sich aber einfach überraschen lassen müssen.

Nachtrag vom 27. Oktober 2015

Ein Punkt, der zum Thema "Asynchronous Compute" unbedingt noch erwähnt werden muß, ist die ganz prinzipiell bessere Eignung von (bisheriger) AMD-Hardware für dieses Feature. Und dies nicht dadurch, daß nVidia jenes Feature mit deren aktueller Hardware eher nur schlecht unterstützt, da die Lastwechsel zu lange dauern und daher laut nVidia eher vermieden werden sollten – dies ist schließlich ein mit neuer Hardware lösbares Problem, AMD hat diesen Punkt mit seinen ACE-Einheiten sehr gut im Griff. Vielmehr dürfte AMD auch in der Zukunft der AMD-Ansatz der viel höheren nominellen Rechneleistung bei seinen Grafik-Beschleunigern genau für dieses Feature weiterhelfen – welches man übertragenerweise als "HyperThreading für Grafikchips" beschreiben kann, denn nichts anderes als eine Auslastungs-Verbesserung der Rechenwerke ist HyperThreading letztlich. nVidia hat derzeit die sicherlich effizienteren Grafikchips, aber AMD diejengen mit der höheren nominellen Rechenleistung – eine Folge der grundsätzlichen Architektur und damit kaum eine Sache, die so schnell wieder verschwindet.

Beispielsweise stehen zwischen Radeon R9 Fury X und GeForce GTX 980 Ti bei vergleichbarer 4K-Performance immerhin +37% mehr realer Rechenleistung zugunsten von AMD (den etwas höher als nominell liegenden realen Chiptakt der GeForce GTX 780 Ti schon eingerechnet). Bei den kleineren Grafikkarten ist es ähnlich: Zwischen Radeon R9 285 und GeForce GTX 960 stehen bei vergleichbarer FullHD-Performance auch wieder +22% mehr realer Rechenleistung zugunsten von AMD (sogar 36%, wenn man auf Basis des von nVidia angegebenen Boost-Takts rechnet). Bleibt dieses Verhältnis auch in der Zukunft ähnlich, wird AMD unter "Asynchronous Compute" immer einen gewissen Vorteil haben, da bei AMD-Grafikkarten tendentiell einfach mehr Rechenleistung brach liegt als bei nVidia-Grafikkarten. Vielleicht hat nVidia auch deswegen bislang keinen großen Eifer zugunsten von "Asynchronous Compute" entwickelt, weil selbst bei Vorhandensein ähnlich guter Verwaltungseinheiten wie diejenigen von AMD der mögliche Performancegewinn auf nVidia-Hardware durch die geringere verfügbare Rechenleistung einfach kleiner ist. Natürlich können sich über die Zeit diese Ansetzungen dann doch verändern, aber zumindest für die nächste Grafikchip-Generation von nVidia in Form von "Pascal" werden keine großen Architektur-Änderungen erwartet, könnte dieser generelle AMD-Vorteil also weiterbestehen.

Nachtrag vom 10. November 2015

Beim TechSpot hat man sich auch noch einmal mit der DirectX 11/12 Performance unter "Ashes of the Singularity" beschäftigt – mit dem Resultat, daß da von den früher großen Unterschieden kaum noch etwas da ist. Dabei hat nVidia in der früheren Streitfrage, ob man nun das DirectX-12-Feature der "Asynchronous Shader" aktiv und nachfolgend auch performant bekommt, eigentlich gar nichts getan – und dafür anscheinend andere Wege gefunden, die DirectX-12-Performance unter diesem Titel anzuheben. AMD hat es hingegen verstanden, die früher regelrecht darniederliegende DirectX-11-Performance unter diesem Titel maßgeblich anzuheben – es gibt nunmehr zwar noch diverse Unterschiede, aber die übergroßen Differenzen der ersten Benchmarks zum Thema sind passé. Das ganze kann rückblickend wohl als Beispiel dafür gelten, wie wenig Benchmarks von Alpha- und Beta-Versionen eines Spiels auf unoptimierten Treibern am Ende wirklich zählbar sind. Beim Themengebiet der "Asynchronous Shader" bleibt allerdings weiterhin der Verdacht offen, daß AMD sich hierfür mit seiner aktuellen Hardware besser positioniert haben könnte.

Nachtrag vom 26. Februar 2016

Eine Reihe an Webseiten hat sich den neuen Benchmark 2.0 zu Ashes of the Singularity angesehen, welcher auf der Beta 0.85 des Spiels basiert. Im Gegensatz zu den ersten Benchmarks zu diesem Titel vom Herbst letzten Jahres hat sich inzwischen einiges getan – die vorher regelrecht darniederliegende DirectX-11-Performance ist (bei AMD) deutlich besser geworden, gleichzeitig konnten AMD und nVidia natürlich einiges per Treiberverbesserungen herausholen. Im neuen Benchmark sind demzufolge die Zugewinne zwischen DirectX 11 und 12 für AMD-Grafikkarten nicht mehr so drastisch wie einstmals, aber dennoch noch vorhanden, Zugewinne bei nVidia gibt es hingegen gar keine mehr zu sehen. Weiterhin existent ist das Problem, daß AMD unter Zuschaltung des DirectX-12-Features "Asynchronous Compute" deutlich hinzugewinnt, während dieses Feature bei nVidia keine Auswirkungen oder gar eine leicht geringere Performance zur Folge hat. Dies ist eine bekannte Auswirkung der unterschiedlich realisierten Grafikchip-Architekturen von AMD und nVidia – aber auch des Punkts, daß AMD unter DirectX 11 eben noch Reserven beim stärker CPU-limitierten Treiber hat, welche bei nVidia einfach nicht mehr vorhanden sind.

Unter DirectX 12 zeigt sich somit dann die reale Performance der jeweiligen Grafikkarten – mit einigem Vorteil für AMD, zumindest unter Ashes of the Singularity. Denn natürlich müssen andere DirectX-12-Titel keineswegs dasselbe Performanceprofil aufweisen, kommt Ashes of the Singularity der AMD-Hardware durch seine kleinen Eigenheiten (generell hohe CPU-Last als RTS-Titel, zudem Teil von AMDs Gaming-Evolved-Programm) auch noch zusätzlich entgegen. Niemand kann derzeit sagen, ob weitere DirectX-12-Titel wirklich dieses Performanceprofil aufweisen werden, dies wäre eher zu bezweifeln. Daher sind die nachfolgenden Zahlen auch bitte nur als das zu betrachten, was sie darstellen – Benchmarks allein unter Ashes of the Singularity:

Ashes of the Singularity 0.85 (DX12) – Abweichung vom 3DCenter FullHD Performance-Index
Perf.Index FullHD Abweichung
Fury X vs. 980Ti @ Extreme (ComputerBase) 670% vs. 730% 67,9 fps vs. 54,3 fps +36% (mehr) für AMD
Nano vs. 980 @ Extreme (ComputerBase) 600% vs. 600% 59,8 fps vs. 45,3 fps +32% (mehr) für AMD
390 vs. 970 @ Extreme (ComputerBase) 530% vs. 520% 49,2 fps vs. 37,9 fps +27% (mehr) für AMD
380 vs. 960 @ Extreme (ComputerBase) 360% vs. 340% 33,5 fps vs. 26,3 fps +20% (mehr) für AMD
Fury X vs. 980Ti @ High (AnandTech) 670% vs. 730% 74,0 fps vs. 70,7 fps +14% (mehr) für AMD
290X vs. 780Ti @ High (AnandTech) 520% vs. 520% 59,1 fps vs. 50,6 fps +17% (mehr) für AMD
7970 vs. 680 @ High (AnandTech) 360% vs. 360% 36,3 fps vs. 32,4 fps +12% (mehr) für AMD
Fury X vs. 980Ti @ Crazy (TweakTown) 670% vs. 730% 47,9 fps vs. 43,0 fps +21% (mehr) für AMD
Ashes of the Singularity 0.85 (DX12) – Abweichung vom 3DCenter 4K Performance-Index
Perf.Index UltraHD Abweichung
Fury X vs. 980Ti @ High (ComputerBase) 100% vs. 100% 57,3 fps vs. 45,3 fps +26% (mehr) für AMD
390X vs. 980 @ High (ComputerBase) 80% vs. 77% 45,6 fps vs. 36,3 fps +21% (mehr) für AMD
Fury X vs. 980Ti @ High (AnandTech) 100% vs. 100% 55,0 fps vs. 45,6 fps +21% (mehr) für AMD
Fury X vs. 980Ti @ Crazy (TweakTown) 100% vs. 100% 36,6 fps vs. 28,8 fps +27% (mehr) für AMD

Und jene sehen wie gesagt blendend für AMD aus: Je nach Höhe der Grafikqualität schlägt man gleichwertige nVidia-Hardware um 15-30% Mehrperformance – was dann ein Knochen ist, auf welchen nVidia herumnagen kann. Im Gegensatz zu den früheren Tests unter diesem Titel sind hier über angepasste Treiber auch keine ganz großen Überraschungen mehr zu erwarten – beide Grafikchip-Entwickler konnten in diesem speziellen Fall schließlich schon seit Monaten an der Performance unter Ashes of the Singularity herumschrauben. Der RTS-Titel wird dann am 22. März 2016 aus der Early-Accesss-Phase heraustreten – womit dann hoffentlich auch die spielerische Seite von Ashes of the Singularity gewürdigt werden kann. Wie sich DirectX 12 zwischen AMD und nVidia weiterentwickelt, müssen dann vor allem die nachfolgenden Spiele mit DirectX-12-Support zeigen – zu nennen sind hierbei "Hitman (2016)" sowie die beiden Windows-10-exklusiv-Titel "Quantum Break" und "Gears of War: Ultimate Edition".