Nvidia Driver Overhead

Blublah schrieb:
Im allgemeinen begrüsse ich bei solchen Sachen mal kurz nachzuforschen woher das wohl stammt als zu berichten, dass angeblich irgendjemand auf einem anderen Board irgendwas behauptet hat und daraus abzuleiten, dass jemand anderer unglaubwürdig ist.
Im Prinzip ja, aber keine Zeit für so was. Ich habe auch ganz viele Konjunktive und "falls" verwendet. Bei anderen Reviewern bin ich auch sonst vorsichtiger, aber HUB hauen solche Knaller im Grunde am laufenden Band raus.

Es kann aber auch genau so gut sein, dass ein Missverständnis vorliegt!
 
Zuletzt bearbeitet von einem Moderator:
ZeroStrat schrieb:
Bei Igors Lab behauptet ein User, dass HUB angeblich gesagt haben soll, dass der Performanceunterschied daher kommt, dass AMD einen Hardwarescheduler für die Instruktionen verwendet, wohingegen Nvidia das in Software machen soll. Bin fast vom Stuhl gefallen. Ich habe das vorsichtshalber noch mit @Locuza diskutiert.
Könntest du das einordnen? nVidia hat ebenfalls einen Hardware-Scheduler?
 
@Locuza hast du Zeit, das zu erläutern? Sonst verwende ich die Aussagen (sinngemäß) aus unserer Twitter Diskussion von gestern.
 
Fazit von pcgameshardware:
Kommt eine Lower-Level-API wie Direct X 12 zum Einsatz, ist die Performance mit einer AMD-Grafikkarte, wie der RX 6900 XT, im CPU-Limit mess- und fühlbar höher.
 
Man vergleiche den ganzen Test, das Fazit mit den Clickbait Videos und der Rhetorik von HBU. Mehr muss man eigentlich nicht sagen.
 
  • Gefällt mir
Reaktionen: ZeroStrat
foo_1337 schrieb:
Man vergleiche den ganzen Test, das Fazit mit den Clickbait Videos und der Rhetorik von HBU. Mehr muss man eigentlich nicht sagen.
Ja, es geht ums Gesamtbild. Mehrere Spiele und APIs beleuchtet. Hätte mir noch mehr Vulkan gewünscht.
 
  • Gefällt mir
Reaktionen: foo_1337
@ZeroStrat, @Lurtz ,

Wenn man sich eine CPU oder GPU-Architektur anschaut, dann gibt es hunderte von Hardware-Einheiten, die sich um eine Art von Scheduling kümmern.
Wenn man von Soft- oder Hardwarescheduling spricht, dann muss man schon sehr präzise ausdrücken was man eigentlich meint und wo ein vermeintlicher Unterschied bestehen soll.

Was HardwareUnboxed ungeprüft wiedergibt ist ein Video von NerdTechGasm, welches viele Sachen falsch eingeordnet hat in Bezug auf den DX11/12-"Overhead" und das Treibermodell.

Seit Kepler verwendet Nvidia für das Instruction-Scheduling keine Hardware mehr, welche Abhängigkeiten von Instruktionen überprüft und schaut welche Register man verwenden könnte.
Man kann dank fester Latenzen ganz genau sagen, wie das Scheduling ablaufen kann, ohne Konflikte zu erzeugen.
Diese Information wird seit Kepler in Software encodiert, was einige komplexe Schaltungen in der Hardware spart.
Das hat aber nichts mit DX11 oder DX12 zu tun, welche auf einer viel höheren Abstraktionsschicht agieren.
Egal ob Fermi ("Hardware" Instruction Scheduling) oder >=Kepler ("Software" Encoded Scheduling), Nvidia's Treiber splittet die Arbeit unter DX11 auf mehrere Worker-Threads auf Seiten der CPU.

Bei AMD's GCN Hardware, welche angeblich auf Hardware-Scheduling setzt, gibt es beim Instruction-Scheduling in diesem konkreten Punkt überhaupt kein Hardware-Scheduling, es gibt auch gar kein Software-Scheduling, weil GCN prinzipbedingt anders arbeitet.
Anders als Fermi, Kepler oder nun auch AMD's eigene RDNA-HW, ist GCN eine Non-Pipelined Architecture.
Das heißt in der Pipeline wird stets nur eine Instruktion ausgeführt, alle 4 Takte kommt ein neuer Befehl und die Ausführung selber dauert 4 Takte.
GCN muss niemals arithmetische Abhängigkeiten von Instruktionen überprüfen, entsprechend gibt es weder Software, noch Hardware, die sich darum kümmert.
Bei RDNA ist das anders, die Ausführung einer Instruktion dauert 5 Zyklen, allerdings kann RDNA jeden Takt eine neue Instruktion in die Pipeline einfügen, es könnten also maximal 5 Instruktionen in der Pipeline gleichzeitig aktiv sein.
Jetzt muss man aber nach Abhängigkeiten schauen, vielleicht benötigt Instruktion B die Ergebnisse von Instruction A, dann kann man nicht die Instruktion B ausführen und es gibt Pipeline-Bubbles, als weiße Kästchen unten dargestellt.
RDNA verwendet für die Abhängigkeitsprüfungen tatsächlich Hardware, im Gegensatz zu Nvidia oder jetzt auch Intel mit Xe.
Das hat aber erneut keinen direkten Bezug auf die Art und Weise, wie DX11 und DX12 arbeiten.
GCN scheduling.jpg



Auch für AMD wäre es möglich mehrere Worker-Threads unter DX11 zu erzeugen.
Es ist überhaupt nicht so, dass bei AMD der Treiber nur die Arbeitsanweisungen weiter leitet und dann "Hardware-Scheduling" sich angeblich um alles kümmert, weswegen AMD das nicht vorher parallelisieren kann.
Ebenso hat Nvidia in dem Aspekt gar kein Problem mit dem DX12 Modell, sie richten sich nach der gleichen Spezifikation wie AMD und beide Hersteller haben unter DX12 in der Hinsicht deutlich weniger Spielraum was die Command-Buffer-Generation angeht.
Das muss der Treiber unter DX11 erledigen, während unter DX12 das die Entwickler selber explizit vorgeben.
Was tatsächlich stimmt an der Stelle ist, dass AMD "ACE"-HW hat, welche sich um die Compute-Queues kümmern, welche optional bei DX12 verwendet werden können.
Optional ist aber das Stichwort, es gibt viele DX12 Spiele, die kein Asynchronous Compute verwenden und wo die "ACEs" brach liegen.
Die sind nur nützlich, wenn auch zusätzlich Compute-Queues verwendet werden.

Nvidia's Hardware, zumindest bis Pascal, hat die Einschränkung das nur GFX oder Compute-Befehle auf einem Shader Multiprocessor laufen können, nicht Beide gleichzeitig.
Maxwell musste vor der Ausführung die Ressourcen statisch partitionieren und getrennt für GFX und Compute einteilen.
Aufgrund der Arbeitsdynamik kann diese statische Partitionierung suboptimal ausfallen und einige SM an Leerlauf leiden, weswegen Nvidia bis Maxwell eigentlich niemals zusätzliche Compute-Queues ausnutzen sollte und alle Befehle in eine Arbeitsschlange steckt.
Seit Pascal gibt es Hardware Load Balancing, was die belegten Ressourcen dynamisch anpassen kann und somit potentiellen Leerlauf reduziert, seit Pascal sieht man auch im GPUView-Profiler Compute-Queues auf Nvidia's Hardware, dabei hat der Hersteller aber nichts in Bezug auf das Software Encoded Instruction Scheduling verändert.

Und beide Unternehmen haben Hardware-Command-Processors, Hardware wie die ACEs oder GigaThread-Engine, welche sich um Draw- (3D) und Dispatch-Befehle (Compute) bis zu einem gewissen Grad kümmern und auch selber verteilen.
Ebenso sind die Wavefront/Warp-Scheduler bei AMD und Nvidia Hardwareeinheiten, auch wenn bei Nvidia die Control-Flow Informationen über die Software encodiert wurde, muss der Warp-Scheduler nach wie vor bei Load/Texture-Operations Register-Usage überprüfen und die besten Warp-Instructions auswählen, die Software gibt nicht alles vor.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: DON.HEROUR, Zwiebelsoße, Thanok und 12 andere
Erstmal danke für die Erklärung Locuza.

Als ich am Anfang letzten Jahres mir eine RX 5500xt gekauft habe, habe ich mal Interesse halber auch nach einer GeForce 1660 (super) geschaut. Bei Vergleichsvideos mit Spielsequenzen zwischen den beiden Grafikkarten hatte die GeForce tendenziell die höheren CPU Auslastungen bei Ähnlichen Fps. Ich würde die aus der Erinnerung so auf 10 bis 20% abschätzen. Die Abstände sind auch fließend gewesen. Und es wurden damals aktuelle Spiele (auch Dx11) verwendet. Ich habe das damals auf die "Software Optimierungen" Seitens Nvidia geschoben. Da ich Nvidias (sowie Intel) Geschäftsgebaren ablehne, kommt eine GeForce nur in Ausnahmefällen (besonders größer Vorteil bzw. riesen Nachteil der Konkurrenz) in Frage. Von der Technik her finde ich die Geforce Karten durchaus interessant.
 
  • Gefällt mir
Reaktionen: Locuza
Blackfirehawk schrieb:
Nun es spielt nicht jeder in 4k.. viele spielen auch in 1440p mit high refresh Displays.. hier sieht man auch schon deutliche Unterschiede zwischen AMD und Nvidia
Sehe ich ähnlich. In Steam spielen 2/3 in FullHD. Ich weiß nicht, wo immer die elitäre Betrachtung her kommt, mit einer potenten GPU wäre man grundsetzlich in 4K unterwegs.

Ein 5600X ist eine reichlich performante CPU. Wenn die die 3090 nicht ausreichend mit Rastern beliefern kann, dann ist das ein großer Nachteil.
Nun hätte ich gerne mal einen Vergleich mit Hoch bis Ultra-Settings. Medium ist dann in der Tat doch etwas ungewöhnliches. Ich vermute aber, dass sich am Ergebnis nicht viel ändern wird, da dann eher die GPU-Belastung steigt.
 
Hehe ja, 776 user in einem "Enthusiasten" Forum sind sicher repräsentativ :D
 
  • Gefällt mir
Reaktionen: DON.HEROUR und janeeisklar
Für dieses Forum sind sie es. Und dieser Beitrag ist doch hier in diesem Forum. Oder nicht?
Ich richte mich doch bei einer Neuanschaffung nicht danach wie das Wetter in der USA ist.
Wenn man diese Diskussion in diesem Forum startet, muss man doch damit rechnen das die Antworten auf die Forum-Blase gemüntzt sind, und nicht was für Rechner in Nepal laufen.

Ich hab gerade keine Umfrage im CB gefunden, deshalb hatte ich PCGH rangezogen, wird hier sehr ähnlich aussehen.
 
Zig Millionen von Spieler in Steam sind ja wohl aussagekäftiger als ein Poll in einem Forum.
Wenn ich den durchschnittlichen Benzinverbrauch ermitteln will, frage ich auch nicht im Ferrari-Forum nach.
Der Großteil spielt in FullHD - auch mit potenter GPU. So ist es nun mal.
 
  • Gefällt mir
Reaktionen: DON.HEROUR und foo_1337
Dann zieh doch mal bitte die Statistiken zusammen.
Bekommste doch bestimmt hin.
Schau nach wie viele User in FHD unterwegs sind, und stell die Zahl den verbauten 3080/3090 gegenüber.
Und schon sind wir wieder bei einer verschwindend geringen Zahl (schließlich werden keine verkauft).

Also irgendwas dichtest Du da zusammen^^

Wenn also der Großteil der User in FHD unterwegs sind, und auch eine potente Graka haben, warum beträgt dann der Anteil der Grafikkarten mit 24GB (Potente Graka) nur 0,5%?

Der Großteil der FHD-User wird eine genau so beschissene Graka haben^^
 
Deine Überlegung ist statistisch gesehen nicht zielführend, Stichwort Teilmenge. Keine Ahnung, warum du dich auf deine 3090 versteifst. Mit dem z.B. weit verbreiteten R5 3600 und der 3070 hängst du auch im CPU-Limit.
 
Zuletzt bearbeitet:
Ich versteife mich nicht, es ist nur einfach aus dem Statistiken rauszulesen. So viele 24GB-Karten gibts nicht.
Viel Erfolg mit WLTP im Ferrari-Forum^^

Und auch sehr pauschal formuliert, ich hänge mit einem 3960X+3080 auch gerne in 4K im CPU-Limit. Hängt ganz einfach mit meiner Software-Auswahl und meiner Möglichkeit/meines Wollens der Reglerbedienung begründet^^

Ich hab bei der ganzen Sache das Gefühl: Je pauschaler, desto falscher für den einzelnen.
Wenn man die pauschale Betrachtung in eine Enthusiasten-Blase wirft, muss man damit rechnen das niemand es nachvollziehen kann.
 
Zuletzt bearbeitet:
HisN schrieb:
Ich versteife mich nicht, es ist nur einfach aus dem Statistiken rauszulesen. So viele 24GB-Karten gibts nicht.
Viel Erfolg mit WLTP im Ferrari-Forum^^

Und auch sehr pauschal formuliert, ich hänge mit einem 3960X+3080 auch gerne in 4K im CPU-Limit. Hängt ganz einfach mit meiner Software-Auswahl und meiner Möglichkeit/meines Wollens der Reglerbedienung begründet^^

Ich hab bei der ganzen Sache das Gefühl: Je pauschaler, desto falscher für den einzelnen.
Wenn man die pauschale Betrachtung in eine Enthusiasten-Blase wirft, muss man damit rechnen das niemand es nachvollziehen kann.
Es geht hier ja auch nicht nur um 24GB Karten, es betrifft ja alle nvidia Karten.
 
Zurück
Oben