November 20th, 2019

CPU- and GPU-boundedness

Jacques van Rhyn
Program Manager

We wrote this article to explain two key terms: CPU-bound and GPU-bound. There’s some misinformation about this terms, and we’re hoping this article can help fix this problem.

Even though applications run on the CPU, many modern-day applications require a lot of GPU support.

These apps generate a list of rendering instructions (i.e. the math behind generating the 2D images to display). This happens on the CPU, which sends these instructions to the GPU for processing. How this entire process works warrants a separate article, but the main point here is that most apps need to use both the CPU and GPU to do work to get consecutive frames on screen really fast. Consecutive frames in a game need to be rendered and displayed fast enough to give the illusion of motion. They also need to respond fast enough to user input for a game to feel fluid.

GPU-boundedness

Sometimes the CPU generates rendering instructions so fast that there are times during which the CPU idle. Even though the GPU is working as hard as it can, the CPU isn’t being pushed to its limits.

In this case, we would say that the game is GPU-bound, because the frame rate is being “bottlenecked” by the GPU.

CPU-boundedness

The opposite happens in the CPU-bound case. When a game is CPU-bound, this means that the GPU is able to make quick work of the instructions it is given, which means there are times during which the GPU is idle. Now the frame rate is being limited by how fast the CPU is able to generate instructions for the GPU.

In this case, we would say that the game is CPU-bound, because the frame rate is being “bottlenecked” by the CPU.

Variables

Whether your computer is CPU-bound or GPU-bound depends on a lot of variables:

  • Hardware: Someone with a high-end GPU but a CPU from a few generations back will become CPU-bound more often than someone with the exact same high-end GPU and current-gen CPU, even if they’re both playing the same game at the same settings.
  • The game you’re playing: Different games have different performance characteristics. Huge open-world and realtime strategy games can be more CPU-intensive, making them more likely to become CPU-bound. Other games can put a larger burden on your GPU and become more GPU-bound.
  • Ingame settings: Even for the same game, toggling your in-game settings has a large effect. Lowering some settings, like resolution, will lower the burden on your GPU, and make you less GPU-bound. Lowering other settings, like draw distance, can reduce the burden on your CPU as well.
  • Differences within the game you’re playing: Performance characteristics vary from scene to scene within a game: some scenes in a game can have a higher CPU cost than other scenes. The same goes for GPU cost

 

Category
DirectX

Author

Jacques van Rhyn
Program Manager

Senior Program Manager on the DirectML Team at Microsoft.

0 comments

Discussion are closed.