FPS vs. CPU Usage

Revan47

Honorable
Nov 10, 2012
19
0
10,510
So lately I've been watching a lot of benchmark videos on YouTube showcasing the differences between the i7-4790K and the i5-4690K. While the performance of both CPU was remarkably similar, I did notice something that far too many people were overlooking. This was the CPU usage, in many games, the i5 was using most of its processing power in stark contrast to the i7 which was utilizing far less processing power. Now, if I'm not mistaken, these benchmarks are typically conducted in ideal conditions where there are no or few background processes running.

So in reality, if this were applied in real life scenarios where people are playing games while having programs and processes running the background. I would think that the i5 would be more likely to experience CPU overload and therefore lead to performance issues compared to the i7. My question is, is this a factor at all? Has anyone had any problems with issues like this arising?
 
Solution
You have a point, however. As far as the debate between i5 and i7, on Tom's, people agree that i7's are better when having multiple apps open. An i5 is still plenty of power, depending on model of course, but the i7 is about 10-20% faster than i5's in a few games, and that'll change slowly. The day when real 6 core/threads come, that's when an i5 might heavily bottleneck games, but I mean, developers are constantly struggling when optimising PC games, due to the fact that there are so much to choose from for the consumers, unlike consoles were performance is consistent. I personally believe that an i5 is enough, but an i7 does score a few frames higher in a few titles, so me favoring an i5 isn't based on the fact that an i5 and i7 are identical in games, that's simply not true.
 

InvalidError

Titan
Moderator
When you look at CPU utilization, keep in mind that HT/SMT makes the CPU look like it has twice as much processing power even though HT/SMT only delivers 25-40% extra processing power. When Task Manager says the i7 is at 50% overall load vs almost 100% for an i5, it may look more like 70-80% load from the instruction scheduler's point of view for both CPUs.

While HT/SMT might be better at handling multi-tasking than the same CPU without it, most people aren't running sufficiently multi-threaded and multi-tasked workloads to make much use of more than four independent hardware execution threads.
 


What you're noticing is the effect of SMT/Hyperthreading on the accounting of CPU time.

Hyperthreading does not increase the microprocessor's capabilities. What it does do is allow the microprocessor to better utilize the capabilities that it does have. It does this by allowing the microprocessor to select instructions from two concurrent contexts at the same time, leading to better overall usage. This feature is exposed to the operating system by presenting each core as two separate logical processors.

Windows accounts for CPU usage as the fraction of all time that all logical processors spend executing threads belonging to processes other than the System Idle Process. The SIP is a special process that has as many threads as there are logical processors in the system. SIP threads are scheduled at the lowest priority level possible. If the kernel scheduler has no other work to assign to a logical processor, it assigns an SIP thread to that logical processor.

Video games are real time applications. Hyperthreading generally increases total instruction throughput, but it does so at the expense of real time constraints placed upon each job. In simpler terms, executing Job A and Job B concurrently via HT should result in both jobs completing faster than were Job A and Job B executed consecutively. However, Job A will take longer to complete when executed concurrently than were it executed consecutively.

If game developers are not careful to properly schedule the threads in their applications, HT can have an adverse impact on performance. As a result, prudent developers detect the presence of HT at runtime and avoid scheduling work heavy threads on logical processors that belong to the same core. The net result is that one logical processor from a pair will execute background tasks or the SIP, while the other will execute game logic. From the perspective of the CPU, it's as busy as it can possibly be (assuming that the game is both demanding and while written), but from the perspective of Windows, half of the logical processors are idling.
 
Solution