Finding out whether your FPS are CPU or graphics card limited

Do just take the "unreal is cpu intensive" unmeasured blah-blah statements.

Do this:
  • get framerate in a reproducible way that you like
  • go into the BIOS and downclock your CPU by 1/3rd, repeat benchmark
  • download an overclocking utility for your graphics card and use it to downclock your GPU by 1/3rd, repeat benchmark
  • for added fidelity, do same for:
  • RAM
  • graphic card RAM

I don't have time right now but I'll post mine later.

We need a reference thread about hardware-to-fps anyway.
 
That's the best way! Nice description! :cool:

The easier way is to read out the gpu load with openhardwaremonitor or similar. If it's at 3D clock but below ~95% load it's 99 percent surely the cpu that's limiting.
If the game is worth a better cpu or if you decide the game is so badly optimized that you give it the "crap vote" is a different story :p
 
Last edited:
Was about to post exactly this. Why mess about with downclocking CPU, GPU, memory and whatever when all you need is one look at your CPU/GPU usage (or multiple looks, as it's quite likely you'll sometimes be CPU bottlenecked and sometimes GPU bottlenecked, especially with this game).
 
go into the BIOS and downclock your CPU by 1/3rd, repeat benchmark
Wait why in this day and age i would need to go to bios... There are many tools that allow changing modern CPU clock times on the fly at OS level.
download an overclocking utility for your graphics card and use it to downclock your GPU by 1/3rd, repeat benchmark
I'd say downlclocking your GPU memory can be just as important, especially if running triple screen or using super-resolutions to sharpen image.

Thou i have not seen any modern game that is RAM dependant... last one i remember where ram speed mattered was Dwarf fortress and thats because it literally simulates whole fantasy world, from how skin burns on (or off) a creature, through magma flow to creature thoughts and marriage proposals, and all that needs huuuge tables that don't fit in CPU's cache and need to be fetched in and out of RAM constantly. Modern CPU's have enough cache to fit everything a normal game would want to throw at them and does not need fast ram at all.

Anyways this definitely would be most accurate way to benchmark, but i think just simple info from windows built in process monitor is enough to see how much cpu and gpu is utilized.
 
Anyways this definitely would be most accurate way to benchmark, but i think just simple info from windows built in process monitor is enough to see how much cpu and gpu is utilized.
This part is important. While a gpu is "like one single core" and you can directly see the real load on it, it's not that easy with the cpu.
With 8 threads in the Taskmanager you could reach the cpu limit at 12.5% cpu usage!
If you download process explorer and go into the details of assetto corsa for example you'll see the cpu load per game thread (a lot of threads are there underlaying behind the running exe).
My fps go down when one of the 2 main threads reaches 12+ % which means single thread limitation.
Windows shuffles the threads around so in the Taskmanager you'll see a kinda evened out cpu load on all cores/threads but that's not showing the truth behind it.

That's why only the look at the graphics card load will indicate which part is limiting.
 
8 cores ... hmm sounds like i7 or more modern CPU. Mine is pretty old and don't have hyperthreading. It might be that my taskmanager is able to paint more accurate picture because of that. When testing AC apps impact some months ago, i had a single core fill up to 80-90% with unlocked FPS and lots of apps on screen. Rest was 35%, 15%, 15% or something like that.
So yeah it's probably useless nowadays, i guess game fps+GPU load is best indicator of CPU usage we can have atm.
 
8 cores ... hmm sounds like i7 or more modern CPU. Mine is pretty old and don't have hyperthreading. It might be that my taskmanager is able to paint more accurate picture because of that. When testing AC apps impact some months ago, i had a single core fill up to 80-90% with unlocked FPS and lots of apps on screen. Rest was 35%, 15%, 15% or something like that.
So yeah it's probably useless nowadays, i guess game fps+GPU load is best indicator of CPU usage we can have atm.
You're right, the less cores/threads are shown by the taskmanager, the closer it gets to the real thing.
I have an i7 2600k, pretty "old" but still doing it's job. Which CPU do you have?

However, even with just a dual core without HT you could get 50% on both cores and be stuck in the single thread limit.

I have absolutely no clue what windows does internally though. Some old games run at 20% on all cores (should be 12.5% for me but somehow windows can utilize more?!), some others just run on one core/thread up to 100%...
For some reason the ones that are split although running on only 1-2 main threads like AC are still running at higher fps if I activate hyperthreading and on lower fps if I disable HT or deactivate a core.
So although in theory it shouldn't make a difference if you have 3 real cores (2 main threads, rest running on the 3rd core) or 16c/32threads in boosts fps somehow.

I did some testing and 8 threads with hyperthreading at 4 GHz give me the same fps as 4 threads (no HT) at 4.4 GHz.

That's why the i7 8700k is such a beast. It has an increased performance per core and clock compared to almost any other CPU while going easily close to 5 GHz and 6 cores + hyperthreading.

Sorry for the long post... :rolleyes::speechless:
 
@RasmusP It's i5 4670K

As for Hyperthreading increasing performance, idk exactly but i think it's related to how data is loaded and unloaded. A single thread can probably be chopped into chunks and executed on two (or more) cores, giving the advantage of doubling data bandwidth. The calculation itself is never paralleled but everything else can be sped up by sharing work on different cores. This probably is why single thread utilization is higher than one core percentage too.

Between hardware shortcuts for certain calculations or whole data structures, predictions (hello spectre/meltdown), thermal and wear control, data in CPU flies all over the place all the time. So i don't think it's even possible to define "per core" work on modern CPU's anymore.
 
hyperthreading simply executes one thread while the other is waiting for data from the memory (cache or ram). It can take quite some clock cycles to get data, so hyperthreading can offer significant speedups depending on the workload
 
  • Deleted member 387850

When I run the quick race in Special Events with 20 opponents my GPU sits around 70% most of the time, so I'm assuming the opponent AI is bottlenecking my CPU? When I run with the same settings in Hotlap my GPU sits at 99% or thereabouts which I guess is what you'd expect?
 
When I run the quick race in Special Events with 20 opponents my GPU sits around 70% most of the time, so I'm assuming the opponent AI is bottlenecking my CPU? When I run with the same settings in Hotlap my GPU sits at 99% or thereabouts which I guess is what you'd expect?
considering that AC runs AI on the same phisics as player (unlike for example pCars2), AI will hit CPU use pretty much linearly with the opponents number (double the opponents, double the CPU usage)
 
@suspectmonkey Yep, just like me - somewhat GPU bottlenecked in solo mode, CPU bottlenecked in AI races. I can only run around 6-8 AI opponents before the CPU is no longer able to keep up.

Being GPU bottlenecked is certainly a lot better, since you can drop some setting to manage. With CPU bottleneck, you're pretty much screwed :cry:
 
  • get framerate in a reproducible way that you like
I have noticed that there is not much difference between actual game and its replay's performance (using cockpit view for both) , could "using the replay function" be a good way for having the same piece of gameplay to test our frame rates in different settings/clocks ?
 
The easier way is to read out the gpu load with openhardwaremonitor or similar. If it's at 3D clock and above ~95% load it's 99 percent surely the cpu that's limiting.

Isn't it the opposite? If your GPU is pegged at nearly full usage, but your CPU is not, then that means the app is using the full potential of the GPU and would therefore benefit from any more potential that a more powerful GPU would provide -- i.e., the app is currently GPU-limited.
 
Back
Top