Hardware Accelerated GPU Scheduling Coming to the Windows 10 May 2020 Update

GPU scheduling affects everything you do on a Windows 10 device. Current Windows Display Driver Model (WDDM) drivers perform scheduling in software. But new generation GPUs and drivers will shift scheduling from software to hardware, leading to less latency and overhead.

WDDM buffering and latency

WDDM traditionally uses a high-priority thread on the CPU that coordinates, prioritizes, and schedules requests for processing from applications. The overhead caused by this model is usually masked by applications in the form of a buffer that minimizes the scheduling load and maintains CPU/GPU parallelism.

But one side effect of the buffering model is that end users experience increased latency, making apps and the OS feel less responsive. Apps need to make a tradeoff between smaller buffers to reduce latency or larger buffers to lower overhead.

Hardware-accelerated GPU scheduling in Windows 10

Starting in the Windows 10 May 2020 Update (version 2004), users with WDDM version 2.7 drivers or later can opt to enable hardware-accelerated GPU scheduling if their GPU supports it.

Image #1 Expand
Figure1
Hardware Accelerated GPU Scheduling Coming to the Windows 10 May 2020 Update (Image Credit: Microsoft)

Enabling the option in the Settings app, under System > Display > Graphics Settings, forces Windows to offload most scheduling to a dedicated GPU-based scheduling processor. The option to enable hardware-accelerated GPU scheduling in the Settings app will only appear if both hardware and driver support it.

Windows Insider A/B driver testing

Because hardware-accelerated GPU scheduling is such a fundamental change to the graphics driver model, Microsoft is taking a careful approach to rollout. Windows Insiders on the Dev and Beta Channels will be exposed to WDDM v2.7 drivers as they are made available by vendors.

Microsoft is silently enabling hardware-accelerated GPU scheduling for some Insiders only, so that there is a mix of users with and without the new scheduler. This lets Microsoft collect telemetry data and compare how systems with the old GPU scheduler perform against those with the new scheduler turned on. Microsoft will examine telemetry like:

  • Kernel crashes
  • User mode crashes
  • GPU hangs
  • Limited set of performance metrics

When a driver has completed enough testing on Insider devices and proven that it is reliable and performant, Microsoft will it on Windows Update for all Windows 10 May 2020 Update and later users. But because the hardware ecosystem is so large, hardware-accelerated GPU will be turned off by default to make sure that it doesn’t cause problems on devices that weren’t tested as part of the Insider pool.

Drivers supporting hardware-accelerated GPU scheduling

Both Nvidia and AMD have announced support for hardware-accelerated GPU scheduling. AMD’s Radeon Software Adrenalin 2020 Edition 20.5.1 Beta includes support for Radeon RX 5600 and Radeon RX 5700 series graphics products.

Nvidia also announced support with the release of its new GeForce Game Ready 451.48 WHQL driver. Intel doesn’t support hardware-accelerated GPU scheduling in its latest DCH drivers but it is looking to include support in future releases.

What does hardware-accelerated GPU scheduling mean for business users?

Not much at the moment. If you have a compatible GPU and driver, you shouldn’t notice any significant change with hardware-accelerated GPU scheduling enabled because most applications are designed to mask scheduling using a buffer.

The aim of the initial changes in the Windows 10 May 2020 Update is to provide a basis on which application performance can be improved in the future. I would expect Microsoft to leverage hardware-accelerated GPU scheduling in its Edge browser, the Windows GUI, and Office suite of desktop apps.

Microsoft isn’t saying what it has planned for the new scheduling feature, so we’ll have to wait and see how it affects real-world performance as and when apps are updated to support it. But anything that improves performance and potentially leads to a more efficient OS can only be a good thing.