3DMark Time Spy wegen angeblicher Nvidia-Bevorzugung in der Kritik

Bei solchen blöden Kommentaren kann man ja nur Fanboy werden -.-

Ich versuche immer neutral zu bleiben, aber bei sowas geht mir mein grüber Hut hoch :schief:
Gut das dir der Hut hoch geht.

Vielleicht fällt er dann mal ab ;)

Immer was neues im GPU Bereich, ein Skandal nach dem anderen :D es bleibt spannend....
 
Time Spy wendet automatisch einen alternativen Renderpfad an, bei dem Asynchronous Compute deaktiviert ist.

Das ist doch cheaten. Wenn die Karte miese Performance bei AC hat, hat sie das nun mal. Da braucht man keine Zahlen schön reden oder verbessern, in dem man den Renderpfad ändert! Wie soll man jetzt Futuremark noch als Neutral werten können, wenn sie Nvidia in der Hinsicht entgegenkommen?
 
Das scheinen hier einige nicht zu verstehen. Es geht nicht darum, dass jetzt eine Seite beleidigt ist, weil die andere doch nicht so schlecht unter DX12 abschneidet.
Eigentlich sollte dieser Benchmark, der sich "DX12-Test" schimpft, ja gerade die neuen Features testen, sonst hätte man ihn auch "DX11 Test mit ausgewählten DX12 Features" nennen können.
Das Problem ist, dass die meisten sich die Ergebnisse anschauen und gar nicht wissen wie diese zustande gekommen sind.
 
"Unter gleichen Bedingungen" heißt aber nicht, dass als Grundlage Bedingungen gewählt werden, die AMD möglichst gut liegen. Natürlich könnte man die maximal mögliche Implementierung von AC verwenden, mit der das gesamte Leistungspotenzial von GCN abgerufen wird. Dann würde alles andere aber unweigerlich weit unterhalb dieses Potenzials laufen. "Unter gleichen Bedingungen" kann daher nur heißen, dass alle GPUs im selben Verhältnis bevor- bzw. benachteiligt werden; würde man AC oder FL 12_1 vollständig nutzen, hätte man einen einseitigen Schwerpunkt auf AMD bzw. NV gelegt.

Der 3DMark soll die reale 3D-Performance in den meisten Spielen abbilden; in den meisten Spielen werden jedoch keine AC-Implementierungen genutzt, die AMD möglichst gut dastehen lassen. ...

Unterschiedliche Renderpfade sind bei Spielen gang und gebe.

Wenn ich etwas vergleichen will, müssen die Randbedingungen für alle zu testenden Teilnehmer gleich sein. Wenn ich für einen Teilnehmer die Randbedingungen ändere, warum auch immer, ist die Vergleichbarkeit nicht mehr gegeben.
Wenn die Einstellung "AC on" heisst, hat die gefälligst für alle Teilnehmenden ausnahmslos aktiviert zu sein und nicht selektiv je nach Protagonisten.

Was Spiele angeht ist das eine ganz andere Sache. Solange ich diese nicht als Benchmark heranziehe, um verschiedene Karten zu vergleichen, kann jeder Hersteller gerne versuchen, das Beste aus seiner Hardware herauszuholen. Das ist sicher im Sinne des Users.

Cunhell
 
@captain drink

wie kann sich dieser benchmark mit der leistungswirklichkeit decken wenn dieser renderpfad für die nvidia karten überhaupt nicht in spielen vorkommt? letzt endlich kann man eigentlich dann nur noch sagen, alle benchmark apps in die tonne und nur noch auf vergleiche in echten games konzentrieren.

gruß

Tut er doch. Unterschiedliche Renderpfade für unterschiedliche IHVs bzw. Architekturen sind ganz normal (vgl. z.B. BF4 mit Sonderpfad für NV).

Das ist doch cheaten. Wenn die Karte miese Performance bei AC hat, hat sie das nun mal. Da braucht man keine Zahlen schön reden oder verbessern, in dem man den Renderpfad ändert! Wie soll man jetzt Futuremark noch als Neutral werten können, wenn sie Nvidia in der Hinsicht entgegenkommen?

Das ist doch cheaten. Wenn die Karte miese Performance bei FL 12_1 hat, hat sie das nun mal. Da braucht man keine Zahlen schön reden oder verbessern, in dem man den Renderpfad ändert! Wie soll man jetzt Futuremark noch als Neutral werten können, wenn sie AMD in der Hinsicht entgegenkommen?

Wenn ich etwas vergleichen will, müssen die Randbedingungen für alle zu testenden Teilnehmer gleich sein. Wenn ich für einen Teilnehmer die Randbedingungen ändere, warum auch immer, ist die Vergleichbarkeit nicht mehr gegeben.
Wenn die Einstellung "AC on" heisst, hat die gefälligst für alle Teilnehmenden ausnahmslos aktiviert zu sein und nicht selektiv je nach Protagonisten.

Was Spiele angeht ist das eine ganz andere Sache. Solange ich diese nicht als Benchmark heranziehe, um verschiedene Karten zu vergleichen, kann jeder Hersteller gerne versuchen, das Beste aus seiner Hardware herauszuholen. Das ist sicher im Sinne des Users.

Cunhell

Also ist es nicht okay, wenn für NV die Bedingungen geändert werden, aber es ist okay, wenn für AMD die Bedingungen geändert werden (Stichwort FL 11_0 gg. 12_1)? Sehr neutrale Sichtweise.
 
Ist das gleiche. Als wenn ich mit einer R9 290 im firestrike Benchmark die tesselation im Treiber deaktiviere/drosseln

Das Ergebnis ist dann verfälscht und es ergibt ein besseres Ergebnis...
 
Es wird also kein wirkliches DX12 beim "DX12-Test" unterstützt, und er ist auf wenig VRAM-Verbrauch ausgelegt. Hm, mal grübeln.. Welchem Hersteller könnte das alles wohl helfen?

Mich macht das "DX11-Feature-Level" auch etwas stutzig, aber ich hoffe dass zumindest echtes Multithreading genutzt wird, vergleichbar zu Mantle-, DX12- und Vulkan-Games wo eindeutig der CPU-Overhead reduziert wird.

Weiß jemand wie stark der Tessellation-Faktor im Time Spy eigentlich ist? Ab 32x hat denke ich selbst eine RX 480 das deutliche Nachsehen gegenüber Nvidia-Modellen. Was wäre hier also ein guter Kompromiss um keinen Hersteller in die Karten zu spielen, Faktor 16x? Oder wäre das schon AMD-freundlich?
 
Futuremark scheint sich mit Feature Level 11 für ganz clever zu halten und unterstützt garnicht erst AC, schreibt sich aber trotzdem DX12 auf die Fahnen. Und derjenige, dem dies am Ende nützt, ist Nvidia.
Ja, das steht in dem Steam-Thread („kein AC“) und im Whitepaper (FL11_0). Ersterem widerspricht Futuremark ja. Nur: Gibt's da noch mehr Anhaltspunkte oder basiert das alles auf dem einen lauten Schrei dieses Steam-Nutzers?
 
Damit würde sich der Test selbst ad absurdum führen. Ohne gleiche Voraussetzungen gibts auch keine Vergleichbarkeit. Sollen sie halt den AC-Kram ganz entfernen und "DX11 mit Zusatzfeatures" oder so drauf schreiben, wenn dann wenigstens alle Karten dasselbe berechnen. Oder gleich einen vernünftigen Benchmark rausbringen... es kann nicht sein, dass man Zugeständnisse an einen Hersteller macht und gleichzeitig am Ende eine Zahl rausgibt, die Vergleichbarkeit vorgaukelt.
Ich unterstelle erst mal nicht, dass Futuremark und nVidia hier zusammen arbeiten, dazu fehlen die Beweise. Aber wenn die Vorwürfe wirklich stimmen sollten ist Time Spy als DX12 Benchmark eben noch nutzloser, als er ohnehin schon ist...

Irgendwann gibts Benchmarks, die bei einer GTX1260 automatisch und unabänderlich in 1080p laufen und bei einer GTX1280 in 2160p und die danach trotzdem die erreichten Punkte direkt vergleichen, weil eine Karte ja eine 1080p Karte und die andere für 4K gedacht ist.:ugly:
 
3D Mark nutze ich schon Ewigkeiten nicht mehr um Grafikkarten zu vergleichen. Es müsste einen Pfad geben an dem sich beide Hersteller messen müssen und nicht der einen oder anderen Karte einen besonders tollen Pfad zaubern. Das Nvidia Karten kein A Sync Compute Shader beherrschen müsste doch jeder wissen, oder nicht? Scheinbar hält es Nvidia für sinnvoller sich einen Pfad erstellen zu lassen, als mal ihre betagten Grafikkarten mit einem Feature auszustatten, dass der Konkurrent seit mehreren Generationen bereithält.

Und auf einmal sehen die eigenen Grafikkarten nicht mehr so gut aus, den das war der einzige Grund noch Nvidia zu kaufen, die tollen Tests und Balkendiagrammen.
Aber jemand muss ja Futuremark am leben erhalten. Meiner Meinung nach ist das Marktmanipulation.
 
Zuletzt bearbeitet:
"Unter gleichen Bedingungen" heißt aber nicht, dass als Grundlage Bedingungen gewählt werden, die AMD möglichst gut liegen. ..

Gerade bei einem Grafikbenchmark sollten alle Funktionen die den Spieleentwicklern bereitstehen getestet werden. Wenn eine GPU irgendwas nicht, oder nicht gut kann muss das herauskristallisiert werden.
Wäre es unter DX11 in Ordnung gewesen, wenn Futuremark einen speziellen Renderpfad für AMD eingebaut hätten, damit die schlechte DX11 Tauglichkeit verschleiert wird? Denke nicht....

edit: fett vergessen
 
Zuletzt bearbeitet:
Dass der 3DMark Time Spy von sich aus einen eigenen Renderpfad für Nvidia nutzt, kann ich aus der Aussage des Futuremark-Mitarbeiters übrigens nicht schließen. Zumal es nichtmal um Nvidia, sondern um Nvidia Maxwell geht.

edit:
Die Aussage Frame Overlap deut ich eher darauf, dass während der Berechnung von Frame X noch Post-Processing von Frame X-1 und evtl. schon Shadowmap-Generation von Frame X+1 läuft. So, wie es zumindest mit dem Post-Processing auch alle „echten“ DX12-Spiele machen.
 
Nein, das ist falsch: Die "gleichen Bedingungen" mit 100% gleichem Code gibt es nunmal nicht. Das fängt auch schon damit an, dass die Hersteller verschieden AA, AF... implementieren, mit den Shadern anders umgehen, usw.
DIe "gleichen Bedingungen" sind also nicht, dass der Code der gleiche ist, sondern die Ausgabe mitsamt der API dieselbe ist.
WIe schon erwähnt, die Bedingungen waren nie 100% gleich, aber am Ende muss das Bild passen und dann kann man schauen wer dabei wie schnell ist.
Das ist der Sinn vom Benchmark.
Ob bei einem Festplattenbenchmark der Controller von Intel anders sortiert als der von Sandforce ist herzlich egal, was am Ende zählt ist die erbrachte Leistung.
Sonst müsste man ja auch beim Autovergleichstest jedesmal in den Mercedes den BMW Motor einbauen, nur um zu schauen, wie man mit dem gleichen Motor performen würde...

Wenn du annähernd gleichen Code und Optimierungen forderst, ist dir wohl nicht klar, wozu eine Low-Level API überhaupt gut ist. Sie ist genau dazu da, dass die jeweiligen Stärken einer Architektur genutzt werden und Schwächen umgangen.

Nein, du scheinst eine sehr komische Vorstellung von Benchmarks zu haben. Wenn ich die gleichen Funktionen einer Programmierschnittstelle aufrufe, dann sind die Grundbedingungen gleich. Diese Funktionsaufrufe sind in der Schnittestelle (wie z.B. DirectX 12) standardisiert - dazu brauche ich keine proprietären Funktionen wie Nvidias TXAA oder AMDs Shader Intristic Functions.
Hingegen einen Benchmark speziell auf eine oder andere Architektur anzupassen ist keines Benchmarks würdig. Dann sind die Bedingungen nämlich nicht gleich und der Benchmark ist eindeutig subjektiv, vor allem wenn entsprechende Anpassungen nur für eine Architektur gemacht werden. Soetwas einen echten Benchmark zu nennen ist ein Witz.

Ein Low-Level-Zugriff bedeutet nicht, dass eine architekturspezifische Anpassung stattfindet kann oder muss; dies ist nur begrenzt unter DirectX 12 der Fall. Low-Level bedeutet das du Zugriff auf eine Reihe - in der Schnittstelle vordefinierte - Hardwarekomponenten hast. Es gibt in DirectX 12 keine AMD- oder Nvidia-spezifischen Befehle für irgendwelche Sonderzugriffe, welche eine gesonderte Implementierung des Codes benötige. Nur "Optimierungen"
Schau dir mal ein paar Code-Beispiele von Microsoft's GitHub an, da gibt es auch keinen Extra-Code für AMD oder Nvidia.

"Unter gleichen Bedingungen" heißt aber nicht, dass als Grundlage Bedingungen gewählt werden, die AMD möglichst gut liegen. Natürlich könnte man die maximal mögliche Implementierung von AC verwenden, mit der das gesamte Leistungspotenzial von GCN abgerufen wird. Dann würde alles andere aber unweigerlich weit unterhalb dieses Potenzials laufen. "Unter gleichen Bedingungen" kann daher nur heißen, dass alle GPUs im selben Verhältnis bevor- bzw. benachteiligt werden; würde man AC oder FL 12_1 vollständig nutzen, hätte man einen einseitigen Schwerpunkt auf AMD bzw. NV gelegt.

Ich habe auch nie gefordet, dass eine AMD-bevorzugene Grundlage erforderlich sei. Fakt ist aber, dass man für die Karten des zahlungskräftigeren Unternehmen deutlich vorteilhafte Bedingungen gewählt hat und sogar einen Sonderfallausnahme für Maxwell macht. Hier hätte man genausogut eine zweite Ausnahme für AMD-Karten machen können, welche dann mit parallelisierter Ausführung dank Asynchronous Compute arbeitet - so wären alle Grafikkarten unter Idealbedingungen getestet worden, wenn man schon keine gleichen Bedingungne schaffen will. Nur hat 3D Mark anscheinend kein Interesse daran, dass AMD die gleiche Sonderbehandlung bekommt wie Nvidia - woran liegt das?

Der 3DMark soll die reale 3D-Performance in den meisten Spielen abbilden; in den meisten Spielen werden jedoch keine AC-Implementierungen genutzt, die AMD möglichst gut dastehen lassen.

Ist das so? Bisher sieht das nämlich ganz anders aus! Bisher scheint die Großzahl aller grafisch anspruchsvollen Spiele mit DirectX 12 AC zu unterstützen und einen deutlichen Leistungsschub bei AMD zu berwirken. Schau dir mal die Leistungssteigerungen in den echten Spiele-Benchmarks an; der liegt bei 15-20% in den meisten Fällen. Auf den Konsolen ermögtlicht AC einen Leistungszuwachs von bis zu 7 ms gewonnener Renderzeit, was je nach Ziel (30/60 Hertz) einen Leistungsgeweinn von 20% bis 41% entspricht!

Das konsequente Vorgehen seitens Futuremark bestand daher darin, einen middle ground zu finden. Da sich die Ergebnisse des Benchmarks mit der Leistungswirklichkeit recht gut decken, scheint mir das auch ganz gut gelungen zu sein.

Eben nicht! Es ist kein "middle ground" eine Extra-Implementierung für Maxwell zu bringen, welche erwiesenermaßen in einigen Spielen nicht vorhanden ist (selbst beim Nvidia-gesponsorten Rise Of The Tomb Raider verringert der AC-Patch die FPS von Maxwell, auch wenn nur in relativ geringen Maßen).

Ein vernünftiger Benchmark für DirectX 12 mit AC würde auf die reale Marktsituation angepasst sein, soll heißen: Die Entwickler schauen sich die bisherigen DirectX-12-Titel an und wählen daraufhin eine vergleichbare AC-Implementierung. Das ist aber nicht der Fall, der "middle ground" wurde nicht so gewählt, dass er sich mit der Leistungswirklichkeit deckt, sonder so dass Nvidia nicht schlecht darsteht. In Ashes of the Singularity, Hitman, Quantum Break und Total War: Warhammer, Gears of War: Ultimate Edition ist eine Fury X unter DirectX 12 schneller als eine GTX 1070, nur in Rise of the Tomb Raider ist letztere schneller. Nun schau dir mal Time Spy an und sage mir, inwiefern das die Leistungswirklichkeit wiederspiegelt. :ugly:
 
Gibt's außer dem Thread in der Steam-Community, in dem einer der Entwickler das ja komplett bestreitet, eigentlich weitere Indizien für die These, dass FM und Nvidia hier miteinander im Bett liegen?

Ich muss ehrlich sagen, egal wo man hinschaut neuerdings nimmt das Bashing gravierend zu, selbst hier im PCGH Forum wurden ja in der letzten Zeit ne Menge Leute mit einer "Pause" im Forum belohnt. Klar sind solche Themen immer eine Kontroverse, aber wie schnell doch die Sachlichkeit verloren gehen kann, und das völlig ohne handfeste Beweise. Somit bleibt das ganze Thema nur mehr eine These ohne Beweis.
Ich lehne mich mal aus dem Fenster und sage (mich eingeschlossen), kaum einer hier, der hier, völlig egal auf welcher Seite er/sie steht (und bei einem Graka-Hersteller eine Seite zu wählen ist schon grenzwertig), so vom Leder zieht, hat genug Ahnung von der Thematik um wirklich eine fundierte Aussage treffen zu können...

Ne persönliche Meinung zu haben ist ne tolle Sache und sei jedem gewährt, aber bitte ohne den Eindruck, man muss ne Firma (Religion anyone?!) mit seinem Leben verteidigen...

Ecksim hat es gestern sehr passend beschrieben in seinem Kommentar. Daß sich keiner was von der Performance oder eben Nicht-Performance des anderen Grafikkarte, CPU oder PC kaufen kann, sonder nur zählt was man selbst hat oder haben will. Tja und wenn das nicht reicht muss man investieren oder mit Abstrichen leben.
 
SO, SO ist nun bei NVidia Karten AC On oder OFF im Benchmark ?? Kapier das nicht

NVidia Maxwell - ON gleich off
NVidia Pascal - ON gleich on
AMD - ON gleich on
oder wie soll ich das jemanden erklären den ich die Benchmark´s als Kaufberatung zeigen möchte ?
 
Also ist es nicht okay, wenn für NV die Bedingungen geändert werden, aber es ist okay, wenn für AMD die Bedingungen geändert werden (Stichwort FL 11_0 gg. 12_1)? Sehr neutrale Sichtweise.

Liest Du eigentlich was ich schreibe? Anscheinend nicht. Ich habe weder Nvidia noch AMD erwähnt sondern allgemein von Teilnehmern geschrieben, für die alle Einstellungen gleich zu sein haben.
Wenn AC "on" ist, hat AC on zu sein. Wenn der FL 12_1 "on" ist, hat der on zu sein. Punkt!!
Wenn für beide Karten FL 11_0 on gesetzt ist, kann ich die Karten vergleichen, wie sie unter dem FL 11_0 performen.

Nochmals, es geht darum, dass man nichts vergleichen kann wenn man unterschiedliche Randbedingungen verwendet.

Alles andere ist kein Benchmark sondern Tuning um gut da zu stehen.

Cunhell
 
Gerade bei einem Grafikbenchmark sollten alle Funktionen die den Spieleentwicklern bereitstehen getestet werden. Wenn eine GPU irgendwas nicht, oder nicht gut kann muss das herauskristallisiert werden.
Wäre unter esDX11 in Ordnung gewesen, wenn Furutemark einen speziellen Renderpfad eingebaut hätten, damit die schlechte DX11 Tauglichkeit verschleiert wird? Denke nicht....

Sie haben einen Renderpfad eingebaut, der kein FL 12_1 nutzt. FL 12_1 ist eine Option, die den Spieleentwicklern bereitssteht. FL 12_1 beherrschen AMD-GPUs nicht, das sollte also herauskristallisiert werden. Wärst du also dafür, dass FL 12_1 getestet wird, so dass AMD völlig abstürzt?

Ich habe auch nie gefordet, dass eine AMD-bevorzugene Grundlage erforderlich sei. Fakt ist aber, dass man für die Karten des zahlungskräftigeren Unternehmen deutlich vorteilhafte Bedingungen gewählt hat und sogar einen Sonderfallausnahme für Maxwell macht. Hier hätte man genausogut eine zweite Ausnahme für AMD-Karten machen können, welche dann mit parallelisierter Ausführung dank Asynchronous Compute arbeitet - so wären alle Grafikkarten unter Idealbedingungen getestet worden, wenn man schon keine gleichen Bedingungne schaffen will. Nur hat 3D Mark anscheinend kein Interesse daran, dass AMD die gleiche Sonderbehandlung bekommt wie Nvidia - woran liegt das?

Man macht doch auch eine Sonderausnahme für AMD. AMD kann kein FL 12_1, Maxwellv2/Pascal hingegen schon. Effektiv bleiben diese Gens also unter ihrer realen Leistungsfähigkeit und werden benachteiligt. Es werden also weder AMD noch NV unter Idealbedingungen getestet, was man sicherlich kritisieren kann; falsch ist es aber zu sagen, dass NV unter Idealbedingungen getestet wird, AMD aber nicht.

Liest Du eigentlich was ich schreibe? Anscheinend nicht. Ich habe weder Nvidia noch AMD erwähnt sondern allgemein von Teilnehmern geschrieben, für die alle Einstellungen gleich zu sein haben.
Wenn AC "on" ist, hat AC on zu sein. Wenn der FL 12_1 "on" ist, hat der on zu sein. Punkt!!
Wenn für beide Karten FL 11_0 on gesetzt ist, kann ich die Karten vergleichen, wie sie unter dem FL 11_0 performen.

Nochmals, es geht darum, dass man nichts vergleichen kann wenn man unterschiedliche Randbedingungen verwendet.

Alles andere ist kein Benchmark sondern Tuning um gut da zu stehen.

Cunhell

Das ist doch gerade der Punkt, dass "AC on" als Ausgangspunkt für die gleichen Bedingungen völlig willkürlich gewählt ist. Genauso gut könnte man argumentieren, dass "AC off" der Standard ist, und AMD bevorzugt wird, weil man AC extra für AMD aktiviert hat. Worauf ich hinauswill: Was als Standard bzw. für alle zu gelten habende Bedingungen definiert, ist völlig arbiträr. Dass AMD-Fans natürlich AMD-freundliche Settings als Standard definieren wollen, überrascht ebenso wenig, wie dass NV-Fans NV-freundliche Settings als Standard ansehen wollen.
 
Sie haben einen Renderpfad eingebaut, der kein FL 12_1 nutzt. FL 12_1 ist eine Option, die den Spieleentwicklern bereitssteht. FL 12_1 beherrschen AMD-GPUs nicht, das sollte also herauskristallisiert werden. Wärst du also dafür, dass FL 12_1 getestet wird, so dass AMD völlig abstürzt?
Ja. Sollte es!

PS: Da wäre AMD genötigt, entsprechend zu handeln, und diese Feature einbauen.
Wenn gestestet wird, bitte für alle gleich.
 
Copy&Paste war noch nie schöner:

KurosSmurai117: " Andererseits würde es aber ja bedeuten dass man Programme ja an diese Arbeitsweise anpassen kann wodurch die Grünen gewinnen. Ist irgendwo geregelt wie man AC genau zu nutzen hat? Wenn nicht bleicht es doch den Entwicklern überlassen auf welche Architektur sie sich einschießen. Wer scheibt denn vor dass man AC dann nur exakt auf GCN zuschneiden darf? Wie gesagt falls es da keine Reglung gibt."

Nein, der Vorwurf ist haltlos und das ist nicht das erste mal das Mahigans falsche Ausführungen eine Hysterie auslösen.

Das hier ist der öffentlich dokumentierte Abschnitt zu Multiengine:
Synchronization and Multi-Engine (Windows)

Man definiert hier welchen Queue-Typen man haben möchte, GFX, Compute oder Copy und fühlt diese dann mit den entsprechenden Befehlslisten auf.
Ein Synchronisationsmechanismus wird verwendet um im Programmverlauf anzugeben, ab wann die zusätzlichen Queues zum Einsatz kommen und ab wann sie beendet werden.
Es gibt noch die Möglichkeit die Priorität anzugeben, falls bestimmte Berechnungen und ihre Ergebnisse früher gewünscht sind.

Das ist auch schon praktisch das ganze Software-Konstrukt, dass einem allerdings keine Garantie darüber gibt, ob die Hardware die Anweisung genau so konsumiert wie man sich das vorstellt, da die Spezifikation in der Hinsicht der Hardware nichts vorschreibt.
Die Hardware könnte die Queues parallel bearbeiten, sie könnte allerdings auch das ganze nacheinander forcieren, die Hardware kann auf die angegebene Priorität achten, sie kann das aber auch ignorieren.
Der Knackpunkt ist einfach das dies eine Software-Abstraktion ist, die unter jeder Hardware funktionieren muss, aber keine Vorschriften darüber macht wie genau.
Als Entwickler muss man sich deswegen bezüglich der Hardware erkundigen und Testläufe unternehmen, ob der Programmcode auch in der Praxis effizient ausgeführt wird.

Der 3D Mark verwendet hier den absolut gleichen Mechanismus wie alle anderen Entwickler bei ihren DX12 Anwendungen auch.
Der Vorwurf hier würde gar nicht Async Compute verwendet werden, ist einfach falsch.
Was man sowieso bei der ganzen Async Compute Geschichte haben möchte, ist eine Überlagerung von Aufgabenbereichen die unterschiedliche Hardwareblöcke auslasten.
Z.B. bei Shadow-Maps drehen die ALUs häufig Däumchen, hier könnte die Hardware dank einer zusätzlichen Compute-Queue parallel noch Compute-Shader durch die ALUs berechnen lassen.
Daraus folgt dann ein effektiver Gewinn der Performance, man möchte natürlich nicht Aufgaben mixen welche die selben Flaschenhälse haben.

Und die Time Spy Demo hat das erfolgreich umgesetzt, für AMD und sogar Nvidia:
3DMark Time Spy mit DirectX 12 im Benchmark (Seite 2) - ComputerBase

9-17% Gewinn für die Radeons, bei Ashes of the Singularity sind es ein paar % weniger, bei Hitman gibt der Entwickler 5-10% an.
Da muss es erst einmal ein Spiel geben was auch bei den Radeons bessere Resultate hervorbringt.

bonesai: "Theoretisch wäre es vorstellbar das man das ganze in einem Benchmark so hindreht das man den Compute Pipes von Pascal genügend Möglichkeit gibt um die Grafik und Computing Aufgaben seperat voneinander "besser" zu erledigen und zu profitieren. Das wäre dann natürlich eine Verfälschung da man so etwas nur in einem fix definierten Szenario umsetzen koennte und in einem Game wohl eher so nicht machbar ist... Also in der Praxis dann wohl wertlos.[...]"

Ohne den Programmcode zu kennen ist es natürlich nur eine Spekulation, ob Spiele ihre Pipelines genau so designen könnten oder nicht.
Ganz klar muss man sagen, dass jeder Entwickler das anders umsetzen könnte, die Time Spy Demo kann vom Code niemals eine allgemeine Referenz für alle Anwendungen sein.
Diese Erkenntnis ist aber nichts neues, man sollte die Ergebnisse immer als das betrachten was sie sind, Ergebnisse für eine einzige Anwendung.
Man kann keine App schreiben die 100% Herstellerneutral ist und die optimale Vergleichsbasis bietet, sowohl für die Hardware, als auch die Software.

Forenlink:
http://extreme.pcgameshardware.de/news-kommentare-zu-tools-anwendungen-sicherheit/446034-3d-mark-time-spy-d3d12-benchmark-veroeffentlicht-gtx-1070-1080-mit-zuwaechsen-durch-async-compute-15.html#post8343774

------------------------------------------------------------

Freiheraus: "Da bestätig ein 3DMark-Entwickler in der ersten Stellungnahme, dass Nvidia im Treiber Async Compute für Maxwell explizit deaktiviert hat und dann wird das im Update nicht mal in einem Nebensatz erwähnt. Halte das für ein wichtiges Detail, weil das die Spekulationen beendet, weshalb Maxwell in Time Spy weder Leistung verliert noch zugewinnt."


Nvidia hat es sehr wahrscheinlich für jede Applikation deaktiviert.
Wirklich interessant wäre es zu wissen wie der Treiber es genau handhabt?
Multiengine gibt Synchronisationspunkte vor, ich weiß nicht ob es sicher ist immer alle zu ignorieren.
Abhängig davon wie viele Sync-Punkte es gibt und welche Aufgaben in der Compute-Queue ausgeführt werden sollten, könnten sich messbare bis gar keine Verluste bei Nvidia einstellen.
Ashes of the Singularity ist leider das einzige Spiel, wo man explizit Async on/off testen kann und die Messschwankungen scheinen etwas höher als normal zu sein.
Jedenfalls hat CB teilweise bis zu 10% Verlust gemessen, im Schnitt lag der Unterschied aber bei unter 3%, egal ob Kepler oder Maxwell.
Ashes of the Singularity DirectX-12-Leistungsexplosion (Seite 3) - ComputerBase

KuroSamurai117: " Also ist es letzten Endes eine Entwicklersache wie er es umsetzt und auf die jeweilige Hardware anpasst."


Wie halt immer, egal ob Tessellation, Pixel-Shader, Geometry-Shader oder Compute-Shader.
Die Hardware unterscheidet sich bezüglich der Fixed-Function-Pipelines, der Effizienz, der Cache- und Register-Größen, der Thread-Group-Size.
Alles hat Auswirkungen darauf wie effizient die Hardware etwas konsumiert, der Software-Mechanismus ist immer der gleiche, aber wie es unter der Haube abläuft ist unterschiedlich und da das starke Auswirkungen haben kann, muss man immer schauen wieso Hardware X schlechter oder besser performt als Hardware Y.

Async Compute stellt dabei keinen Unterschied dar.

Forenlink:
http://extreme.pcgameshardware.de/news-kommentare-zu-tools-anwendungen-sicherheit/446034-3d-mark-time-spy-d3d12-benchmark-veroeffentlicht-gtx-1070-1080-mit-zuwaechsen-durch-async-compute-16.html#post8343897

------------------------------------------------------------

Man lernt schließlich nie aus:
http://s3.amazonaws.com/download-aws.futuremark.com/3DMark_Technical_Guide.pdf

Futuremark hat eine nette Dokumentation bezüglicher ihrer Benchmarks, viele Details wie Compute-Shader Aufrufe, Tessellation-Patches, verwendete Ressourcen und ihre Formate sind dokumentiert.
Auch wie und wo der Time Spy Benchmark Async Compute verwendet:
Seite 28 schrieb:
Asynchronous compute is utilized heavily to overlap multiple rendering passes for maximum utilization of the GPU. Async compute workload per frame varies between 10-20%.
Seite 30 schrieb:
Lighting is evaluated using a tiled method in multiple separate passes.

Before the main illumination passes, asynchronous compute shaders are used to cull lights, evaluate illumination from prebaked environment reflections, computescreen-space ambient occlusion, and calculate unshadowed surface illumination.
These tasks are started right after G-buffer rendering has finished and are executed alongside shadow rendering. All frustum lights, omni-lights and reflection capture probes are culled to small tiles (16x16 pixels) and written to an intermediate buffer.
Seite 31 schrieb:
Particles are simulated on the GPU using asynchronous compute queue.
Simulation work is submitted to the asynchronous queue while G-buffer and shadow map rendering commands are submitted to the main command queue.

Futuremark verwendet Async Compute für keinen unorthodoxen Fall, sie überlappen Aufgaben die genau so als Beispiel für Async-Compute genannt werden, Shadow-Map-Rendering + Compute-Shader Berechnungen wie Lightning, Post-Processing, Physics etc.
http://image.slidesharecdn.com/hode...directx12-and-vulkan-23-638.jpg?cb=1440081531

Ein BF4-Beispiel von DICE:
http://image.slidesharecdn.com/rend...efield-4-with-mantle-42-638.jpg?cb=1395313870

Mich macht das "DX11-Feature-Level" auch etwas stutzig, aber ich hoffe dass zumindest echtes Multithreading genutzt wird, vergleichbar zu Mantle-, DX12- und Vulkan-Games wo eindeutig der CPU-Overhead reduziert wird.

Weiß jemand wie stark der Tessellation-Faktor im Time Spy eigentlich ist? Ab 32x hat denke ich selbst eine RX 480 das deutliche Nachsehen gegenüber Nvidia-Modellen. Was wäre `hier also ein guter Kompromiss um keine Hersteller in die Karten zu spielen, Faktor 16x?
Es gibt kein DX11 Feature-Level, es gibt ein Feature-Level 11 unter DX11 und auch unter DX12.
DX12 bietet vier Feature-Levels an, 11.0, 11.1, 12.0 und 12.1

Das Feature-Level 11 ist zwischen DX11 und DX12 fast identisch, aber das Feature-Level schließt nicht die gesamte API mit ein.
Feature-Level unabhängig ist unter DX12 immer die explizite Speicherverwaltung vom Entwickler, die Möglichkeit Command-Buffer vom jeden CPU-Thread zu befüllen ( Multithreading) und Multiengine was in den Foren meistens als Async Compute bezeichnet wird, daneben noch paar andere Dinge wie ExecuteIndirect, womit die GPU sich teilweise selber füttern kann und nicht immer auf einen CPU-Aufruf angewiesen ist.

Time Spy verwendet Tess x32 als Standard.
Die Performance für Radeons ist aber weiterhin völlig in Ordnung, wenn man sich ein paar Resultate von Computerbase anschaut, da säuft niemand im zweiten Testablauf ab, wo wesentlich mehr Tess-Patches verwendet werden:
https://www.computerbase.de/2016-07/3dmark-time-spy-dx12-benchmark/3/

Radeons haben einen relativ schlechten Tess-Durchsatz bei höheren Faktoren, aber das ist nicht das einzige was die Performance manchmal abstürzen lässt.
Wenn man dank Tessellation hunderte Dreiecke hat, wo es pro Dreieck nur wenige Pixel gibt (1-5), dann sinkt der Durchsatz für die Szene dramatisch, da anstatt 16 Pixel pro Zyklus der Rasterizer sich mit 1-5 aufhalten muss.
Ein hoher Tessellation-Faktor ist nicht automatisch "böse", es kommt auch darauf an auf welche Fläche man ihn anwendet und wie viele Pixel dann pro Dreieck noch effektiv verfügbar sind.

Futuremark dokumentiert ebenso ihren Tessellation-Einsatz und das liest sich wie eine gute Implementierung und ist dank der Benchmarks auch wirklich ersichtlich:
Tessellation
The engine supports Phong tessellation and displacement-map-based detail tessellation.
Tessellation factors are adjusted to achieve the desired edge length for the output geometry on the render target (G-buffer, shadow map or other).
Additionally, patches that are back-facing and patches that are outside of the view frustum are culled by setting the tessellation factor to zero.
Tessellation is turned entirely off by disabling hull and domain shaders when the size of an object’s bounding box on the render target drops below a given threshold.
If an object has several geometry LODs, tessellation is used on the most detailed LOD.
 
Zuletzt bearbeitet:
Zurück