DirectX 12: Neues Feature soll CPUs entlasten
Work Graphs in DirectX 12 ist ein neues Feature, das darauf abzielt, die GPU-Autonomie zu stärken, die CPU zu entlasten und die Kommunikation zwischen CPU und GPU zu optimieren.
Microsoft hat eine neue Version von DirectX 12 veröffentlicht, die über ein neues Feature den Prozessor entlasten soll. In einem ausführlichen Blogbeitrag erläutern Amar Patel, Ingenieur (Direct3D), und Tex Riddell, Ingenieur (DirectX Compiler), die Funktionsweise von Work Graphs, einem System für die GPU-Autonomie in D3D12, das darauf abzielt, Einschränkungen bei allgemeinen Rechenlasten auf GPUs zu beheben und verborgene GPU-Fähigkeiten freizusetzen.
Vereinfacht ausgedrückt zielt das neue System darauf ab, auf ein effizienteres, von der GPU gesteuertes Renderingsystem umzusteigen, um den Bedarf an CPU-Rechenzeit in verschiedenen Arbeitslasten zu reduzieren.
"In vielen GPU-Workloads bestimmt eine anfängliche Berechnung auf der GPU, welche nachfolgende Arbeit die GPU erledigen muss. Dies kann durch einen Rückweg zur CPU erfolgen, um die neue Arbeit zu erteilen. Es ist jedoch in der Regel besser, wenn die GPU sich direkt selbst versorgen kann. ExecuteIndirect in D3D12 ist eine Form davon, bei der die App die GPU verwendet, um einen sehr eingeschränkten Befehlspuffer aufzuzeichnen, der sequenziell auf der GPU verarbeitet werden muss, um neue Arbeit zu erteilen.
Betrachten Sie eine neue Option. Angenommen, Shader-Threads, die auf der GPU ausgeführt werden (Produzenten), können andere Arbeiten anfordern (Konsumenten). Konsumenten können auch Produzenten sein. Das System kann die angeforderte Arbeit planen, sobald die GPU die Kapazität hat, sie auszuführen. Die App kann das System auch die Speicherverwaltung für die zwischen den Aufgaben fließenden Daten übernehmen lassen.
Das ist Work Graphs. Ein Graph von Knoten, bei dem der Shader-Code an jedem Knoten Aufrufe anderer Knoten anfordern kann, ohne auf deren Start zu warten. Work Graphs erfassen die algorithmische Absicht des Benutzers und die Gesamtstruktur, ohne den Entwickler mit zu vielen Details über die spezifische Hardware zu belasten, auf der sie ausgeführt wird. Die asynchrone Natur maximiert die Freiheit für das System, zu entscheiden, wie die Arbeit am besten ausgeführt wird."
Work Graphs ist schon eine ganze Zeit als Preview bereitgestellt worden und soll nun nach dem Wunsch der API-Designer eine verstärkte Anwendung finden. Alles in allem sieht man Work Graphs als nächsten Schritt zur größeren Autonomie der GPU und zur Entlastung der CPU, die mit der gewonnenen Rechenzeit andere Aufgaben erledigen kann. Die Kommunikationswege zwischen CPU und GPU gelten seit Längerem als eines der Elemente, das am stärksten bremst und angesichts der Entwicklung ist Optimierung von Abläufen immer die bessere Wahl gegenüber der Bereitstellung von mehr Rechenleistung. Wie immer gilt aber: Entwickler müssen solche Features nutzen und die vielen Details dürften auch ein Grund dafür sein, dass immer mehr Engines aussterben.
Quelle: Microsoft

[Ins Forum, um diesen Inhalt zu sehen]
Kommt halt heute nicht mehr auf CD, sondern in Form einer d3d12core.dll im Spieleordner sowie Grafiktreiber-Updates.
Bei D3D9/10/11 gabs dafür wirklich nur alle paar Jahre mal ein Update, besonders D3D10/11 sind ziemlich starr an OS-Versionen gekoppelt.
MfG
Raff
MfG
Raff