cancel
Showing results for 
Search instead for 
Did you mean: 

GPU Work Graphs: A Great Day for GPU Programmability

alexander_blake-davies
5 0 9,121

If you’re a graphics programmer, today is going to be an exciting day for you: Microsoft® has just released a new DirectX® graphics API called Work Graphs as part of the DirectX Developer Preview today. This API enables you to perform very fine-grained scheduling on graphics cards, which can help you overcome problems previously unachievable for GPU processing and has been a major ask from the graphics community for many years now. For example, complex scene traversal and highly adaptive algorithms can now be implemented more efficiently. Additionally, many algorithms which previously required heroic efforts to get running on the GPU can now be easily expressed in this new API.

“AMD contributed significantly to the design of work graphs from early on. They offered a critical eye to targeting GPUs well, in ways that make sense for the ecosystem overall, with a path to expanded hardware and software capability over time. Other GPU vendors made similarly great contributions as well - a productive industry collaboration all around. Now that you can give work graphs a try, we're all excited to hear your feedback!”
Amar Patel, Engineer, Microsoft DirectX team.

Work Graphs are a real step-function improvement to the GPU programming model. Historically, the GPU has relied on the CPU to define the work, and the GPU consumed and executed only what it was told. With Work Graphs, the GPU finally gets control over itself, allowing it to make decisions and adjust to the workload at hand. This is the next step in GPU evolution and will ultimately lead to a new area of GPU-driven rendering.

Work_graph_structure_diagram_v2.jpgWork Graph Structure Diagram

AMD is proud to have been an integral partner in the development of Work Graphs. We assembled a cross-disciplinary team: firmware and driver engineers, hardware and software architects and our developer relations teams to collaborate with ISVs and Microsoft to help develop and optimize this API.

We helped make easy to use, so that existing applications can be quickly ported and benefit from its features. For example, existing compute shaders can be trivially ported to work graphs, and we made sure there’s a clear way to reuse code between Work Graphs and prior techniques, as not all hardware will be capable of running Work Graphs immediately. Applications can thus incrementally port to Work Graphs and benefit from the new capabilities while still supporting older APIs like ExecuteIndirect.

We are continuing to partner with Microsoft and developers to bring you further extensions and improvements to the API. For example, we plan to add the ability to issue draw calls (with PSO changing!) directly from Work Graphs.

“We have worked closely with industry partners on the design of Microsoft DirectX Work Graphs, and we are excited about its release. Pioneering new GPU-driven graphics techniques empowers our game developers to push creative boundaries and inspire the world to play with extraordinary new experiences for players.”
Colin Barré-Brisebois, Head of Technology at SEED, Electronic Arts.

We invite you to join us on the next step in this development journey. Together, we can explore this brand-new world of possibilities. We are excited to see what you create, and we encourage you to share your feedback with us and Microsoft to help set the direction of this API. Keep in mind this is just the beginning of a long journey, and your work & input will help shape the future of GPU programming!

If you want to get started right now, you can learn more details about Work Graphs in this Microsoft blog.

The AMD GPUOpen Programmer’s Guide to Work Graphs provides additional implementation details to help you with your first foray into the world of Work Graphs.

You will also need to download a developer preview AMD Software: Adrenalin Edition™ driver for your AMD Radeon™ graphics card that supports GPU Work Graphs, WaveMMA, and GPU Upload Heaps.

Author: Matthaeus Chajdas is an AMD Fellow, Software Development Engineering.



DISCLAIMERS AND FOOTNOTES

Links to third-party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites, and no endorsement is implied. GD-98

© 2023 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo, AMD Software: Adrenalin Edition, Radeon, and combinations thereof are trademarks of Advanced Micro Devices, Inc. DirectX is a registered trademark of Microsoft Corporation in the US and/or other countries. Other product names used in this publication are for identification purposes only and may be trademarks of their respective owners.