🔁 Work Graphs for scheduling – Kompletny przewodnik ekspercki
1. Co to są Work Graphs?
Work Graphs to przełomowa funkcja w Direct3D 12 (wydana wraz z Shader Model 6.8 oraz WDDM 3.2), która pozwala GPU na autonomiczne planowanie kolejnych zadań bez potrzeby pośrednictwa CPU. Zamiast statycznie przewidzieć z góry wszystkie commity, GPU może dynamicznie generować i realizować zadania – to osobliwy graf DAG (acykliczny z możliwością recursji) sterowany przez warstwę runtime.
2. Zasada działania
- Producent–Konsument: jeden węzeł GPU (producer) może zgłosić wywołanie kolejnych węzłów (consumers) za pomocą
DispatchGraph()– wszystko dzieje się na GPU bez udziału CPU. - DispatchGraph() & SetProgram(): umożliwia przekazywanie wejścia z CPU lub GPU węzła startowego.
- Węzły mogą być różnego typu:
broadcast,coalescing,thread launch– każdy z indywidualnym sposobem uruchamiania . - Buffering i zarządzanie pamięcią jest obsługiwane przez GPU runtime, zmniejszając potrzebę ręcznego synchronizowania zasobów.
3. Dlaczego Work Graphs to zagadnienie kluczowe?
🛠️ Eliminacja CPU‑bound
Aktualne techniki (ExecuteIndirect) wymuszają ponowne odwoływanie się do CPU. Work Graphs pozwalają GPU na niezależne planowanie, znacznie redukując opóźnienia i zwiększając przepustowość.
🧠 Obsługa niestandardowych pipeline’ów
Work Graphs umożliwiają dynamiczną rozbudowę pipeline’ów (np. tytuły UE5 z Nanite), gdzie CPU jedynie inicjuje, a GPU przejmuje resztę.
⚡ Lepsze wykorzystanie cache
Dzięki lokalnemu przepływowi danych między węzłami, Work Graphs zmniejszają wycieki danych do pamięci głównej, co poprawia efektywność pamięci podręcznej .

4. Przykłady użycia i efekty
- Epic Games (Nanite): eliminuje wiele przełączeń CPU-GPU, OS i synchronizacji .
- NVIDIA: w Deferred Shading test pokazuje mniejsze zużycie pamięci i lepszy podział zadań w przypadku shaderów o zmiennym typie operacji.
- WCCFTech: pomiary ujawniają istotne przyspieszenia w specyficznych scenariuszach, choć średnio – zyski zależne od algorytmu.
- Reddit: dyskusje wskazują, że Work Graphs (zwłaszcza w połączeniu z mesh nodes) mogą być „step towards GPU-driven pipelines”, ale pewne implementacje mogą być wciąż słabe w porównaniu z Vulkan.
5. Wymagania i konfiguracja
System i SDK
- Windows 11 24H2, WDDM 3.2, Agility SDK 1.613+.
- Shader Model 6.8+ dla wsparcia D3D12 Work Graphs.
Hardware
- GPU z aktualnymi sterownikami WDDM 3.2: NVIDIA Ampere/Ada, AMD RDNA2+, Intel ARC oraz eksperymentalnie Qualcomm .
DDI i UMD
- UMD musi zadeklarować
WorkGraphsTierwD3D12DDICAPS_TYPE_OPTIONS_0109. - Musi zaimplementować DDI:
GetProgramIdentifier,GetWorkGraphMemoryRequirements,SetProgram,DispatchGraph.
Developer tools
- Narzędzia Microsoft PIX, NVIDIA Nsight z obsługą Work Graphs.
- Przykłady: WorkGraphPlayground (C++ + HLSL).
6. Praktyczne wskazówki
- Zdefiniuj graf HLSL: wezły, wejścia i wyjścia.
- Skonfiguruj
State ObjectzSTATE_SUBOBJECT_TYPE_WORK_GRAPH. - Określ memory requirements przez
GetWorkGraphMemoryRequirements. - Wypisz
DispatchGraphz argumentami CPU lub GPU. - Profiluj przy użyciu PIX/Nsight – szukanie wąskich gardeł w schedulingu.
7. Ograniczenia
- Synchronizacja: brak natywnej „join” synchronizacji – wymaga shaderowej logiki.
- Buffer memory trade‑off: wymaga alokacji stałych rozmiarów, co w skrajnych przypadkach może zwiększać footprint .
- Złożoność kodu: implementacja wymaga znajomości DDI i GPU runtime na wysokim poziomie.
8. Przyszłość
- Work Graphs 1.1 + Mesh Nodes: umożliwia integrację ray tracingu i geometrii w pracy grafu.
- Głębokie pipeline’y GPU‑centriczne: integracja z native fences, user-mode submission i GPU scheduling.
- Uniwersalne zastosowanie: AI, symulacje fizyczne, generatywne treści, odciążenie CPU, streaming pixelowy.
🧩 Podsumowanie
Work Graphs to fundament zupełnie nowej klasy programowania GPU:
- umożliwiają dynamiczne, asynchroniczne generowanie tasków bez udziału CPU,
- znacząco redukują koszty synchronizacji i opóźnienia,
- dostarczają nowe schematy pipeline’ów (producer–consumer, mesh, recursja),
- wymagają nowoczesnego sprzętu, sterowników, Agility SDK oraz shaderowej implementacji.
Dla developerów Unreal, Unity, silników AI i technologii e‑sport – Work Graphs to prawdziwy game-changer.






