How To Identify A CPU Bottleneck - Is Your CPU Bottlenecking Your GPU?

Published 2024-06-25
In this video I'll be trying to explain how to identify a possible CPU bottleneck. A CPU bottleneck is typically referred to a situation where your CPU is holding back your GPU from performing as well as it could.

In this video we'll explore two typical scenarios of a CPU Bottleneck. One where the CPU is running at 100% usage, and the other where it's not, but is still holding back the graphics card. How can a CPU bottleneck a GPU when it's not running at 100% usage? Well, we explore that scenario with the help of CapFrameX, and the integration of Intel's PresentMon into CapFrameX, to help show GPU Busy as well as GPUBusy deviation. I have seen a lot of people talk about the GPUBusy feature, and also found that some of the explanations are hard to understand, so I try my best here to try and explain how to use GPUBusy and Deviation to identify a potential CPU bottleneck.

Join this channel to support a creator:
youtube.com/channel/UCgjV_NEAcVqZODDRZ0iyqCA/join

System Specs:

Intel Core i5 14600KF @ Stock
Palit Dual Nvidia GeForce RTX 4070 Super @ Stock
Gigabyte Gaming X AX Z790 Motherboard
G-Skill 32GB DDR5 6400 Mt/s CL32 Memory
Corsair HX850i Power Supply
Windows 11 Pro
2TB PCIE Gen 4 Nvme Drive
Game Mode and ReBAR enabled

Timestamps:

0:00 - Intro
0:26 - Scenario 1 - CPU Completely Underpowered (100% usage)
4:18 - Scenario 2 - CPU Is Just Not Fast Enough
7:38 - How To Identify a CPU Bottleneck Using GPUBusy
9:54 - What Being Fully GPU Bound Looks Like
11:08 - Using DLSS Frame Generation to Further Reduce CPU Bottleneck
12:34 - Tips On How To Overcome a CPU Bottleneck

All Comments (21)
  • Very good and interesting video, glad to see more people explaining things! We're going to make a video about this, but I will now add some of you case scenarios here and show your channel as well
  • My analogy for what the CPU and the GPU do is that every frame is a pizza and the GPU is baking them. When the GPU gets a pizza ready it hands it to the CPU which folds a box for the pizza to deliver it. If you're gpu bound the pizzas are being made as fast as possible and the cpu has no trouble putting them in boxes. If you're cpu bound the gpu starts piling up pizzas and has to slow down because the cpu can't keep up folding and putting the pizzas in boxes for them to be delivered.
  • Gosh, I really need to pay attention when typing as I constantly make typos. Apologies for typing "Scenario" as "Scenarion" 🤦‍♂️
  • @WalterWolf000
    You could enable GPU time and CPU time in msec. For example if the CPU sits at 5ms per frame and the GPU time at 3ms per frame you'd conclude a CPU bottleneck and vice versa a GPU bottleneck.
  • @Bonk13b
    This man's a genius.. Whilst experimenting with disabling cores ( the Intel issue of the day ).. turned it into one of the best explanations I've ever heard on a completely different issue.. can't wait for his Intel cores video ( wonder what I'll learn from that :-)
  • @xKyleNxCoD
    Great video. Very informative and enjoyable!
  • @CoffeeGee95
    Shout out to my fellow South African:hand-pink-waving:🤙, great video buddy, very informative. I’ve been out of the pc gaming scene for a while now, so I started searching for videos before I upgrade my hardware, stumbled onto your video. Subscribed, I will definitely support your videos in the future.👍
  • @Razor2048
    One easier way to see when you have a CPU bottleneck, is to use process explorer to examine the individual threads of the game. Cyberpunk will run dozens of different threads, but not every aspect of the game engine is multithreaded, and the scheduler will move some of those threads between various cores rapidly depending on the load (perfectly normal when a game launches 100+ threads. If you look at the individual threads, you will often see 1 thread using 1 core worth of CPU time, and at that point, frame rates stop improving. A simply test is to use settings that that get the GPU usage in the 85-95% range, then while gaming, downclock the GPU (e.g., lower it by 500MHz in afterburner), that would get the GPU to be pegged at 100% while also lowering frame rates, ensuring a GPU bottleneck). then gradually increase the clock speed of the GPU while looking at the threads in process explorer. You will notice a gradual increase in frame rates that will stop as soon as one of the threads in the game reaches 1 core worth of CPU time (to figure out what is 1 core worth, take 100, and divide it by the number of threads available by the CPU, including hyperthreading. For example, a 16 thread CPU would allow for up to 6.25% of CPU time representing 1 core worth of CPU time. Since a single thread cannot use more than 1 core worth of CPU time, that thread will have encountered a CPU bottleneck. PS, a system memory bandwidth bottleneck is very rare, the only time I have been able to replicate one in a modern system, was when a lower VRAM card, e.g., 8GB or less, and in a game where the engine did not disable the use of shared memory. Once shared memory is in use actively (you can tell by the PCIe bus usage increasing significantly, and once it hots 50%indicating saturation in one direction, you will notice a scenarios where both the GPU and CPU is underutilized. PS, in those cases, you can get small boosts in performance by tightening the timings of the system RAM to improve the latency. as with modern cards, they typically have around 25GB/s DMA access from a PCIe 4.0 X16 bus, but in some cases where full saturation is not reached, lower latency minimizes how much performance is lost while shared memory is in use. Once full saturation happens, then frame times will become very inconsistent and the game will hitch/ hang as well. A storage bottleneck, will show dips in both CPU and GPU usage (most easily seen as simultaneous drops in power consumption).
  • @Stardomplay
    This was an excellent video. From someone who started to understand this after getting into PC gaming 2 years ago, it's always quite jarring seeing the comments in other benchmark videos or even in steam forums such as "my system is fine because my CPU is only 30 percent utilized so it must be the game" or "why test the 4090 at 1080P" in CPU benchmark comparisons.
  • @moathmad1538
    You are amazing, your explanation is clear 😊
  • Also, even if your CPU load says 100%, that is most likely a lie. That is actually the average of the CPU’s P cores load. Meaning that if you have both the GPU and the CPU usage at 100%, you can still get a better GPU and not bottleneck it. As long as you don’t play something like Star Citizen. In that game, every single GPU gets bottlenecked no matter what CPU you have 😂
  • Brilliant video, very clear and concise! It's crazy how many people in comments on benchmarks spread false information. I think everyone watching benchmarks should be made to watch this video first. Thanks for the upload!
  • @Kapono5150
    Thankfully there’s a solution, the 7800X3D. Fastest gaming CPU on the market. Even digital foundry ditched Intel and went AMD. Do the right thing people
  • @jorge69696
    A faster way, or used in conjunction with this, is to look at the gpu power consumption. The 4070 Super is a 220w card. When gpu bottlenecked, it was running under 150w.
  • @niko2002
    Since I have discovered this video over a month ago, thanks to you, now my games have better FPS. Yeah it's bad if the gpu usage is only 50% or lower even though the CPU usage is still at 50% or lower. Making the GPU usage at 100% does infact give my way better FPS and way less stuttering. Taking the load off of the CPU really helps significantly. What is really strange is going from 1080p to 1440p in some games makes almost zero difference, it's because the lower your resolution & graphics settings are, the more likely you might come across a CPU bottleneck.