Jump to content

Can a CPU be a bottleneck without hitting 100% on ANY of the cores?

So, out of curiousity, I want to ask, can a CPU be the bottleneck in a system, if non of the cores hit 100%?

If I was runniung an i7, and playing a game, and the CPU is hovering around 60-70% util,
across ALL 4 cores (also across all 8 threads), could it THEORETICALLY be a bottleneck (See upload)
for whatever reason, maybe it can't send enough draw-calls or whatever, for any reason.

I'm simply curious if there is more to bottlenecking than just pure %.

Capture.PNG

Link to comment
Share on other sites

Link to post
Share on other sites

Yes of course, easily.

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
Share on other sites

Link to post
Share on other sites

Care to elaborate, got any articals to read? I'd love some more information.

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, Northstorm said:

Care to elaborate, got any articals to read? I'd love some more information.

Imagine a task as a rectangular peg, where the width represents the number of threads and the height represents how intense it is.

Imagine the CPU as a hole where the width is the number of cores, and the height is the single-threaded performance.

 

You can imagine easily now how you might never fill the hole (reach 100% usage), but still be unable to fit the peg through the hole.

 

Edit: To expand more on why your CPU chart would appear the way it does (ie, misleading), the answer is it has to do with the windows scheduler.  If you have an i5 and every chart is hovering around 50%, that doesn't actually mean you have 4 threads that are each using ~50% of a core (well, it could mean that but it's extremely unlikely).  It means (most likely) you've got 2 intense threads that are each maxing out a core - or at least, the equivalent of 1 core - and Windows is moving that load around constantly so while it looks like each is 50% loaded, in reality, 2 cores are pinned and two are idle, and they just trade off which is which very often.

Edited by Ryan_Vickers

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
Share on other sites

Link to post
Share on other sites

Bottlenecking is not a simple thing - people tend to oversimplify it.

 

People also tend to over-emphasize how important a bottleneck really is. Something is always going to hold back your system, no matter what.

 

Without seeing GPU usage or disk IO speeds, those CPU percentage numbers aren't particularly useful in determining if there is a bottleneck. But yes, a CPU could be held back by something else, such as the bus interface, the cache speed or size, etc.

For Sale: Meraki Bundle

 

iPhone Xr 128 GB Product Red - HP Spectre x360 13" (i5 - 8 GB RAM - 256 GB SSD) - HP ZBook 15v G5 15" (i7-8850H - 16 GB RAM - 512 GB SSD - NVIDIA Quadro P600)

 

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, frozeNNN said:

Yeah it can but you are better off checking GPU usage and seeing if it is being fully utilized

Yes this is a better way to check.  If GPU is 100% used, (assuming you're not limiting it with vsync or something) you know your'e good.  If it's not 100%, you are probably CPU bottlenecked.  Checking CPU usage however can be misleading since you can never assume that the game is even capable of using all cores, and if it isn't, you'll never hit 100%, even if it is holding you back.

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
Share on other sites

Link to post
Share on other sites

6 minutes ago, Ryan_Vickers said:

Yes this is a better way to check.  If GPU is 100% used, (assuming you're not limiting it with vsync or something) you know your'e good.  If it's not 100%, you are probably CPU bottlenecked.  Checking CPU usage however can be misleading since you can never assume that the game is even capable of using all cores, and if it isn't, you'll never hit 100%, even if it is holding you back.

Also CPU can be utilized differently through the gameplay depending where you are on the map/the situation you are in.

Link to comment
Share on other sites

Link to post
Share on other sites

Again this is not about any particular use case.

The screenshot here was taken while running Mass Effect: Andromeda, on a GTX 1070 (EVGA FTW),
the GPU is at 100% util, that's NOT my concern, I'm really more concerend about the THEORETICAL
aspect of the scenario.

What I'm curious about is, if there are cases where the GPU can clock 100% but the CPU will, for some
reason halt the framerate?

 

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, dalekphalm said:

Bottlenecking is not a simple thing - people tend to oversimplify it.

Yeah I've seen times when performance was hindered by disk read speeds and other oddities like that (incidentally another thing people like to oversimplify by claiming that HDDs don't affect gaming performance), but generally speaking, it's either the CPU or GPU, so people simplify.

4 minutes ago, dalekphalm said:

People also tend to over-emphasize how important a bottleneck really is. Something is always going to hold back your system, no matter what.

I like to think people realize this but perhaps not so I guess it doesn't hurt to bring it up every now and then :P 

Yes, there's always a bottleneck, it's just a matter of determining or choosing what it is (generally people want and have a GPU bottleneck)

If you didn't have a bottleneck, you'd get infinite FPS xD 

4 minutes ago, dalekphalm said:

Without seeing GPU usage or disk IO speeds, those CPU percentage numbers aren't particularly useful in determining if there is a bottleneck.

Yeah to truly understand what's going on, we'd need more data, but this is just about a theoretical scenario about whether a CPU could bottleneck without reading 100% usage.

4 minutes ago, dalekphalm said:

But yes, a CPU could be held back by something else, such as the bus interface, the cache speed or size, etc.

But then, that wouldn't be a CPU bottleneck, that'd be something else :P 

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, Northstorm said:

What I'm curious about is, if there are cases where the GPU can clock 100% but the CPU will, for some
reason halt the framerate?

 

Yeah. For example in GTA 5 weak CPU can't render the distance so fast so it will hold framerate while GPU might be at 100%.

 

EDIT: GPU MIGHT be at 100%. Not necessary because it can drop for split second.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, frozeNNN said:

Yeah. For example in GTA 5 weak CPU can't render the distance so fast so it will hold framerate while GPU might be at 100%.

Thank you, that's exactly what I'm looking for.

Like I said, if any of you have any articles, tests, or whatever, that people have done, I'd be happy to see them.

Link to comment
Share on other sites

Link to post
Share on other sites

A CPU can be bottlenecked without being at 100%. This may be due to one or more things:

  • The software doesn't issue enough threads to saturate the processor.
  • The processor can complete some tasks quicker than others, but they're reliant in a way that someone is gong to hang up further processing
  • The software relies too much on synchronization mechanisms or the synchronization methods aren't optimized to avoid busy-waiting.

As a bit of background, Windows (and by extension macOS and Linux) schedule tasks based on threads as they come in, not by the application (or process, as they're called). And threads are scheduled to run on any available logical core, unless told otherwise.

 

The problem I find with bottlenecking though is people think this is a black and white issue. Either you have it and it's so terrible you need to drop everything because oh my god why are you wasting your money, or you don't (or rather the GPU is the bottleneck, which is the ideal case for games) and everything is hunky dory. Unless you have top-end hardware all around, you will always be bottlenecked somewhere as far as gaming performance is concerned. And sometimes it shouldn't matter. Like every time in Civ when the computer takes its turn, processor usage will shoot up to 100% (hopefully) and your FPS tanks. Is that bad? No, because by design, Civ lowers the priority for graphics rendering to spend its time calculating computer turns, because that's what's important.

 

So really, until the system no longer meets your requirements, you shouldn't really think about bottlenecks. Otherwise you'll just be chasing your own tail trying to get rid of them.

 

1 hour ago, frozeNNN said:

Yeah. For example in GTA 5 weak CPU can't render the distance so fast so it will hold framerate while GPU might be at 100%.

 

EDIT: GPU MIGHT be at 100%. Not necessary because it can drop for split second.

In some random testing I did or whatever, I found GTA V is pretty smart to simply not render things if it's not available unless it's absolutely detrimental. I ran it over my NAS on 802.11n for craps and laughs and it still ran, even though sections of the game were missing. Like this:

nas_games_13.jpg

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

6 minutes ago, M.Yurizaki said:

Snip.

Thanks a lot, this makes fine sense to me, I was think that syncronization and thread halting might be one of the issues.

And I'm not worried about my current system, I know full well my 1070 is the bottle neck, I'm just inquisitive about the entire thing :) 

Link to comment
Share on other sites

Link to post
Share on other sites

I see my CPU dipping below 100% under load when it's thermal throttling.  I'm surprised I haven't seen that mentionedin this thread.

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, PianoPlayer88Key said:

I see my CPU dipping below 100% under load when it's thermal throttling.  I'm surprised I haven't seen that mentionedin this thread.

Oh thermal throttling is definitely possible - but that wouldn't be a CPU bottleneck so much as it's a cooling issue.

For Sale: Meraki Bundle

 

iPhone Xr 128 GB Product Red - HP Spectre x360 13" (i5 - 8 GB RAM - 256 GB SSD) - HP ZBook 15v G5 15" (i7-8850H - 16 GB RAM - 512 GB SSD - NVIDIA Quadro P600)

 

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

×