Does a game need to be specifically optimized to take advantage of 4+ CPU cores?

sterlin22

Honorable
May 17, 2012
74
0
10,630
I currently have an i7-4790k.

Way way into the future after I graduate college, and hopefully have stable income, I anticipate pursuing a full system upgrade.

Unfortunately I'm not a wizard and I'm unable to see into the future to determine what hardware we'll be playing around with come that time, but I can go off of current hardware. The i7-6950X consumer CPU is coming out sometime this year and it's apparently going to have 10 cores, 3.0 ghz base clock and 3.5 ghz turbo.

That is pretty insane, and it gets me super hyped for the CPU power that may come around to consumers in the near future.

My question primarily is, what does a game have to do specifically to take advantage of multi-core CPUs? What if said multi-core CPUs exceed the standard quad-core (such as the i7-6950X)? Do developers have to actually individually 'toggle' all iterations of CPUs (Dual, Quad, Hex, Octal, Deca), or is it as simple as "if multi-core CPUs are optimized, it doesn't matter if you're on 4/6/8/10 cores, all cores present will take advantage?"

Any general ideas, opinions, or information is greatly appreciated!





 
Solution
Games have multiple threads that generally get executed on different cores(but they can still be run on the same core if needed).

When a game developer makes a game, they have to try to offload some of the work to other threads to take advantage of extra cpu cores. The primary game generally still sits on one thread, but things like AI and physics can be on other threads(and hopefully other cores). This frees up some resources on the primary thread to allow for faster execution.

It actually takes more work to have all cores on a multi core system fully utilized so many will load one or 2 cores rather heavy while leaving others less loaded. This is changing as game engines and developers get better a dealing with these extra...
Games have multiple threads that generally get executed on different cores(but they can still be run on the same core if needed).

When a game developer makes a game, they have to try to offload some of the work to other threads to take advantage of extra cpu cores. The primary game generally still sits on one thread, but things like AI and physics can be on other threads(and hopefully other cores). This frees up some resources on the primary thread to allow for faster execution.

It actually takes more work to have all cores on a multi core system fully utilized so many will load one or 2 cores rather heavy while leaving others less loaded. This is changing as game engines and developers get better a dealing with these extra threads(and thus using more cores.).

Again a thread does not guarantee it will be on another core, but they should be able to set it to do that(core affinity maybe. This would require the game to see how many cores it has on startup). Check out your task manager and see how many threads you have in just your currently running software(1184 on 79 processes for me right now.).

Either way more cores does not always mean more speed, but it does help greatly with multitasking and things like video compression.
 
Solution

morpheas768

Distinguished
Mar 3, 2009
270
0
18,960
Ok, the short answer to the question/title of this thread is: Yes games do need to be coded in such a way that they take advantage of up to X number of threads.

But the short answer doesnt tell the whole story.
You may notice that even though you mentioned cores in your question, I addressed "threads", and this is what the developer/programmer takes into account: Threads not Cores.
Granted, of course having 4 physical cores is way better than having 2 Cores and 4 Threads (i.e. A Dual Core CPU with Hyperthreading enabled).

Now having said that, I understand that you are hyped and enthusiastic about a 10-core CPU, which will be top of the line, high performance, etc etc.
But in all honestly if you had that CPU (i7 6950X) most of its cores/threads wouldnt be taken advantage in most games, but even in a game that all cores/threads were utilized, you would most likely be limited by graphics processing power, not CPU power. In other words, your GPU would be the bottleneck, not the CPU, so most of the CPU's potential performance would go to waste.

It would be far wiser to invest in more graphics processing power than to direct that budget to a 10-core monster.
Take the new 1000 series by Nvidia for example:
Suppose you have a GTX 1080. Why would you spend an additional 800-1000 dollars to get that super expensive CPU, when you can add another GTX 1080 for less money?
It makes no sense, unless you already do have 2 GTX 1080's and you just want the best of the best for your PC.

(I said 800-1000 dollars as a very rough estimate, including the fact that you need a new motherboard for that CPU as well, as you are on Haswell atm. It could actually even be more than $1k, depending on the CPU's price tag)

Your CPU is great atm. It will not bottleneck any graphics card in most games atm, and you can overclock it as much as possible to get the most out of it, provided you have a capable cooling system.
I dont think OC is necessary, but hey if you want bragging rights, and to be absolutely sure it isnt a bottleneck then yeah go for it.

Bottom line is:
Right now game developers optimize their games with 4 cores/threads in mind. There are those demanding games that might just utilize 8 threads, but even that is questionable.
To make it short, developers will not optimize their games for more than 8 threads, which is what your CPU currently is capable of (4 cores 8 threads).

Hopefully I made it somewhat clear for you.
Any further questions please feel free to ask.
 

sterlin22

Honorable
May 17, 2012
74
0
10,630


I just wanted you to know that your post didn't go unread, despite me "resolving" out the issue from the first response.

Thank you very much for your reply, it was informative!