AW: DirectX 12: Asynchronous Shader auf Geforces laut Oxide ein "absolutes Desaster"
Und an was hapert es bei Nvidia, an der Software oder an der Hardware?
Es gibt eine ziemlich vereinfachte Erklärung auf Reddit auf english.
Habe sie mal für euch übersetzt:
Denke an einen Verkehrsfluss, der sich von A nach B bewegt.
NV GPUs: Hat eine Straße mit einer Spur für Autos(Grafik) und 32 Spuren für LKWs(Compute).
Aber es ist nicht möglich, dass Autos und LKWs die Straße zur selben Zeit benutzen. Wenn die Straße von Autos befahren wird, müssen alle LKWs warten bis keine Autos mehr kommen und dann können sie erst fahren. Das ist der sogenannte „context switch“ von dem die Programmierer reden. Das ist eine große Leistungseinbuße.
AMD GPUs auf Basis von GCN: Hat eine Straße(CP, Command Processor) mit einer Spur für Autos und LKWs. Hat jedoch weitere 8 Straßen (ACEs; Asynchronous Compute Engines) mit jeweils 8 Spuren pro Straße(64 insgesammt) nur für LKWs.
So können LKWs
und Autos zur gleichen Zeit fahren, völlig parallel und asynchron.
Die LKWs durch die ACEs(je nach dem wie viele vorhanden sind) und die Autos durch den CP. Es ist kein „context switch“ erforderlich.
Nvidias Design ist für DX11 gut, weil DX11 nur eine Straße nutzen kann. Die ACE Einheiten in AMDs GCN Design tun nichts unter DX11, sie sind nicht erreichbar/geschlossen. DX12 öffnet all diese Straßen der ACEs.