Microsoft hat das DirectX 12 Agility SDK in der Version 1.711.3-preview am 22. Juni 2023 veröffentlicht und damit GPU Work Graphs erstmals öffentlich zugänglich gemacht. Das Modell erlaubt es Compute-Shadern, weitere Compute-Arbeit autonom auf der GPU anzustoßen, etwa für Culling, Binning oder das Verketten von Rechenschritten. Anders als das bisherige ExecuteIndirect-Verfahren überlässt der Ansatz die Ablaufplanung der Hardware. Laut Microsoft hat die Hardware damit die Flexibilität, Arbeit effizient einzuteilen, ohne dass Entwickler die Eigenheiten jedes einzelnen Geräts kennen müssen. Die Veröffentlichung markiert den Beginn der Work-Graphs-Ära, lange vor dem späteren Retail-Status.
Es handelt sich ausdrücklich um ein Preview-SDK. Microsoft weist darauf hin, dass nicht alle Funktionen ihren finalen Zustand abbilden und teils nur über den Developer Mode unter Windows erreichbar sind. Die Premiere ist ein erster Aufschlag für Entwickler, die das Programmiermodell evaluieren wollen, und kein abgeschlossener Funktionsstand.
Work Graphs als neues Modell der GPU-Autonomie
Mit Work Graphs können Compute-Shader andere Compute-Shader anfordern, die asynchron ausgeführt werden. Der zentrale Unterschied zum etablierten ExecuteIndirect-Pfad liegt in der Verantwortung für die Ablaufplanung. Beim bisherigen Verfahren muss der Entwickler die Arbeitsverteilung weitgehend selbst strukturieren. Bei Work Graphs übernimmt die Hardware diese Aufgabe und kann Rechenschritte nach eigenen Kriterien einplanen. Typische Einsatzfelder sind Culling und Binning sowie das dynamische Verketten von Compute-Arbeit, bei denen die Menge der Folgeschritte erst zur Laufzeit feststeht.
Wave Matrix und AV1-Hardware-Encoding
Neben Work Graphs erweitert das SDK HLSL um Wave Matrix Instruktionen. Diese WaveMMA-Befehle stellen abstrakte Wave-Matrix-Datentypen bereit, über die die zugrunde liegende Hardware Daten über alle Threads einer Wave hinweg speichern, umordnen und duplizieren kann. Ziel ist die Beschleunigung von Matrixmultiplikationen auf dedizierter Silizium-Hardware, wie sie für Machine Learning und Bildverarbeitung benötigt werden. AMD stellt dafür einen Preview-Treiber für die Radeon-RX-7000-Serie bereit, während Intel und NVIDIA zum Zeitpunkt der Ankündigung den direkten Kontakt voraussetzen. Solche tief in die DirectX-Pipeline integrierten Bausteine begegnen einem inzwischen häufiger, etwa bei dem späteren Vorstoß rund um DirectSR und vereinheitlichtes Upscaling.
Drittens erweitert das SDK die D3D12 Video Encode API um eine einheitliche Schnittstelle für AV1-Hardware-Encoding. Die Treiberunterstützung fällt je nach Hersteller unterschiedlich aus. Intel Arc ist ab Treiber 31.0.101.4952 dabei, NVIDIAs RTX-40-Serie ab Treiberversion 545.31. AMD wurde für das vierte Quartal 2023 in Aussicht gestellt. Zusammen genommen bündelt die Version 1.711.3-preview drei eigenständige Bausteine, deren Reife zum Veröffentlichungszeitpunkt noch deutlich variiert.
