i7 Gaming Usage

CornBreadMan

Commendable
Mar 14, 2016
21
0
1,510
https://www.youtube.com/watch?v=j29qMfQ02Ss
At 3:25 he says that when the CPU usage is at 50%, then all four cores are being fully used. The laptop has an i7-6700HQ in it. I doubt this is true but I just want some confirmation. Based on that logic, it sounds like he is saying that the extra 4 threads when using hyperthreading act like another 4 cores. Which okay, not really. I just want some info and confirmation from you intelligent folks out there.
 
Solution
Not not necessarily, though it could be depending on how the application you're running utilizes cores and threads. More than likely in a game like star wars battlefront on the frostbite engine which will use all 8 threads, 50% load is going to be spread out on all 8 threads, so the the 50% cpu usage metric would be measured as a load spread out on all 8 threads not just the four cores if that makes sense. The threads do kind of act like cores or the cores act like threads might be a better way of saying it. All windows sees is 8 threads or logical cores it does not care about which are actual processing cores it only sees 8 threads from what I understand, i'm not sure how games interpret threads probably depends on the game.

Here is a...

leo2kp

Distinguished
50% utilization does not necessarily mean all 4 cores are being fully used, but it could. HT is not "Core, and then an extra thread". It's more like "Core split in to two threads" according to Windows by filling the gaps with an extra thread so that the core has less idle time when work needs to be done. I can imagine some scenarios where the code may use one thread per core and utilize all of its resources, though, which would register as 50% utilization in Windows because there is no room for another thread to execute on that core. Essentially, half of the available THREADS are being used, but 100% of your CPU is still being used.
 

leo2kp

Distinguished
Found this in a forum and thought it was interesting:

I could see that CPU usage was ~50% with 4 threads. Shouldn't it be ~100%?
No, it shouldn't.
what is the justification for 50% CPU usage when running 4 CPU bound threads on a 4 physical core machine?
This is simply how CPU utilization is reported in Windows (and on at least some other OS's too, by the way). A HT CPU shows up as two cores to the operating system, and is reported as such.
Thus, Windows sees an eight-core machine, when you have four HT CPUs. You'll see eight different CPU graphs if you look at the "Performance" tab in Task Manager, and the total CPU utilization is computed with 100% utilization being the full utilization of these eight cores.
If you are only using four threads, then these threads cannot fully utilize the available CPU resources and that explains the timings. They can, at most, use four of the eight cores available and so of course your utilization will max out at 50%. Once you go past the number of logical cores (8), runtime increases again; you are adding scheduling overhead without adding any new computational resources in that case.

By the way…
HyperThreading has improved quite a lot from the old days of shared cache and other limitations, but it will still never provide the same throughput benefit that a full CPU could, as there remains some contention within the CPU. So even ignoring OS overhead, your 35% improvement in speed seems pretty good to me. I often see no more than a 20% speed-up adding the extra HT cores to a computationally-bottlenecked process.
 

Dunlop0078

Titan
Ambassador
Not not necessarily, though it could be depending on how the application you're running utilizes cores and threads. More than likely in a game like star wars battlefront on the frostbite engine which will use all 8 threads, 50% load is going to be spread out on all 8 threads, so the the 50% cpu usage metric would be measured as a load spread out on all 8 threads not just the four cores if that makes sense. The threads do kind of act like cores or the cores act like threads might be a better way of saying it. All windows sees is 8 threads or logical cores it does not care about which are actual processing cores it only sees 8 threads from what I understand, i'm not sure how games interpret threads probably depends on the game.

Here is a good video on hyper threading: https://www.youtube.com/watch?v=zloLAGKr3b4
 
Solution