Will any PC games take advantage of 10+ cores.

Soldato
Joined
9 Jan 2005
Posts
4,427
Location
Stoke-On-Trent
As we know we are lucky if games take advantageof 6 to 8 cores but will there be any game that will make use of the cores on the 5900x and 5950x. I had 16 cores way back with my old 1950x and I"m fed up of devs not producing games that will efficiently use the extra cores.
 
As we know we are lucky if games take advantage of 6 to 8 cores but will there be any game that will make use of the cores on the 5900x and 5950x. I had 16 cores way back with my old 1950x and I"m fed up of devs not producing games that will efficiently use the extra cores.

As muon said, a lot of game do use those extra cores. In fact, for many years now the typical scenario in engine development is to spawn as many threads as is possible for the hardware it's running on. It's been a long time since the norm of having a finite limit on the number of cores/threads used.

The issue is that there are a lot of stages in an engine loop where data dependencies occur (ie. Task C can't run until Task B has finished, which, in turn, can't run until both Task A1 and A2 have finished, etc.), meaning things often aren't 100% parallelisable on the cpu-side in games. The gameplay differences between games can affect this to varying extents too. Also, even if a game is definitely using all cores there are a lot of times where those cores don't have enough work available to them to execute all the time whilst the main thread(s) are running. The more cores, the quicker you exhaust the pending work queue(s), and the longer each core subsequently has to wait for new work to be added to the same work queue(s), thus decreasing core utilisation - that may very well just be the nature of how much parallel work is generated each loop for a specific game.

Now, to improve parallelisation you may try to multithread any serial parts of the code on the 'critical path', or you could instead increase that amount of multithreaded and/or asynchronous work on top of what is already being generated. The former has likely already been tackled by most engine teams, and after a point it's impractical and effectively impossible (there are many parts of a game that have data and logical dependencies stopping this). A better option is the latter, where we add more parallel or async work either through extending more of what's already implemented, or perhaps through the addition of brand new features/functionality altogether. However, to any significant degree that won't likely occur except for jumps in baseline target h/w over time.

In general blaming the devs really isn't warranted when it comes to this topic (at least most of the time it isn't... perhaps there should still be eyebrows raised at some though: Middle-Earth: Shadow of War).

tl;dr: Most of the time it isn't the devs. Blame h/w targets and blame it on the impracticalities of multithreading/parallelising all the game code.
 
Last edited:
There are very few games that use more than 1-3 main threads and a dozen or less supplemental threads - if you have less than ~8 real or virtual cores things can become less smooth and/or stuttery but as it stands even 8 SMT threads is generally enough. There are exceptions but I can't see any games using 10+ real cores any time soon unless there are some real investments in AI development, physics or other additional features which can eat up a lot of threads.

As above there are some key parts of a game processing pipeline which simply are highly serial by nature no ifs or buts the only way higher and higher core counts come into play is through extensive use of additional features such as more advanced physics simulations.
 
Back
Top Bottom