Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

/s ?

For my computer graphics and processing work, multithreaded tasks scale amazingly well with the number of cores so single core performance doesn't matter all that much. A single thread isn't even be able to process all the data that's streamed from an SSD. I need three threads just to process/prepare the data in the background, in addition to the main thread that keeps rendering.

I suspect it's only a matter of time until multithreading is a must for games. The additional programming effort may not have paid off if players only have 2 or 4 core CPUs, but now that 8 cores with 16 threads are increasingly common, it's going to make a difference.



AAA games have all but required quad cores (or at least 2c/4t) for years now. I think a lot of games already scale well to 4c/8t today.


Do they use those cores? Sure. But when I’m playing a game (even a game that feels like it should be ripping threads like Factorio) I usually see that one core is pegged at 100% while the others are chilling around 40-60% (I have an overclocked 8700K). In my experience, single core performance is still the bottleneck (as far as CPUs are concerned) for gaming.


the underlying simulation in factorio is pretty difficult to parallelize, since there is so much interdependent state. some systems that don't interact directly (eg, trains and belts) can be parallelized almost trivially, but subdividing these update jobs further is very tricky.

see this dev blog for more info: https://factorio.com/blog/post/fff-215


Yep, games like factorio and dwarf fortress are generally more memory bandwidth limited than direct CPU limited, and it can be very hard to split up those behaviors.


It is exceptionally unlikely that a game is both limited by memory bandwidth and not able to be parallelized further.

You might mean memory latency bound from serial simulations that need to calculate one piece to move on to the next, like an emulator or scripting language.


Factorio is an indie game, I guess it might not be easy for indie developers to make use of multithreading, whereas AAA game developers have entire teams dedicated to engine development and multithreading.

Anyway, traditional graphics APIs like OpenGL are practically single-threaded. Modern APIs like DX12 and Vulkan have been designed with multithreading in mind and support scaling with number of cores much better (with added overhead of having to do manual synchronization).


> AAA game developers have entire teams dedicated to engine development and multithreading

Unity has been introducing a lot of features (Job System, ECS) that make excellent use of parallelism. Additionally, a lot of the engine internals are being rewritten with that as a base (and some of the old features get patched with APIs that allow access from multithreaded jobs). It's a lot of fun when the code you write by default runs on all of the cores, with (almost) none of the usual parallel programming headaches.

Pretty soon you should start seeing all kinds of indie titles making use of those features.


An 8700k has 12 threads. If the game was only capable of using 4 threads effectively, I would expect to see something like 1 thread at 100%, and the other 11 threads at 300/11 = 27%.

If all your threads are sitting at 40-60% you're using more than 4 threads worth of execution... (if all 12 threads were at 50% that would be 6 threads worth).

So, by the numbers you are giving, yes.


Usually operating system rotates threads between cores, so while you might see 60% on every core on average, on a given snapshop there will be 1-2 cores active at 100% while rest idle. Remember that CPU can't really work at 60%, core either works at 100% or sleeps.


Remember that both current gen consoles are ~8 core AMD CPUs. Anything that runs on those will have to be pretty good at using all of them


Precisely. Not only that, most games that run on consoles are generally NUMA aware and use NUMA aware algorithms.


No they aren't. There's no NUMA console on the market, why would anything be NUMA aware?


You're kidding me. Half the multithreaded PS4 optimizations I needed to make were related to atomic interlock exchanges over the numa boundary.


The PS4 is described as having 8gb of main memory. Unlike computers and older consoles, there isn't even a distinction between what is "System RAM" and what is "Video RAM". Can you elaborate how that is NUMA?


That's a very simplistic view of the architecture. Consoles in general have multiple CPU complexes and caches that do not straddle the boundary, and also multiple memory buses.


Are you referring to the multiple CCXs as different "NUMA" nodes? Because they aren't, they still share the same memory controller. There isn't a shared cache, true, and that does have performance implications but that doesn't make it NUMA.

If you can point to anything to support your NUMA claim that'd be highly interesting, but all the block charts & teardowns I can find show it's clearly UMA.


Gp comment mentions AAA. We PACK the core occupancy and for many titles, it’s essentially a ship requirement.


Not utilizing all cores fully means that the CPU is more powerful than the game needs, not that the game is unable to exploit many cores.

For example, at 3 GHz and 30 FPS, there are 100 million cycles per frame. If the game requires 250 million cycles per frame spread between a few threads, it will never need more than two cores and a half in aggregate, plus waiting; and with 10 cores used 10% there's more time to wait without dropping frames than with 3 cores over 80% load.


Yes, recent games do. For example, Doom Eternal can max out all CPU cores.


It's sad to see even on HA people have absolutely no idea what they're talking about when it comes to CPUs. Nothing requires multiple cores. Nothing.


That's nitpicking semantics. They mean anything less than a quad core (excepting some hypothetical ultra high clocked single core cpu that doesn't exist) would heavily bottleneck most modern games to the extent that only pretty low end GPUs would even be worth using.

They said "require" as shorthand for that because they (apparently wrongly) expected people to follow the "strongest plausible interpretation" rule.


So the latest games require the latest CPUs? Well, no shit. The points I'm referring to are where the comments above say that games need multi-threading, or need multiple cores. Both are absurd statements. They try hard to do multiple threading only because multiple cores is what they CPU manufacturers are giving us. Nobody wants, much less needs, multiple cores.


CPU manufacturers are giving us multi core CPUs because it's no longer practical (because of heat and power draw) to just keep scaling frequencies. People are saying that you need multi core CPUs because there are no single core CPUs in existence that are fast enough.

You're talking past everyone because you're arguing hypotheticals, and assuming everyone else is also talking about hypotheticals, but they're not.


Just check the original context. "Best single core performance, which is what matters". There are no hypotheticals. Single core performance exists.

Look at the other replies. People who don't understand the difference between concurrency and parallelism. These people actually think multiple cores are a good thing.

What you don't seem to understand is that CPU manufacturers could have scaled up performance while still delivering a single core. They went the multi core route because it's much easier for them.

Their marketing departments have won, though.


No, the went multicore because 5 GHz is the physical limit for modern semiconductor processes. And IPC is also hitting its limits.


Assuming the same power budget, same cooling, same semiconductor process, both x86, etc. the best single core you could make would lose to just two cores off a desktop chip you can buy today, let alone 8/10/12.


It might actually be useful to have a second core, to service hardware and peripherals. This way you'd have smoother performance, because you would not need to flush the cache on every interrupt.


It depends on workloads. Computer graphics and processing work may be easier to remove single-threaded bottlenecks.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: