Microsoft Details Hardware-Accelerated GPU Scheduling
Microsoft posted a technical brief of the new Hardware-Accelerated GPU Scheduling feature introduced with Windows 10 May 2020 Update, and its latest Windows Display Driver Model (WDDM) version. In a blog post by Steve Pronovost, a tech lead with Microsoft DirectX, Microsoft finally set out to explain what WDDM GPU Scheduling is. Introduced with Windows Vista, WDDM 1.0 introduced GPU scheduling, a software component that allocates workload from multiple sources onto a GPU, prior to which all applications that needed GPU-acceleration would send as much traffic as they could to the GPU driver. With growing complexity in the modern 3D rendering pipeline, the need for a scheduler, not unlike the OS thread scheduler, was needed.
In the following section (which matters), Microsoft went on to detail what Hardware-Accelerated GPU Scheduling is. Apparently, some of the newer generations of GPUs (by NVIDIA, AMD, and Intel), have a hardware component in-built to perform scheduling. When this component is combined with Windows 10 May 2020 Update and a WDDM 2.7-compliant graphics driver, Windows offloads GPU scheduling onto it, freeing up some CPU resources and potentially reducing latencies at various stages of the graphics rendering pipeline. Windows continues to exhibit control over scheduling, but by talking to this scheduling component instead of a CPU-executed software stack.
In the following section (which matters), Microsoft went on to detail what Hardware-Accelerated GPU Scheduling is. Apparently, some of the newer generations of GPUs (by NVIDIA, AMD, and Intel), have a hardware component in-built to perform scheduling. When this component is combined with Windows 10 May 2020 Update and a WDDM 2.7-compliant graphics driver, Windows offloads GPU scheduling onto it, freeing up some CPU resources and potentially reducing latencies at various stages of the graphics rendering pipeline. Windows continues to exhibit control over scheduling, but by talking to this scheduling component instead of a CPU-executed software stack.