Microsoft has released a new version of DirectX 12, which is intended to reduce the load on the processor with a new feature. In a detailed blog post, Amar Patel, engineer (Direct3D), and Tex Riddell, engineer (DirectX Compiler), explain the functionality of Work Graphs, a system for GPU autonomy in D3D12 that aims to limit general workload constraints on GPUs fix and unlock hidden GPU capabilities.
In simple terms, the new system aims to move to a more efficient GPU-driven rendering system to reduce the need for CPU computing time in various workloads.
“In many GPU workloads, an initial computation on the GPU determines what subsequent work the GPU needs to do. This can be done by passing back to the CPU to do the new work. However, it is usually better for the GPU itself ExecuteIndirect in D3D12 is a form of this where the app uses the GPU to record a very limited command buffer that must be processed sequentially on the GPU to issue new work.
Consider a new option. Assume shader threads running on the GPU (producers) can request other work (consumers). Consumers can also be producers. The system can schedule the requested work as soon as the GPU has the capacity to execute it. The app can also let the system handle memory management for data flowing between tasks.
Recommended editorial contentHere you will find external content from [PLATTFORM]. To protect your personal data, external integrations will only be displayed if you confirm this by clicking on “Load all external content”:Load all external contentI agree that external content will be displayed to me. This means that personal data is transmitted to third-party platforms. Read more about our privacy policy.
This is Work Graphs. A graph of nodes where the shader code at each node can request calls to other nodes without waiting for them to start. Work Graphs capture the user's algorithmic intent and overall structure without burdening the developer with too many details about the specific hardware it is running on. The asynchronous nature maximizes the freedom for the system to decide how best to do the work.”
Work Graphs has been available as a preview for some time and is now expected to see increased use according to the wishes of API designers. All in all, Work Graphs is seen as the next step towards greater autonomy for the GPU and to relieve the load on the CPU, which can use the computing time gained to carry out other tasks. The communication paths between CPU and GPU have long been considered one of the most slowing elements and, given developments, optimizing processes is always a better choice than providing more computing power. As always, developers have to use such features and the many details are probably one of the reasons why more and more engines are becoming extinct.
What: Microsoft