Windows 10 V2004: Hardware Accelerated GPU Scheduling

[German]Starting with Windows 10 version 2004 the so-called Hardware Accelerated GPU Scheduling is supported by some graphics cards/drivers. Microsoft has now published some information about this.


What is Hardware Accelerated GPU Scheduling?

Hardware Accelerated GPU Scheduling allows a more efficient GPU scheduling or allocation between applications on Windows. To use this feature, appropriate drivers are required. Nvidia and AMD have probably released the first drivers for hardware accelerated GPU scheduling for testing. In addition, this feature will not be supported until the Windows 10 May 2020 Update (version 2004). 

Microsoft discloses some details

Microsoft has released some details about this technology for developers in the blog post Hardware Accelerated GPU Scheduling as of June 30, 2020. Almost 14 years have passed since the introduction of Windows Display Driver Model 1.0 (WDDM) and thus the introduction of GPU scheduling in Windows. 

Before WDDM, applications could simply transmit as much work to the GPU as they wanted. They would submit to a global queue where the work was executed strictly on a "first submission, first execution" basis. These very rudimentary scheduling schemes were viable at a time when most GPU applications were full-screen games that ran one after the other.

With the transition to a wide range of applications that use the GPU for richer graphics and animation, the platform needed to better prioritize GPU work to ensure a more responsive user experience. And so the WDDM GPU Scheduler was born. Over time, Windows developers have greatly improved the GPU scheduler that is at the heart of WDDM, adding features and scenarios with each new version of WDDM. However, throughout its development, one aspect of the scheduler remained unchanged. The developers have always run a high priority thread on the CPU that coordinates, prioritizes, and schedules the work submitted by various applications.

This approach to GPU planning has some basic limitations in terms of submission overhead and the latency with which the work reaches the GPU. This overhead has been largely obscured by the way applications are traditionally written. For example, an application would typically do GPU work on frame N, and would run the CPU in advance and work on preparing GPU instructions for frame N+1. This buffering of GPU instructions in batches allows an application to send only a few times per frame, minimizing scheduling costs and ensuring good parallelism between CPU and GPU.


An inherent side effect of buffering between CPU and GPU is that the user experiences increased latency. User input is received by the CPU during "frame N+1" but is not rendered by the GPU until the following frame. There is a fundamental tension between latency reduction and submission/planning overhead. Applications can be submitted more frequently, in smaller batches to reduce latency, or they can be submitted in larger batches to reduce submission/planning overhead.

Use Hardware-Accelerated GPU Scheduling

With the Windows 10 May 2020 Update (Version 2004), Windows developers introduced a new GPU scheduler as a user option, but leave it turned off by default. With the right hardware and drivers, Windows can now move the bulk of GPU scheduling to a dedicated GPU-based (hardware-based) scheduling processor.

Windows still controls prioritization and decides which applications have priority in a given context. We move high-frequency tasks to the GPU scheduling processor, taking over quantum management and context switching of the various GPU engines.

The new GPU scheduler represents a significant and fundamental change in the driver model. To ensure a smooth transition, Microsoft is introducing Hardware-Accelerated GPU Scheduling as an Early-Adopter-Opt-In feature. During a transition period, Microsoft intends to collect extensive performance and reliability data and customer feedback.

The feature can be enabled on the Advanced Graphics Settings page. The settings page can be accessed via Settings -> System -> Display -> Graphics settings. If both the GPU and the WDDM graphics driver support the new GPU scheduler, the user interface below will appear.

Hardware Accelerated GPU Scheduling
(Hardware Accelerated GPU Scheduling, Source: Microsoft)

The new GPU scheduler is supported on current GPUs that have the necessary hardware and a supporting WDDMv2.7 driver. Please note the announcements by hardware manufacturers regarding specific GPU generations and driver versions for which this support will be enabled. (via)

Cookies helps to fund this blog: Cookie settings

This entry was posted in Windows and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *