f2 X icon 3 y2 steam2
 
 Search find 4120

Microsoft Introduces GPU Autonomy Enhancement in DirectX 12

Microsoft has officially announced a new DirectX 12 feature today, previously available in preview, aimed at eliminating CPU bottlenecks by increasing GPU autonomy.

In a detailed blog post, Direct3D Engineer Amar Patel and DirectX Compiler Engineer Tex Riddell introduced "Work Graphs," a new system for GPU autonomy within D3D12 designed to overcome limitations in general compute tasks on GPUs and unleash hidden capabilities of graphic processors. Simply put, this new system seeks to transition to a more efficient GPU-driven rendering system, minimizing the CPU usage across various workloads.

In many GPU tasks, an initial calculation performed by the GPU dictates the subsequent tasks it needs to execute. Traditionally, this involves a round trip back to the CPU to commission new tasks. However, allowing the GPU to self-direct is generally more efficient. D3D12's ExecuteIndirect is an example of this, where the application employs the GPU to record a constrained command buffer that the GPU then serially processes to issue new work.

The novel approach allows shader threads running on the GPU (producers) to request additional tasks (consumers) to be executed. These consumers can, in turn, become producers themselves. The system is then able to schedule the requested tasks as soon as the GPU is ready to perform them. Additionally, the application can enable the system to manage memory flow between tasks.

This is the essence of Work Graphs: a network of nodes where shader code at each node can request the execution of other nodes without waiting for their launch. Work Graphs encapsulate the algorithmic intent and overall structure intended by the user, without burdening the developer with excessive hardware-specific knowledge. Its asynchronous nature greatly enhances the system's flexibility in determining the most efficient execution method for the tasks at hand.