Jump to content

Is this the best way to measure bottle-necks?

So X-Plane has this cool overlay feature that shows your CPU vs GPU frame times. As I understand, this will definitively tell you if you are CPU or GPU bottle-necked, by indicating which of the two is spending more time processing each frame (on average).

 

Shown here, we see the CPU is the clear bottle-neck, and is spending over 50% more time processing each frame.

CPU Bottleneck (2).png

 

 

So my question is, does a similar application exist that will work with any game? When using something like Afterburner, you can easily spot a CPU bottleneck when your GPU is at low utilization. Similarly, if my GPU is close to 95%+ utilization, we can safely say that my GPU is the bottleneck. However, since most games cannot fully utilize all cores in most CPU's, how can one determine how severely your GPU is bottle-necking your CPU?

 

For example, if my GPU is at 60% utilization, I know that (assuming the game is capable of full utilization) I am losing roughly 40% of my GPU's full potential.

 

On the flip side, if my GPU is at 100%, and my (lets say quad core) CPU is running at 50% utilization, I can never be sure how much potential I am losing without knowing how capable the game is of utilizing my entire CPU. In this scenario, you could suggest reducing my resolution to remove my GPU bottleneck, and to then compare my frame rates (or CPU utilization) when my CPU is instead the bottle-neck. But wouldn't lowering the resolution still offload a small workload from my CPU?

 

I understand I am probably overthinking this, but it seems like a tool like X-Plane's would be super useful for precisely (and quickly) measuring the severity of a GPU bottleneck.

 

Honestly not sure if any of this makes sense. Been running off 30 seconds of sleep and a cereal bar for the past few days. But if anyone has a solution to this, or can at least correct my ignorance, it would be much appreciated 🙂

 

EDIT: I also know I can just look at other benchmarks to determine how well a specific game can utilize any given CPU, but still, I think a tool like this would be easier.

Link to comment
Share on other sites

Link to post
Share on other sites

Some games only ever use two or four cores.

 

I'm not sure there's a good way to measure just which ones and how much, because the way Windows does things those bounce around between cores.

 

MMOs are notorious for this.

 

To me, an underutilized GPU at any point either means your gpu has hit it's performance target (vsync, frame limit) or your cpu isn't working fast enough, or the game sucks.

 

 

Before you reply to my post, REFRESH. 99.99% chance I edited my post. 

 

My System: i7-13700KF // Corsair iCUE H150i Elite Capellix // MSI MPG Z690 Edge Wifi // 32GB DDR5 G. SKILL RIPJAWS S5 6000 CL32 // Nvidia RTX 4070 Super FE // Corsair 5000D Airflow // Corsair SP120 RGB Pro x7 // Seasonic Focus Plus Gold 850w //1TB ADATA XPG SX8200 Pro/1TB Teamgroup MP33/2TB Seagate 7200RPM Hard Drive // Displays: LG Ultragear 32GP83B x2 // Royal Kludge RK100 // Logitech G Pro X Superlight // Sennheiser DROP PC38x

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, Mister Woof said:

Some games only ever use two or four cores.

 

I'm not sure there's a good way to measure just which ones and how much, because the way Windows does things those bounce around between cores.

 

MMOs are notorious for this.

 

To me, an underutilized GPU at any point either means your gpu has hit it's performance target (vsync, frame limit) or your cpu isn't working fast enough, or the game sucks.

 

 

Yeah it sucks the way it does that.

 

I guess just being able to measure frame times would make it easier to understand the gap between your CPU and GPU in specific games.

 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

33 minutes ago, DeadlyPickle said:

So my question is, does a similar application exist that will work with any game?

I don't think so. While an outside observer can measure the load on GPU/CPU and also how often a new image is rendered, only the game engine itself can measure how long it spent on individual parts of that process. It's easy to assume the GPU is working on that full time, so the frame time is the inverse of the frame rate, but the same isn't true of the CPU. You don't know how much of its time was spent in the rendering thread and how much elsewhere.

 

In regards to bottle-necking, it's probably easy to see that a CPU at 100% load and a GPU at 50% load represents some kind of bottle-neck. However I don't think there's an easy way to judge just how much extra CPU performance you'd need to resolve it. 5%, 50%, 100%?

 

I don't think the reverse is equally true. A GPU at 100% obviously means your GPU is used to it's full potential, but your CPU isn't necessarily bottle-necked by it. The rendering thread may spend some time waiting on the GPU to accept more data, but it can do other things in the meantime, depending on how well the game is able to use more than one thread. Can you get a faster GPU? Probably. How much faster? Again, hard to judge.

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×