Putting the "Games don't use more than two cores" myth to rest

Zarathustra[H]

Extremely [H]
Joined
Oct 29, 2000
Messages
38,862
Why doesn't someone tell me again how games don't use more than two cores, because it's obviously true. :rolleyes:



Civilization V is a great example of multithreaded gaming: (click for larger)




Metro 2033 doesn't do too shabby either: (click for larger)



Even an older title like Counter-Strike: Source uses multiple threads. (click for larger)



Taken on my rig (see sig) a few minutes ago with nothing of significance running in the background. Even on older games like CS:S where it is obvious that most of the work is being done on a few of the threads, ALL threads are at least loaded to ~10% or so. Is someone going to tell me that this doesn't matter or is useless?

These are just three games I happen to currently be playing and thus have installed. I don't think you'll find significantly different results if you load up pretty much any recent game...

I - for one - look forward to some 8 core multicore gaming on my Bulldozer (when I get one)
 
I won't disagree yet I've read many suggestions from not even a few years back to get a "dual core" and forget quad etc etc. Some from so called respected magazines as well!

And not just gaming wise in general. Reality is there is no reason to stick to a dual core nowadays..not sure I'd need 8 cores though ;)
 
ALL threads are at least loaded to ~10% or so. Is someone going to tell me that this doesn't matter or is useless?

It looks to me like only Civilization V is using more than 4 threads with the other 2 using 3 threads or less.
 
It looks to me like only Civilization V is using more than 4 threads with the other 2 using 3 threads or less.

Yeah so your argument is what.... we should all get 3 cores and no more.

I cant wait on 10 core Dozers or dual 6 core 2011s
 
You're just figuring this out now?...August, 2011.

Either way, good topic. I really only play BFBC2, and it has always used 4 cores.

.
 
I believe that story persists as games that people actually play largely do not.

World of warcraft makes very poor use of quad and hex core cpus.

League of legends - which today topped world of warcraft in minutes played according to xfire, and is sporting a massive 120k+ average daily users according to their recent newsletter - requires little hardware. Warcraft 3, Guild Wars, and Heroes of Newerth are all in this boat.

Starcraft 2 like cache, but not necessarily cores, and is very hungry for single core speed.

Call of Duty 4, the most popular fps according to xfire only makes use of 2 cores http://www.bit-tech.net/hardware/cpus/2010/07/05/how-many-cpu-cores-do-games-need/4

Civ5 and BF:BC2 are standouts, but their average player count per steam does not combined approach that of many of the above listed games, and they are two of steam's most popular games.

Also, I believe how many cores are being "used" with the operating system's attempt at load spreading is not proportionate to performance gain. If less cores were available, they would be more loaded to pick up slack. There are plenty of benchmarks around the web demonstrating this. I (see signature) do look forward to better applications, same as anyone else, or the PC performance market will hit harder stagnation. That being said, however, I would still have a hard time recommending more than an i3-2100 to someone putting together a gaming machine on a budget.
 
Last edited:
Also, I believe how many cores are being "used" with the operating system's attempt at load spreading is not proportionate to performance gain. If less cores were available, they would be more loaded to pick up slack. There are plenty of benchmarks around the web demonstrating this. I (see signature) do look forward to better applications, same as anyone else, or the PC performance market will hit harder stagnation. That being said, however, I would still have a hard time recommending more than an i3-2100 to someone putting together a gaming machine on a budget.

I think that is a significant point. If the OS is taking 2 cores worth of processing and spreading the load over the 6 available cores, does that really count as using more than a dual core? Is there any significant benefit to having 6 cores running at 20% of capacity over 2 cores running at 60% of capacity?

In those pictures Civ 5 is clearly using a significant portion of all 6 cores, but the others not so much.
 
Too bad a simple 4 core SB will outperform any 6 core Phenom.

Me... I would rather have lower number of more powerful cores than higher number of weak cores.
 
It's not really a myth,it use to be true,but not anymore.Processors have stopped to dramatically scale with frequency and architecture improvements,software will have to use multiple threads to stay competitive and move forward.
 
now add up the % of each core used and see if it would = %100 of a dual core, years ago sure, but even then i said a quad was better just for handling the OS, IM's, browser windows et cetera.

most games i am sure would still take faster Ghz over more cores.

also the i3/5/7 is faster clock for clock as we know, could be why it pulls ahead.

I think the real issue is most games don't make "efficient" use of more cores
 
Techspot's tests show an i3-540 coming out ahead of an AMD 1075t hex core in Civ5, http://www.techspot.com/review/320-civilization-v-performance/page12.html so I am going to have to guess "not so much"

At launch Civ 5 was not as multithreaded as it is today based on Nvidias and AMD's video card drivers not supporting the full multithreaded capabilities of DX11.

Any comparison review done more than ~1-2 months ago is likely not going to reflect the full multithreaded capability of Civ 5 or any other game.
 
It looks to me like only Civilization V is using more than 4 threads with the other 2 using 3 threads or less.

That's not what I'm seeing. Civ 5 definitely. All cores see significant load. There is slightly less of this in Metro 2033, but only two of the 6 cores are seeing less than 30% load, and they are at about 10-15%. That 10-15% is something, not nothing.

Counter-Strike was merely thrown in to show that even an old game, not optimized for multithreading at all, can get some advantage out of multithreading.

Here is what CS:S and Metro 2033 are telling me:

Metro 2033:
Core 0 is bearing the brunt of the load, but cores 1, 2 and 5 are still bearing significant load. Cores 3 and 4, are bearing much less load, but this load completely vanishes when the game is shut off, so it must be game related.

My theory? The game engine is optimized for 4 cores. Since DX11 is multithreading capable, and AMD and Nvidia drivers now support it, the remaining two cores are seeing some rendering overhead, that in a 4 core or less system would have to be computed on one of the cores handling the engine process.

CS:S

Looks like the engine is using 3 cores, core 1, 2 and 5. Same multithreaded residual rendering overhead being carried by the other three cores, that otherwise would have to be handled on the same cores as the main engine on a 3 or less core system.

So is it 100% efficient? Does it scale well? No, but it does show that even in games not written for many cores, there is at least some incremental benefit in adding extra cores in that it frees the main engine cores up to focus on executing the engine, and spreads the CPU support of the video card rendering functions out over the remaining cores.

The real showcase for multithreaded gaming is Civ 5, being a game built for multithreading and DX11 from the ground up, it takes full advantage of multithreading both for engine processing, as well as for CPU time supporting the video cards for rendering, resulting in what IMHO is the future of games.
 
Zarathustra[H];1037580836 said:
The real showcase for multithreaded gaming is Civ 5, being a game built for multithreading and DX11 from the ground up, it takes full advantage of multithreading both for engine processing, as well as for CPU time supporting the video cards for rendering, resulting in what IMHO is the future of games.

Make your shit parallel. It is the future.
 
Too bad a simple 4 core SB will outperform any 6 core Phenom.

Hell the dual core i3 Sandy Bridge will outperform any Phenom in gaming! Sad.

That being said, I agree with the OP. I posted this in another thread but I recently went from a Phenom X2 555 unlocked to a 3 core and overclocked to 4GHz to my current X6 and saw a pretty good sized jump in frame rates in all my game benchmarks even with the X6 at stock clocks. Im sure there is a point where it wont matter but all things being equal, more cores do improve performance in games.
 
Zarathustra[H];1037580836 said:
That's not what I'm seeing. Civ 5 definitely. All cores see significant load. There is slightly less of this in Metro 2033, but only two of the 6 cores are seeing less than 30% load, and they are at about 10-15%. That 10-15% is something, not nothing.

100% CPU usage = all 6 cores are utilized 100%
50% CPU usage = 3 cores total are utilized 100%

You have 68% then 16%, then 48%. So only the Civ5 is effectively using more than 3 cores. Counter Strike uses 3 to 4 cores at times but mostly 3 cores or less.
 
Last edited:
100% CPU usage = all 6 cores are utilized 100%
50% CPU usage = 3 cores total are utilized 100%

You have 68% then 16%, then 48%. So only the Civ5 is effectively using more than 3 cores. Metro uses 3 to 4 cores but mostly 3 cores or less.

Just because its not loading all the cores 100% doesn't mean that its not multithreading well. (I agree that this may be the case for this game, but...)

At some point the game is not CPU limited. I doubt any CPU on the market would increase my FPS in Metro 2033. Definitely GPU limited at 2560x1600 and max settings, even with twin 6970's in xfire.
 
Zarathustra[H];1037580836 said:
Counter-Strike was merely thrown in to show that even an old game, not optimized for multithreading at all, can get some advantage out of multithreading.

Using multiple cores doesn't necessarily mean getting an advantage from multiple cores - a gallon of water in 4 quart jars is still just a gallon of water. Not saying it doesn't benefit, just that you'd have to do actual testing to know for sure.
 
Using multiple cores doesn't necessarily mean getting an advantage from multiple cores - a gallon of water in 4 quart jars is still just a gallon of water. Not saying it doesn't benefit, just that you'd have to do actual testing to know for sure.

Agreed,

In all three of these cases the games are GPU limited and the ability to spread the load over multiple cores likely dismot result I'm any real measurable performance increase. What it does demonstrate - however is:

1.) As game CPU Requirements increase over time 6 and 8 core processors will likely be able to perform pretty well, provided developers don't completely omit multithreading considerations.

2.) Currently most games - at the settings you'd want to play - will wind up being GPU limited, not CPU limited.
 
Zarathustra[H];1037580951 said:
Agreed,

In all three of these cases the games are GPU limited and the ability to spread the load over multiple cores likely dismot result I'm any real measurable performance increase. What it does demonstrate - however is:

1.) As game CPU Requirements increase over time 6 and 8 core processors will likely be able to perform pretty well, provided developers don't completely omit multithreading considerations.

2.) Currently most games - at the settings you'd want to play - will wind up being GPU limited, not CPU limited.

Yep, and hopefully as more-than-dual-core machines become the mainstream (if they aren't already) developers will continue to push increased multicore programming. Battlefield is a good milestone on that road.
 
Yep, and hopefully as more-than-dual-core machines become the mainstream (if they aren't already) developers will continue to push increased multicore programming. Battlefield is a good milestone on that road.

According to the Steam Hardware Survey 4 core CPU's are currently at 43.3% of people on Steam. It's unclear to me if this includes dual core CPU's with hyperthreading.
 
OP. While in-game, please open task manager, go to processes tab, go to "View" drop down menu, then select "threads," then click OK. Then highlight the process that corresponds to the game in the process tabs and tell us all how many threads are listed.

Just showing multiple cores being partially loaded doesn't give a fair representation of how many threads there actually are. Windows does a very good job of re-destributing the threads to multiple cpu's to keep them all evenly loaded. 2 threads that would peg a Dual-Core CPU at 100% on both cores would peg a Quad-Core CPU at 50% on all 4 cores.
 
Okay well we almost hit the limit of silicon. So what do you propose. Also I have the want for more cores so don't attempt to justify your lack of want.
 
OP. While in-game, please open task manager, go to processes tab, go to "View" drop down menu, then select "threads," then click OK. Then highlight the process that corresponds to the game in the process tabs and tell us all how many threads are listed.

Just showing multiple cores being partially loaded doesn't give a fair representation of how many threads there actually are. Windows does a very good job of re-destributing the threads to multiple cpu's to keep them all evenly loaded. 2 threads that would peg a Dual-Core CPU at 100% on both cores would peg a Quad-Core CPU at 50% on all 4 cores.

This.

The OP's post doesn't prove anything. Windows can redistribute the load fine, but the game itself may not be making use of multiple threads which in turn means it isn't really a multicore optimized game.
 
OP. While in-game, please open task manager, go to processes tab, go to "View" drop down menu, then select "threads," then click OK. Then highlight the process that corresponds to the game in the process tabs and tell us all how many threads are listed.

Just showing multiple cores being partially loaded doesn't give a fair representation of how many threads there actually are. Windows does a very good job of re-destributing the threads to multiple cpu's to keep them all evenly loaded. 2 threads that would peg a Dual-Core CPU at 100% on both cores would peg a Quad-Core CPU at 50% on all 4 cores.

The os redistributes 2 threads onto 4 cores? How? I thought a single thread cannot be split to run on separate processors.
 
The os redistributes 2 threads onto 4 cores? How? I thought a single thread cannot be split to run on separate processors.

Simple, the OS just dynamically and quickly changes the cores which the thread is being run on. As many others have said, OP's post doesn't prove anything.

Here's my example:

There is a PS2 emulator that I use. I lag on that emulator if I try to set the settings too high. However, my 6 cores are only loaded on average 16-18% per core. Sum this up, that's equivalent to a dual core at 100%. This clearly shows that it is limited to only two threads, even though all 6 cores are being utilized.

A game cannot use more threads than what it was written to use. However, due to the OS's balancing of core load, it may give the illusion that the game is multithreaded, even though it isn't.
 
Well the only way to get more performance is multi-threading sadly there are just not enough talented people which understand this and are able to perform this well on the windows platform.
 
Well the only way to get more performance is multi-threading

No this is not the only way. A combination of improved IPC and higher clocks will also improve performance.

sadly there are just not enough talented people which understand this and are able to perform this well on the windows platform.

It is in a lot of cases significantly harder to make effective use of multiple threads. Harder to design, harder to implement, harder to test. In some cases it is impossible (algorithms that can not be run in parallel because the result of 1 part depends on the result of another part).
 
This may be meant as a price/performance issue.
Tne Intel I3 2100 " outperforms" many four core CPUs.
The Phenom II x2 has been a long time favorite, speed vs cores.
Pentium Sandy Bridge I am very uncertain about.
Windows uses as much as it can.
 
Simple, the OS just dynamically and quickly changes the cores which the thread is being run on. As many others have said, OP's post doesn't prove anything..

Yep, this is true. Task manager doesn't have the refresh rate to show the thread being shoved from core to core rapidly. Find an application that updates in the milliseconds, and you will probably see that your application isn't as multi-threaded as you think it is.
 
also how can you tell some of that % isn\t windows processes, AV, IM and other background services...
 
Yep, this is true. Task manager doesn't have the refresh rate to show the thread being shoved from core to core rapidly. Find an application that updates in the milliseconds, and you will probably see that your application isn't as multi-threaded as you think it is.

This is a good point, and one that I hadn't thought about. I will poke into it and see what I can figure out.

I am concerned that if I only look at threads started by the game executable - however - I may miss part of the CPU load caused by the game. some of the load is certainly from the video card drivers,sound card, etc. etc. all working to support the game. It would be an unfair appraisal of how multiple cores benefit these games if you disregard other processes needed to support the game in addition to the game executable itself.

also how can you tell some of that % isn\t windows processes, AV, IM and other background services...

Some of it likely is, but its' going to be at the noise level. When I quit the game, the core utilization goes down to 0 on each core and stays there except for an occasional blip.

if it is windows processess supporting the game, I am fine with including that in the assessment of how multiple cores benefit games today, as regardless of what it is causing the load, not having it squeezed in and blocking the cores the engine is trying to make use of, its running on another core.

Again, this was not intended to assess how multithreaded a game engine code is in and of itself, but how computers take advantage of multiple cores while playing games.
 
Too bad a simple 4 core SB will outperform any 6 core Phenom.

Me... I would rather have lower number of more powerful cores than higher number of weak cores.

The move from a 1090T @ 4.2ghz/3.0ghz CPU-NB to a 2500K @ 4.4ghz was INCREDIBLY underwhelming. There was very little difference in gaming and there were certain places where the 1090T excelled and overall I felt the system was faster and more responsive on the Ph2 build.

My 2600K on the other hand was a much better upgrade experience, the 2500K was kind of a side grade.
 
Simple, the OS just dynamically and quickly changes the cores which the thread is being run on. As many others have said, OP's post doesn't prove anything.

Here's my example:

There is a PS2 emulator that I use. I lag on that emulator if I try to set the settings too high. However, my 6 cores are only loaded on average 16-18% per core. Sum this up, that's equivalent to a dual core at 100%. This clearly shows that it is limited to only two threads, even though all 6 cores are being utilized.

A game cannot use more threads than what it was written to use. However, due to the OS's balancing of core load, it may give the illusion that the game is multithreaded, even though it isn't.
thanks, didn't know that. Why would the OS shift threads so rapidly from core to core, i thought there was a performance penalty for shifting threads from one core to another and that the OS does it as little as possible.
 
thanks, didn't know that. Why would the OS shift threads so rapidly from core to core, i thought there was a performance penalty for shifting threads from one core to another and that the OS does it as little as possible.

Not sure.

I'm not convinced he is saying it actually does this. I'm thinking (and I could be interpreting it wrong) that it COULD be doing this, and that it has to be accounted for in testing.

I would agree that there is a penalty hit to have to repopulate the registers and L1/L2 cache when switching a process from core to core. in some processes with little reusable data, this may not have as much of an impact.

One of the reasons the scheduler may choose to do this is to balance the load, so that the CPU heats up evenly.

That being said, it doesn't explain why the CPU doesn't do this when you have one core under high load from a strictly single threaded task.. It generally just stays in the same place without moving around.
 
Zarathustra[H];1037583648 said:
Not sure.

I'm not convinced he is saying it actually does this. I'm thinking (and I could be interpreting it wrong) that it COULD be doing this, and that it has to be accounted for in testing.

I would agree that there is a penalty hit to have to repopulate the registers and L1/L2 cache when switching a process from core to core. in some processes with little reusable data, this may not have as much of an impact.

One of the reasons the scheduler may choose to do this is to balance the load, so that the CPU heats up evenly.

That being said, it doesn't explain why the CPU doesn't do this when you have one core under high load from a strictly single threaded task.. It generally just stays in the same place without moving around.

The CPU doesn't shift the thread around automatically, it is the operating system that does. That's why you can 'lock' threads to certain cores in windows task manager. Some applications will automatically lock themselves to a core.

Data transfers within the CPU is much faster than data transfer from the RAM, so I imagine the performance impact is marginal at best, as most of the thread execution information is in the RAM.

The main reason for doing this is most likely to prevent one part from getting hotter than the other. The other may be to balance the degradation of the CPU evenly (arguable point).
 
Zarathustra[H];1037583648 said:
Not sure.

I'm not convinced he is saying it actually does this. I'm thinking (and I could be interpreting it wrong) that it COULD be doing this, and that it has to be accounted for in testing.

I would agree that there is a penalty hit to have to repopulate the registers and L1/L2 cache when switching a process from core to core. in some processes with little reusable data, this may not have as much of an impact.

One of the reasons the scheduler may choose to do this is to balance the load, so that the CPU heats up evenly.

That being said, it doesn't explain why the CPU doesn't do this when you have one core under high load from a strictly single threaded task.. It generally just stays in the same place without moving around.

WILL YOU PLEASE do as I suggested above and tell us how many threads are listed in task manager process tab for the game process? It will help your argument. I truly believe the point you are trying to make, but you need to prove to the naysayers and leave them zero doubt on this issue. ;)
I know for fact that CIV5 and Metro2033 are multi-threaded. Valve mentioned a few years ago before they released L4D and TF2 that they were updating the source engine to multi threading, it may apply to CS:Source also. If the number of threads is less than your core count, you could set affinity for the amount of game threads to certain cores, then re-take the screenshots of task manager showing multiple cores pegged at 100%.

If you need more games to test this out on, I suggest Supreme Commander and Battlefield Bad Company 2.
 
Back
Top