News DirectX 12: Nvidia-Treiber soll Async Compute nachreichen

Danke für die Ausführungen und Erläuterungen.

Habe den Topic auf Beyond3d lange mit Interesse verfolgt - aber hatte die letzten Wochen keine Zeit mehr. Und für mich ist es ja nur ein Hobby-interesse.
 
Wenn wir mal wieder beim Autovergleich sind. :) Bei VW wurde mit dem Diesel genau das selbe abgezogen wie mit der GTX970 nur verhält sich VW viel Vorbildlicher in der ganzen Angelegenheit. Das wichtigste ist hier das man klar zum Fehler bekennt und der Chef geht!
 
ampre schrieb:
Kann jemand mal im 3dmark dx12 drawcalltest mit einer gtx980 oder Titan x die drawcalls testen? Würde mich interessieren!

gibts zu genüge im Netz ;)
 
Ext3h schrieb:
...Mal eben 30%+ Leistungszuwachs bei AMD an einem einzigen Tag. Und ein kompletter Totalausfall bei Nvidia.
Das ist bei der dürftigen DX11-Performance auch nicht verwunderlich & sooo herbe sind die Unterschiede im Bereich Performance zu NV nicht.
Ansonsten ...Daedal?^^
 
Das wäre eine Entschuldigung die auch Nvidia würdig gewesen wäre. Man ersteze nur Volkswagen durch Nvidia und Auto durch Grafikkarte :). Darauf warte ich noch heute:

Meine Damen und Herren, viele Millionen Menschen auf der ganzen Welt vertrauen unseren Marken, unseren Autos und unseren Technologien. Es tut mir unendlich Leid, dass wir dieses Vertrauen enttäuscht haben. Ich entschuldige mich in aller Form bei unseren Kunden, den Behören und der gesamten Öffentlichkeit für das Fehlverhalten. Bitte glauben Sie mir, wir werden alles tun, um entstandenen Schaden wieder gut zumachen. Und wir werden alles tun, um Ihr Vertrauen Schritt für Schritt zurückzugewinnen.

In unserem Konzern arbeiten mehr als 600.000 Menschen daran, die besten Autos für unsere Kunden zu bauen. An unsere Mitarbeiterinnen und Mitarbeiter gerichtet sage ich, ich weiß mit wie viel Einsatz und großer echter Aufrichtigkeit sie Tag für Tag ihre Arbeit machen. Mir ist natürlich klar, dass jetzt vieles infrage gestellt wird. Ich verstehe das. Aber es wäre falsch, wenn wegen der schlimmen Fehler einiger weniger die harte und ehrliche Arbeit von 600.000 Menschen unter Generalverdacht gerät. Das hat unsere Mannschaft nicht verdient. Auch deshalb bitten wir, bitte ich um Ihr Vertrauen auf unserem weiteren Weg. Wir klären das auf. Wir arbeiten intensiv an den nötigen technischen Lösungen, und wir werden alles tun, um Schaden von unseren Kunden und Mitarbeitern abzuwenden. Ich gebe Ihnen mein Wort, bei all dem werden wir mit der größtmöglichen Offenheit und Transparenz vorgehen.“
Martin Winterkorn


P.S. Vielleicht wird jetzt mal einigen klar welchem Konzern sie da noch die Stange halten!
 
Zuletzt bearbeitet:
@ampre
Was ist denn jetzt mit VW? Ist jetzt für Dich wieder heile Welt weil der Winterkorn sich für etwas entschuldigt mit dem er nichts zu tun hatte und was Ihn seinen Job gekostet hat? Wieviele Jahre willst Du eigentlich auf der GTX970 Geschichte rum reiten? Kaufe einfach kein NVidia und gut ist. Ne das reicht Dir nicht sondern immer weiter fleißig alles ausschlachten.

Wenn man seine eigene Lieblings Firma nur pushen kann indem man die Konkurrenz bei jeder Gelegenheit schlecht redet dann zeugt das nicht von Charakter. Gehe doch einfach einmal hin und stelle die Vorteile von AMD heraus ohne das Wort NVidia zu benutzen! Schaffst Du das nicht?

Leute wie Du machen dieses Forum kaputt. Fachgespräche gibt es keine mehr sondern nur noch blöde Bemerkungen und gebasche. Mit ein Grund warum ich hier nicht mehr schreiben mag. Mir fallen 20 User ein die ich seit 2008 kenne aber die hier im Grafikkarten: Fachgespräche nicht mehr schreiben, weil es denen einfach zu dumm ist mit Leuten wie Dir zu diskutieren. Das ist die Wahrheit und nichts anderes.
 
Zuletzt bearbeitet:
Ja klar, der Vorstand hat von nichts gewußt. Genau das ist seine Aufgabe. Selbst wenn er nicht aktiv mitgewirkt haben sollte, hätte man es zumindest erfahren müssen. In einer ag wird alles protokolliert.
 
Da stehen die NVidia-Befürworter aber in nichts nach, oldman. Fällt zumindest mir als neutralem Beobachter so auf ;). Da schenkt sich keine Seite was und auf beiden Seiten gibt es halt die Extremen.
 
SuddenDeathStgt schrieb:
Das ist bei der dürftigen DX11-Performance auch nicht verwunderlich & sooo herbe sind die Unterschiede im Bereich Performance zu NV nicht.
Ansonsten ...Daedal?^^
Das bezog sich auf den Unterschied innerhalb von DX12 zwischen mit- und ohne Async Compute. In dem Fall wurden schlichtweg die bereits existierenden Compute-Shader aus der Grafik-Queue in eine asynchrone Compute-Queue verschoben, und AMDs Hardware hat unmittelbar noch mal einen Leistungsschub bekommen.

Die AMD-Karten betteln schlichtweg darum komplett überlastet zu werden. Je schlechter die Ausführungspläne (Abhängigkeiten zwischen Drawcalls und Compute Commands, bzw. die daraus ermittelte Reihenfolge) auf die Hardware optimiert sind, desto größer der Gewinn durch Async Compute.

Kurz gesagt bekommt AMD dadurch die Hardware viel einfacher an die theoretischen Limits getrieben. Allerdings mit, seitens der Spiele-Entwickler, wesentlich weniger Aufwand als es mit DX11 jemals möglich gewesen wäre. Die können jetzt schlichtweg dem Treiber sagen "Die Aufgabe hängt von der da ab, die da hängt von nichts ab, und jetzt mach mal". Und die Hardware löst das dann tatsächlich bereits nahezu optimal.

Das funktioniert aber nur dank Spezialhardware.

Wenn du Nvidia so was vorsetzt, dann zeigen dir deren Ingenieure erst mal einen Vogel. Weil bei Kepler und Maxwell das Problem (vorerst) nur durch treiberseitige Profile "behoben" werden kann, was effektiv nichts anderes bedeutet als dass Nvidias Entwickler die Ausführung wieder per Hand planen, in der Hoffnung dabei nicht doch versehentlich den einen oder anderen Stall in die Pipeline rein zu bekommen. Und wenn da nicht genug Zeit zum optimieren ist bzw. wenn es zu viele Daten sind, dann kann das auch mal komplett schief gehen, insofern als dass sich der Treiber für einen Ausführungsplan entscheidet der noch schlechter ist als jeder naive Plan seitens der Spiele-Entwickler es jemals gewesen wäre. Was dann zum kompletten Zusammenbruch der Performance führt.



Den gleichen Leistungsschub hätte man sowohl bei AMD als auch Nvidia natürlich auch ohne Async Compute erreichen können indem man "einfach" bereits den perfekten Ausführunsplan für eine einzelne Queue vorher berechnet. Aber da sitzt man dann halt schon mal ein paar Tage bis Wochen am Rechner, und versucht mit GPUView raus zu finden welche Reihenfolge bei welchem Chip denn jetzt am besten funktioniert. Und will man dann auch noch auf DX11 zurück, dann sitzt man noch länger dran bei dem Versuch die Latenzen durch den Treiber zu vermeiden.
 
@oldmanhunting
Natürlich ist für VW und deren Kunden nichts in Ordnung! Aber es ein Anfang die Dinge in die richtige Richtung zu bringen! Wo ist dieser Start bei Nvdia?

So Leute wie du Machen das Forum kaputt kennen kein anderen Farben außer Schwarz und weiß. Am liebsten würdest du doch meine Meinung ersticken! Und deine 20 Leute pfffff Schulhofgelaber ist das, du manipulierst, intrigierst werd Erwachsen!

Im übrigen schau Dir doch meine Posts an zu den Überlegungen von Polygonendurchsatz Auslastung von Shadern usw. Aber das ignorierst du ja denn es lässt deine Marke schlecht aussehen. Und wenn ich deine Posts ansehe dann sind diese noch weniger technischer motviert als die meinen.

Und ich werde erst aufhören das mit der GTX 970 zu wiederholen bis sich Nvidia entschuldigt!
 
Zuletzt bearbeitet:
ampre schrieb:
Und ich werde erst aufhören das mit der GTX 970 zu wiederholen bis sich Nvidia entschuldigt!

Dann musst du das aber noch sehr lange fortführen. Denn NV entschuldigt sicht grundsätzlich nicht. Its not a bug, its a feature!:freak:
 
Schaut so aus als wäre Nvidia dieses mal durch die Bank weg CPU-limitiert gewesen. Und das selbst obwohl das Spiel Async Compute wirklich nur minimal einsetzt - lediglich 5% der Arbeitslast werden auf die asynchrone Compute Queue ausgelagert. Das hätte nicht passieren dürfen.

Das AMD bei 720p nicht einbricht ist schnell erklärt: F2P-Titel mit überwiegend ziemlich niedrig auflösenden Modellen und komplettes Deferred-Rendering. Sprich die Achilles-Ferse von AMD, Polygone mit zu wenig Pixeln und dann auch noch viel Arbeitslast im naiven, ersten Pixelshader, kommt hier gar nicht zu tragen. Dass die Geometrie-Details bei 720p auf Low gestellt wurden, trägt natürlich noch mal dazu bei.

Warum die Fury X allerdings bei 4k hinten dran hängt ist wirklich eine gute Frage. Da darf man allerdings nicht vergessen, das Nvidia mit ziemlich hoher Wahrscheinlichkeit bereits ein Treiberprofil für die aktuelle UE drinnen hat.
 
Fiji performt noch nicht wie man es anhand von Hawaii erwarten würde, die Mehrperformance ist zu gering. Aber R9 290 und R9 390X stehen gegenüber ihren Konkurrenten gut da.
 
Ext3h schrieb:
Das AMD bei 720p nicht einbricht ist schnell erklärt: F2P-Titel mit überwiegend ziemlich niedrig auflösenden Modellen und komplettes Deferred-Rendering. Sprich die Achilles-Ferse von AMD, Polygone mit zu wenig Pixeln und dann auch noch viel Arbeitslast im naiven, ersten Pixelshader, kommt hier gar nicht zu tragen. Dass die Geometrie-Details bei 720p auf Low gestellt wurden, trägt natürlich noch mal dazu bei.
Äh ist eine geringe Auflösung nicht schlechter für AMD da viele Polygonen auf wenige Pixel umgelegt werden müssen? Die Polygonenanzahl bleibt ja gleich egal bei welcher Auflösung und wo liest du, dass die Geometriedetails auf Low gestellt wurden? Nur weil die Grafikeinstellung Low heißt muss da noch lange nichts an der Geometrie geändert worden sein.

Zudem zeigt ja schon der 3Dmark Drawcall Test das Fiji mehr Polygonen raushauen kann als Maxwell. Denn die drawcalls sind ja hauptsächlich Zeichenaufrufe für Polygonen. Deshalb ist der Drawcalltest auch gleichzeitig ein Polygonenoutput Test, da hier nur sehr simple Shader verwendet wurden und somit die Hauptlast der Polygonenoutput ist!

Jeder Drawcall hatte da ca. 120 Polygonen. Wenn man das mit den Drawcalls von Nvidia und AMD multipliziert ist dort AMD weit vor Nvidia.
Siehe hierzu aktueller Drawcalltest mit aktuellen Treibern (ganz unten):
http://www.hardwareluxx.de/index.ph...36513-amd-radeon-r9-nano-im-test.html?start=7
Und hier die Erklärung mit den Polygonen/Triangels ganz unten das jeder Drawcall ca. 120 Polygonen hat:
http://www.anandtech.com/show/9112/exploring-dx12-3dmark-api-overhead-feature-test
 
Zuletzt bearbeitet:
ampre schrieb:
Äh ist eine geringe Auflösung nicht schlechter für AMD da viele Polygonen auf wenige Pixel umgelegt werden müssen? Die Polygonenanzahl bleibt ja gleich egal bei welcher Auflösung und wo liest du, dass die Geometriedetails auf Low gestellt wurden? Nur weil die Grafikeinstellung Low heißt muss da noch lange nichts an der Geometrie geändert worden sein.[/url]
Die Anzahl der Polygone an sich sagt erst mal nichts - immerhin können die sich ja immer noch überlappen. Problematisch sind wirklich nur übertrieben kleine Polygone. Sowohl Nvidia als auch AMD können AFAIK aus dem Rasterizer immer nur mindestens volle Wavefronts rausschicken, und eine Wavefront kann nur Pixel aus einem Polygon beinhalten.

Polygone die überhaupt keine Pixel beinhalten sind kein Problem, genauso wenig wie Polygone die eliminiert werden weil man nur die Rückseite sieht.

Problematisch sind Polygone die effektiv nur zwischen 1 <= n << 64 Pixel enthalten. Bei denen sind die anderen (64 - n) Plätze in der Wavefront dann praktisch verschwendet.

Bei effektiv 18 Millionen Drawcalls pro Sekunde und 120 Polygonen pro Modell sind das dann nach Backface-Culling insgesamt ca. 800 Millionen tatsächlich gerenderte Polygone pro Sekunde. Wenn man sich die Ausgabe anschaut, dann erkennt man die meisten Polygone noch locker mit bloßem Auge, heißt die fallen nicht in den problematischen Bereich.

Zielt man jetzt allerdings auf 100 FPS ab, und berücksichtigt dass effektiv nicht mal 10% der Framezeit für das berechnen des G-Buffers drauf gehen sollten, dann ist man schon auf lediglich <800.000 Polygone pro Frame runter, was noch sinnvoll machbar ist.

Die Frage ist jetzt allerdings wie viele von denen dann tatsächlich visuell noch was beitragen. Ausgerechnet die zu kleinen Polygone kosten trotzdem noch die volle Rechenzeit. Und wenn die Hardware es schafft bei diesen zu kleinen Polygonen die Rechenzeit zu halbieren, dann werden aus den 10% Framezeit halt mal eben nur noch 5%, was dann auch direkt 5% höheren FPS entspricht.


Grafikeinstellung auf "Low", heißt in der Regel niedriger auflösende Modelle, aggressiveres LOD, reduziertes Post-Processing, kleinere Texturen. Sowohl die maximale Auflösung der Modelle zu begrenzen als auch LOD runter zu schrauben verhindert in der Regel das Polygone kleiner als ein paar dutzend Pixel werden.

Bei Details auf "Ultra" und 720p würde der Benchmark wohl wieder ganz anders ausschauen, traditionell zugunsten von Nvidia.
 
Ext3h schrieb:
Bei effektiv 18 Millionen Drawcalls pro Sekunde und 120 Polygonen pro Modell sind das dann nach Backface-Culling insgesamt ca. 800 Millionen tatsächlich gerenderte Polygone pro Sekunde. Wenn man sich die Ausgabe anschaut, dann erkennt man die meisten Polygone noch locker mit bloßem Auge, heißt die fallen nicht in den problematischen Bereich.

Zielt man jetzt allerdings auf 100 FPS ab, und berücksichtigt dass effektiv nicht mal 10% der Framezeit für das berechnen des G-Buffers drauf gehen sollten, dann ist man schon auf lediglich <800.000 Polygone pro Frame runter, was noch sinnvoll machbar ist.

Nvidia.
Wie kommst du auf 800 Millionen? Der 3dMark Drawcalltest ist ja eine Realanwendung und da kommen ca. 2,1 Milliarenden Polygonen raus. Da sollte das Culling ja schon dabei sein?

Bei 800 Millionen Polygonen/s und 30fps sind die Plygonen rund 3,5 mal kleiner als ein Pixel unter UHD wie will man das noch erkennen? und hast du nicht einen Rechenfehler? Bei 100 Fps sind das dann nicht 800.000 sondern 8.000.000 Millionen Polygonen pro Frame was ungefähr 0,8 Polygon pro Pixel wäre bei UHD
 
ampre schrieb:
Wie kommst du auf 800 Millionen? Der 3dMark Drawcalltest ist ja eine Realanwendung und da kommen ca. 2,1 Milliarenden Polygonen raus. Da sollte das Culling ja schon dabei sein?

Bei 800 Millionen Polygonen/s und 30fps sind die Plygonen rund 3,5 mal kleiner als ein Pixel unter UHD wie will man das noch erkennen? und hast du nicht einen Rechenfehler? Bei 100 Fps sind das dann nicht 800.000 sondern 8.000.000 Millionen Polygonen pro Frame was ungefähr 0,8 Polygon pro Pixel wäre bei UHD

2,1 Milliarden pro Sekunde vor Backface-Culling. Wobei Backface-Culling allerdings nicht der einzige Mechanismus ist, Polygone die man unter einem steilen Winkel sieht können dabei auch noch wegfallen. Also effektiv so irgendwo um die 800-900 Millionen Polygone die überhaupt gerastert wurden.

Dann soll die GPU allerdings nicht nur Geometrie bearbeiten - der Benchmark hat da ganz bewusst auf Postprocessing verzichtet. Realstisch wären da allerdings nicht 100% der Zeit im Pixelshader, sondern eher so maximal 10% in Vertex+Pixelshader für die Geometrie, und der Rest dann wegen Deferred Rendering im Postprocessing.

Das mit den 800.000 Polygonen pro Frame ist aber auch nur das obere Limit an Geometrie, unter der Annahme dass die Polygone auch in etwa die gleiche Größe haben wie in dem Benchmark.

Entscheidend ist wie gesagt der Anteil an zu kleinen Polygonen weil das den Verschnitt erhöht. Bei einer klassischen Pipeline ohne Deferred Rendering und einem entsprechend größeren Pixelshader, kann dieser Verschnitt AMD mal eben bis zu 50% langsamer machen als Nvidia, im absoluten Worstcase, da der Verschnitt mit dem Anteil der Pixelshader an der Gesamtlaufzeit auf multipliziert wird.

Da reichen bei einer ungünstig geschriebenen Pipeline bereits ein paar Objekte im Hintergrund bei denen LOD nicht korrekt funktioniert um die Performance bereits spürbar runter zu ziehen. Das lässt sich bei AMD bis zu dem Punkt treiben, wo die GPU zwar 100% ausgelastet ist, aber effektiv nur 1/64tel der Rechenleistung tatsächlich genutzt wird. Bei Nvidia "nur" bis runter auf 1/32tel. Oder bei AMD runter auf 1/2, während Nvidia noch überhaupt keine Verluste hin nimmt, wenn man die Situation böswillig herbeiführen will.
 
Zuletzt bearbeitet:
Zurück
Oben