Hardware Accelerated GPU Scheduling: What it is and How it Works

Normally when we talk about gaming CPUs we always refer to the fact that the lower the graphics load, the more dependent the processor becomes on the overall performance of the game. The problem is that many people do not know the details that this contains, since the lower-end CPUs suffer more from this fact. Microsoft has wanted to take action on the matter and has presented the first solution to this problem, which it has called Hardware Accelerated GPU Scheduling , but what does it do?

As always happens in this type of thing, to understand the solution you must first understand the problem and everything that surrounds it. First, and after the arrival of Windows Display Driver Model 1.0 or WDDM 1.0 , a very notable improvement called GPU programming was introduced in Windows.

Hardware Accelerated GPU Scheduling

This feature created a global queue where it marked the step of what had to be sent to the GPU and what had to be executed, but above all, when it had to be done. Before WDDM, the GPU received the workload without order, basically without respecting the shift, so all the work finished by the CPU was not very optimal. Over time this system was not enough and that was when Microsoft introduced WDDM, thereby improving performance.

There were more problems to solve like latency

GPU Navi Radeon Pro 5600M

Not only is a dispatch and execution order required for each task, the GPU scheduler coordinates, prioritizes, and schedules the job as a thread-like CPU, but this generates a very clear latency problem that so far has not could be optimally resolved.

Ideally, while the GPU renders a frame, the CPU already has the next one ready and worked, just so that the GPU has it before finishing said rendering, but this is not the case in the vast majority of cases, because each CPU has different power and different internal latencies.

When we lower the resolution to a game, the workloads are lighter, which theoretically favors less powerful CPUs, but this is not the case, since it generates a much higher load on the WDDM that prevents the CPU from supplying the Information worked on time and thus limits the rate of frames rendered by the GPU, since it works more freely but does not receive the information in time to generate all the performance it can offer.

The option that was removed from the sleeve both NVIDIA and AMD is a patch that does not have too much time, but it is not a real solution, since what was intended was to generate multiple frames worked on the CPU and in batches, sending them to the GPU all at once and keeping the same number of frames in the buffer, so that there was that time between what was prepared by the CPU and what ended up sending to the GPU.

The buffer would always have certain frames to work and the CPU could breathe with that little time. The problem is that this generates a drawback that many are not willing to assume: a lag between our actions in the game and the representation of those actions on the screen, where this is also totally random, since it depends on how loaded the CPU is in every moment. That is, we can have the feeling of immediacy in one moment and the next the feeling that we are late in the game.

This effect is called CPU-GPU execution parallelism , and as we say, it is not to everyone’s liking, since the best FPS rate is achieved, but a counterproductive feeling when playing.

Hardware Accelerated GPU Scheduling

With the arrival of Windows 10 May 2020, Microsoft has introduced a new GPU scheduler as an option for the user, which has been disabled as standard. The changes are substantial in this new scheduler, because although Windows continues to control this prioritization and decides what is priority and what is not, as well as its context, it is now downloaded to the processor from high loads so that it does not have to decide between reducing latency or reducing the load on your cores.

But how does it do it? Unloading to the CPU and passing the load directly to the GPU when necessary. Basically what you are looking for is to change the software programming of the CPU to the hardware programming of the GPU , so this requires the entire industry to be at one with such a change.

Therefore, specific hardware, a specific driver and specific Windows support are required to make it work, not forgetting that the games that will be released from now on must also be able to support this programmer function.

Therefore and in summary, we will need an NVIDIA Pascal or Turing GPU, or an AMD RDNA GPU, as well as the corresponding driver and at least Windows 10 2004 May 2020 for the option to appear in configuration.

This option is found in Configuration -> System -> Display -> Graphics configuration and although in NVIDIA it can already be selected, it seems that AMD even giving support still does not manage to show it, so we will have to wait for the new Adrenalin 20.5.X.

In any case, being such a substantial change this Hardware Accelerated GPU Scheduling arrives deactivated as standard and if we decide to activate it, it could improve performance or not, it will depend on the game in question.