Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

How Many CPU Cores for Gaming?

124

Comments

  • MalaboogaMalabooga Member UncommonPosts: 2,977
    edited January 2017
    filmoret said:
    Quizzical said:
    filmoret said:
    Grunty said:
    This is like reading posts co-written by DRBaltazar and SEANMcad.  
    I have said very clearly games are designed to run on 4 cores at a time.  Meaning they will only push 4 threads at a time through the processor.  You cannot make them push more then 4 threads at a time because they aren't designed to do such a thing.  When games are designed to take advantage of 16 threads then we will see 8 core processors being used for gaming.  

    Meanwhile like he said windows is scheduling the threads so even though the i7 should be weaker because they are splitting their cores in 1/2.  They aren't weaker because of how windows uses the threads and spreads the tasks out.  So it looks like the games are taking advantage of 8 cores when really its windows spreading out the work.  When they are coded to take advantage of 8 cores we will see a huge increase in performance.
    A competent game designer does not target a particular, fixed number of CPU cores, with the possible exception of consoles.  And even then, if you want your game to run on multiple consoles, you want it to run well on all of the CPUs that any of the consoles you care about have, and they sometimes have different numbers of CPU cores.
    Guess it goes to show either many game designers aren't competent or its not as easy as we would assume.  Games that take advantage of more then 4core/4thread processing are few and far between.
    Stop your trolling, on PC ancient DX11/OGL is whats stopping devs from utilizing more threads on CPU efficiently because they are still single threaded APIs.

    Consoles have been utilizing multiple cores for YEARS now because they dont have that stoopid outdated APIs. Console CPUs are potatoes. PS4/PS4 Pro and XBox basically have smartphone CPUs in them, small core design but 8 of them running at whooping 1.8 GHz and they run games just fine.

    Just goes on to show how much behind PC is compared to consoles (PS4/XBox were released 4 years ago), and if AMD hasnt started the revolution with Mantle ( i bet you have no clue about what it is and what it did) we would still be hammering that poor single core and wondering why arent games running better on much faster CPUs (meaning CPUs with more cores)

    And as far as single core performance goes, even Intel hit a wall and all they can do now is add more cores to add more performance *khm* i7 6950x *khm* or youre stuck with whooping 200 MHz "advantage" on previous gen rebrand *khm* Kaby Lake *khm*
  • GruntyGrunty Member EpicPosts: 8,657
    edited January 2017
    Ridelynn said:
    Grunty said:
    This is like reading posts co-written by DRBaltazar and SEANMcad.  
    Yeah, my mistake for feeding the trolls again.

    Sorry. I'll properly punish myself.
    Even I get pulled in sometimes.  You see a faint glimmer of intelligence and try to feed it. Then you get hit between the eyes with a 2 X 4 of willful ignorance.
    "I used to think the worst thing in life was to be all alone.  It's not.  The worst thing in life is to end up with people who make you feel all alone."  Robin Williams
  • filmoretfilmoret Member EpicPosts: 4,906
    Malabooga said:
    filmoret said:
    Quizzical said:
    filmoret said:
    Grunty said:
    This is like reading posts co-written by DRBaltazar and SEANMcad.  
    I have said very clearly games are designed to run on 4 cores at a time.  Meaning they will only push 4 threads at a time through the processor.  You cannot make them push more then 4 threads at a time because they aren't designed to do such a thing.  When games are designed to take advantage of 16 threads then we will see 8 core processors being used for gaming.  

    Meanwhile like he said windows is scheduling the threads so even though the i7 should be weaker because they are splitting their cores in 1/2.  They aren't weaker because of how windows uses the threads and spreads the tasks out.  So it looks like the games are taking advantage of 8 cores when really its windows spreading out the work.  When they are coded to take advantage of 8 cores we will see a huge increase in performance.
    A competent game designer does not target a particular, fixed number of CPU cores, with the possible exception of consoles.  And even then, if you want your game to run on multiple consoles, you want it to run well on all of the CPUs that any of the consoles you care about have, and they sometimes have different numbers of CPU cores.
    Guess it goes to show either many game designers aren't competent or its not as easy as we would assume.  Games that take advantage of more then 4core/4thread processing are few and far between.
    Stop your trolling, on PC ancient DX11/OGL is whats stopping devs from utilizing more threads on CPU efficiently because they are still single threaded APIs.

    Consoles have been utilizing multiple cores for YEARS now because they dont have that stoopid outdated APIs. Console CPUs are potatoes. PS4/PS4 Pro and XBox basically have smartphone CPUs in them, small core design but 8 of them running at whooping 1.8 GHz and they run games just fine.

    Just goes on to show how much behind PC is compared to consoles (PS4/XBox were released 4 years ago), and if AMD hasnt started the revolution with Mantle ( i bet you have no clue about what it is and what it did) we would still be hammering that poor single core and wondering why arent games running better on much faster CPUs (meaning CPUs with more cores)

    And as far as single core performance goes, even Intel hit a wall and all they can do now is add more cores to add more performance *khm* i7 6950x *khm* or youre stuck with whooping 200 MHz "advantage" on previous gen rebrand *khm* Kaby Lake *khm*
    Is this true that dx11 is the culprit in this scenario?  There is definitely a culprit somewhere otherwise the 8-16 thread processors would rule gaming right now.
    Are you onto something or just on something?
  • MalaboogaMalabooga Member UncommonPosts: 2,977
    Yes because thats how DX11/OGL work, they hammer one thread, and even if you spread other tasks to other threads your whole performance will depend on that single thread if it (and usually it does) becomes a bottleneck, its archaic design that needs to go away as soon as possible.

    DX12/Vulkan can spread workload over as many threads you have available evenly. It wont turn you 4 core CPU into 8 core, but they WILL utilize all CPU resurces you have available.
  • filmoretfilmoret Member EpicPosts: 4,906
    edited January 2017
    Here maybe this will help some misunderstandings. For the most part gaming has looked like this for the past 5 years.  And hopefully now is beginning to change.

    #5Bacterius   Members   

    13133
    Like
    4Likes5Likes
    Like

    Posted 01 July 2012 - 05:41 AM

    A "basic game" needs only one thread, possibly two. You can't just throw more threads onto a program and expect it to run faster, it doesn't work like that. Some problems can be accelerated simply by adding more execution units (e.g. threads), but most problems - like running a game - don't map well to that. You could have one thread for the rendering, one for user input, another for sound, one for physics/logic, another for networking, a small thread pool for I/O, but beyond that there isn't really any need for more threads (and it isn't obvious how to parallelize specific tasks such as rendering over multiple threads).

    But if you do that you run into thread management issues, e.g. making all those threads work together nicely without waiting for each other, etc.. which drags down performance, so in general tasks are batched up similar to this (it can vary):
    1 thread for rendering/game logic/user input
    1 thread for physics and networking
    a few threads for I/O

    Minithreads (like IDE/debugger hooks) that only spawn for a short duration don't count, of course. 


    https://www.gamedev.net/topic/627258-how-many-average-number-of-threads-does-a-game-needs-regardless-of-simplicity/
    Are you onto something or just on something?
  • filmoretfilmoret Member EpicPosts: 4,906
    Malabooga said:
    Yes because thats how DX11/OGL work, they hammer one thread, and even if you spread other tasks to other threads your whole performance will depend on that single thread if it (and usually it does) becomes a bottleneck, its archaic design that needs to go away as soon as possible.

    DX12/Vulkan can spread workload over as many threads you have available evenly. It wont turn you 4 core CPU into 8 core, but they WILL utilize all CPU resurces you have available.
    Translation:
    I've never coded one line of DX11 or OGL code in my life, but I'm making big assumptions about how they work on some gaming forum so I look cool among the cool kids.

    Sorry... you definitely do NOT have the start of a clue about what you're talking about here. There are people out here who do this for a living...

    If it can make you feel better, you're not the only one.
    It makes me wonder though is what people are seeing as threads in their games really the minithreads that are nothing more then I/O tasks?  Like someone said the games are benefiting more from fully resourced cores then multithreaded core sharing for the most part anyways.  Exactly how far into this generation of gaming are we that more then 4 threads are being utilized by a game anyways?
    Are you onto something or just on something?
  • MalaboogaMalabooga Member UncommonPosts: 2,977
    edited January 2017
    Malabooga said:
    Yes because thats how DX11/OGL work, they hammer one thread, and even if you spread other tasks to other threads your whole performance will depend on that single thread if it (and usually it does) becomes a bottleneck, its archaic design that needs to go away as soon as possible.

    DX12/Vulkan can spread workload over as many threads you have available evenly. It wont turn you 4 core CPU into 8 core, but they WILL utilize all CPU resurces you have available.
    Translation:
    I've never coded one line of DX11 or OGL code in my life, but I'm making big assumptions about how they work on some gaming forum so I look cool among the cool kids.

    Sorry... you definitely do NOT have the start of a clue about what you're talking about here. There are people out here who do this for a living...

    If it can make you feel better, you're not the only one.
    Oh noes, you post so much facts in your reply, in fact filmoret level of facts!

    Translation: im full of $hit as usual

    After thousands and thousands of analyzed games, and DX11/OGL factual limitations, here comes the expert.

    So enlighten us oh master of universe.......why havent PC games taken advantage of multi core CPUs.....since 2009, ROFL

    "Microsoft released the Final Platform Update for Windows Vista on October 27, 2009, which was 5 days after the initial release of Windows 7 (launched with Direct3D 11 as a base standard)."
    Post edited by Malabooga on
  • RottsteinRottstein Member UncommonPosts: 66
    filmoret said:
    IDK how everyone got confused with what I was saying.  The games are only built to process 4 threads at a time.  Yes they load like 30 threads but they are waiting to be processed or just waiting on something to tell them what to do.  The i5's will only process 4 threads at a time and meanwhile the i7 is capable of processing 8 threads at a time.   Because the games are programmed to only run 4 threads through the processor at a given time it doesn't benefit them to have a 8 threaded processor.  Otherwise the i7's would be so much better for gaming because its capable of processing twice the threads at a time.

    But how the i7 is handled it isn't crippled by the 8 threads when it really should because applications are only suppose to be using 4 of the threads at a given time.   Windows somehow runs the threads through all 8 of the cores.  But it isn't very effecient which is why its better to turn off hyperthreading on the i7's for gamers.

    Otherwise having a 100 core/ 100 thread processor would run your games 100x and the op would actually be right because his 8 core 16 thread processor would be faster but it doesn't because the games are only going to process 4 of them at a time.
    You sir, are how fake news sites prosper.
  • MalaboogaMalabooga Member UncommonPosts: 2,977
    edited January 2017
  • RidelynnRidelynn Member EpicPosts: 7,383
    All I can say on this, if Vulkan/DX12 are the bottleneck on today's PCs and the reason 1.8Ghz consoles can perform as well as 4.2Ghz machines, how come the benchmarks going from OGL / DX11 -> DX12 / Vulkan don't show that?

    Some games show a some increase, most games perform roughly equal or slightly worse, depending on the hardware used in testing. Apart from that, how many DX12/Vulkan releases are there out today? A handful of the AAAs, but still very much in the minority and it's taking it's time picking up steam.

    Can DX12/Vulkan help? Yes, in certain cases, on certain hardware. Is it the panacea of PC gaming that will unleash a new era of performance? I don't think so.

    But that certainly was the hype that was used: It's closer to the metal, this is why consoles are able to do more with less, multithread aware renderers, etc.
  • botrytisbotrytis Member RarePosts: 3,363
    edited January 2017
    Ridelynn said:
    All I can say on this, if Vulkan/DX12 are the bottleneck on today's PCs and the reason 1.8Ghz consoles can perform as well as 4.2Ghz machines, how come the benchmarks going from OGL / DX11 -> DX12 / Vulkan don't show that?

    Some games show a some increase, most games perform roughly equal or slightly worse, depending on the hardware used in testing. Apart from that, how many DX12/Vulkan releases are there out today? A handful of the AAAs, but still very much in the minority and it's taking it's time picking up steam.

    Can DX12/Vulkan help? Yes, in certain cases, on certain hardware. Is it the panacea of PC gaming that will unleash a new era of performance? I don't think so.

    But that certainly was the hype that was used: It's closer to the metal, this is why consoles are able to do more with less, multithread aware renderers, etc.

    Many of the games have synthetic benchmarks that are created with them. Also, they do not take into account the connection speed of many players, as reviewers, etc. probably have the top connections compared to players. That can have a huge affect.


  • OzmodanOzmodan Member EpicPosts: 9,726
    Ridelynn said:
    Interesting tidbit. Linux (and a lot of other Unix OSes) measure CPU load by Load Average, which doesn't necessarily mean the CPU is busy or not, but it's the number of threads waiting for processing time in the queue. (it also includes other resources than CPU, but CPU is typically the primary driver)

    A value <1 means no thread is ever waiting to get CPU time. A value =1 means that your computational load exactly equals the computational power you have available. >1 means you have threads backed up waiting to execute.
    The vast majority of cpu threads are waiting for data, not a cpu core.  The data bus is still the biggest obstacle to any fast computing.

  • filmoretfilmoret Member EpicPosts: 4,906
    Ozmodan said:
    Ridelynn said:
    Interesting tidbit. Linux (and a lot of other Unix OSes) measure CPU load by Load Average, which doesn't necessarily mean the CPU is busy or not, but it's the number of threads waiting for processing time in the queue. (it also includes other resources than CPU, but CPU is typically the primary driver)

    A value <1 means no thread is ever waiting to get CPU time. A value =1 means that your computational load exactly equals the computational power you have available. >1 means you have threads backed up waiting to execute.
    The vast majority of cpu threads are waiting for data, not a cpu core.  The data bus is still the biggest obstacle to any fast computing.

    Thats some funny stuff right there.   Please continue.
    Are you onto something or just on something?
  • ThebeastttThebeasttt Member RarePosts: 1,130
    AAA games still don't properly utilize multicore processors, let alone games on the medium/low end. In many cases a good intel dual core will actually outperform an AMD 8 core simply because 6 of those cores are either barely used(1-5%) or not used entirely. Run some of your favorite games and check the performance monitor if you're skeptical. Switching from a similar Intel to AMD CPU will almost always be a noticeable loss in performance.
  • MalaboogaMalabooga Member UncommonPosts: 2,977
    edited January 2017
    Nonsense, i rum my favorite games and they all work much better on my 100$ CPU than on Intels 100$ CPU lol. In fact i used to have i5 3570k and i didnt see much if any loss in performance when switching to FX8300 (i sold 3570k+mobo and bought new 8300+mobo+500GB SSD for that money so oyu can stop preaching)

    But then again im not married to 5+ years old games and even if i take one of those games i aint gonna claim "you should buy 2.5-3.5x more expencive intel because 5% of games you play will work better" and ignore other 95% that will work exactly the same lol

    Even reviewers who tested FX83xx (usually 8350 but its irrelevant as 8300=8350) are always surprised how well it works because of "internetz" tehy thought it will be a disaster but it turns out how baseless "internetz" BS claims from 5+ years ago are.
  • RidelynnRidelynn Member EpicPosts: 7,383
    filmoret said:
    Ozmodan said:
    Ridelynn said:
    Interesting tidbit. Linux (and a lot of other Unix OSes) measure CPU load by Load Average, which doesn't necessarily mean the CPU is busy or not, but it's the number of threads waiting for processing time in the queue. (it also includes other resources than CPU, but CPU is typically the primary driver)

    A value <1 means no thread is ever waiting to get CPU time. A value =1 means that your computational load exactly equals the computational power you have available. >1 means you have threads backed up waiting to execute.
    The vast majority of cpu threads are waiting for data, not a cpu core.  The data bus is still the biggest obstacle to any fast computing.

    Thats some funny stuff right there.   Please continue.
    It happens to be true, so keep laughing.

    It typically takes hundreds of threads before you have enough actual computational work to really load down a CPU.
  • filmoretfilmoret Member EpicPosts: 4,906
    Ridelynn said:
    filmoret said:
    Ozmodan said:
    Ridelynn said:
    Interesting tidbit. Linux (and a lot of other Unix OSes) measure CPU load by Load Average, which doesn't necessarily mean the CPU is busy or not, but it's the number of threads waiting for processing time in the queue. (it also includes other resources than CPU, but CPU is typically the primary driver)

    A value <1 means no thread is ever waiting to get CPU time. A value =1 means that your computational load exactly equals the computational power you have available. >1 means you have threads backed up waiting to execute.
    The vast majority of cpu threads are waiting for data, not a cpu core.  The data bus is still the biggest obstacle to any fast computing.

    Thats some funny stuff right there.   Please continue.
    It happens to be true, so keep laughing.

    It typically takes hundreds of threads before you have enough actual computational work to really load down a CPU.
    Maybe you should read up on data bus programming,  Thread optimization of lateral outreaches.  And the core count vs thread count capabilities of cpu's.  Will clear some things up for you.
    Are you onto something or just on something?
  • RidelynnRidelynn Member EpicPosts: 7,383
    Ridelynn said:
    filmoret said:
    Ozmodan said:
    Ridelynn said:
    Interesting tidbit. Linux (and a lot of other Unix OSes) measure CPU load by Load Average, which doesn't necessarily mean the CPU is busy or not, but it's the number of threads waiting for processing time in the queue. (it also includes other resources than CPU, but CPU is typically the primary driver)

    A value <1 means no thread is ever waiting to get CPU time. A value =1 means that your computational load exactly equals the computational power you have available. >1 means you have threads backed up waiting to execute.
    The vast majority of cpu threads are waiting for data, not a cpu core.  The data bus is still the biggest obstacle to any fast computing.

    Thats some funny stuff right there.   Please continue.
    It happens to be true, so keep laughing.

    It typically takes hundreds of threads before you have enough actual computational work to really load down a CPU.
    I can write a program with a few lines that will load all cores of any CPU to 100% instantly. And it will only use as many threads as there are cores.
    Sure, would you also call that a typical use case?

    You can bog down the world's fastest computer just by repeating 1+1 in a loop, but that's hardly useful.
  • RidelynnRidelynn Member EpicPosts: 7,383
    filmoret said:
    Ridelynn said:
    filmoret said:
    Ozmodan said:
    Ridelynn said:
    Interesting tidbit. Linux (and a lot of other Unix OSes) measure CPU load by Load Average, which doesn't necessarily mean the CPU is busy or not, but it's the number of threads waiting for processing time in the queue. (it also includes other resources than CPU, but CPU is typically the primary driver)

    A value <1 means no thread is ever waiting to get CPU time. A value =1 means that your computational load exactly equals the computational power you have available. >1 means you have threads backed up waiting to execute.
    The vast majority of cpu threads are waiting for data, not a cpu core.  The data bus is still the biggest obstacle to any fast computing.

    Thats some funny stuff right there.   Please continue.
    It happens to be true, so keep laughing.

    It typically takes hundreds of threads before you have enough actual computational work to really load down a CPU.
    Maybe you should read up on data bus programming,  Thread optimization of lateral outreaches.  And the core count vs thread count capabilities of cpu's.  Will clear some things up for you.
    Maybe I should, but it would be much more informative if you would care to enlighten all of us
  • RidelynnRidelynn Member EpicPosts: 7,383
    edited January 2017
    I'm not saying you ~need~ hundreds of threads.

    Just that there usually is. You almost never get those few very intensive threads without the several dozen behind it, and if you were to open task manager and just count the number of threads from all the background tasks and such that are supporting you running your video encode or (why on earth are you) CPU render. there's going to be a lot more than just your heavily loaded thread running.

    My fault for poor communication skills.

  • RidelynnRidelynn Member EpicPosts: 7,383
    Ridelynn said:

    My fault for poor communication skills.
    Also my fault for nitpicking ;)
    More to the original point, I was trying to illustrate that you don't have to have one thread per core, and very commonly do you have a lot more than one thread per core. Even when you have a handful of threads that are very computationally heavy, the OS is still going to swap those out for all those other threads that are back there just to make sure everything gets it's chance to run.

    But maybe I'm wrong. It wouldn't be the first time I've proven myself to be the village idiot.
  • filmoretfilmoret Member EpicPosts: 4,906
    The question that seems to be eluding is.   Have video games started using more then 2-4 threads.  I mean actually using them and not just some I/O thread which really doesn't even count as a thread at all.
    Are you onto something or just on something?
  • filmoretfilmoret Member EpicPosts: 4,906
    So looking at Archeage you are able to turn on multi thread support in the options.  Without it running we assume its programmed for dual core because its just silly to think single core.  It has 50 threads open and only using 15% of my cpu.  On single/dual core mode that is what archeage runs with.  When I switch to multithread support its saying I need a processor with at least 4 cores and the count goes up to 57 threads with 27% cpu usage.  
    Are you onto something or just on something?
  • QuizzicalQuizzical Member LegendaryPosts: 25,499
    Ridelynn said:
    Ridelynn said:
    filmoret said:
    Ozmodan said:
    Ridelynn said:
    Interesting tidbit. Linux (and a lot of other Unix OSes) measure CPU load by Load Average, which doesn't necessarily mean the CPU is busy or not, but it's the number of threads waiting for processing time in the queue. (it also includes other resources than CPU, but CPU is typically the primary driver)

    A value <1 means no thread is ever waiting to get CPU time. A value =1 means that your computational load exactly equals the computational power you have available. >1 means you have threads backed up waiting to execute.
    The vast majority of cpu threads are waiting for data, not a cpu core.  The data bus is still the biggest obstacle to any fast computing.

    Thats some funny stuff right there.   Please continue.
    It happens to be true, so keep laughing.

    It typically takes hundreds of threads before you have enough actual computational work to really load down a CPU.
    I can write a program with a few lines that will load all cores of any CPU to 100% instantly. And it will only use as many threads as there are cores.
    Sure, would you also call that a typical use case?

    You can bog down the world's fastest computer just by repeating 1+1 in a loop, but that's hardly useful.
    Among programs that genuinely need a lot of CPU performance, that can be pretty typical.  Just because you can run a hundred programs that barely need the CPU at once doesn't mean that you can run two programs that need a ton of CPU performance at once without at least one of them being throttled back severely for lack of available CPU cores.

    If you mean literally no other threads on the machine at all besides the one program using all the CPU cores with only as many threads as cores, then no that's not typical.  But one program heavily using all of the cores with as many threads as cores (or two threads per core with hyperthreading) can be pretty typical of HPC code.
  • filmoretfilmoret Member EpicPosts: 4,906
    botrytis said:
    filmoret said:
    Games aren't using 8 threads.  Windows is doing it.

    Nope. The game actually HAS to be programmed to be threaded or not. Windows just manages the threads.
    And here is where either people are not understanding or just not being very clear.  You take a game that runs on a single/dual core processor and it has multiple threads open.  Yet it will not run any faster on a 8 core processor because its only going to use 2 cores no matter what you do about it.  The first game in the video shows a pure example of that because no matter what processor it was using the fps did not change.  So even though the game is threaded its not threaded for multiple cores.

    The game must be coded so the threads can take advantage of more then 2 cores.  It can have 30 threads but it will not take advantage of 8 cores unless it has been programmed that way.  It must be programmed so that the threads can be used and processed together.  Which is why some games will not run unless they have 4 cores.  Because it was not coded to run properly when the processor can only run 2 threads at a time.  Soon I would gather that some games will require 8 core processors in order to run because the 4 core processors will not be able to run 8 threads at once.  We have not seen that yet.

    Its a whole lot more complicated then the software simply making threads.  It must make them in a way that they work together and when a processor is capable of handling 16 at one time then it can be taken advantage of.   Now the reason the i7's are running simple tasks on all 8 cores is because of how windows is handling scheduling.  Its still a single core thread but it gets bounced around and scheduled on all cores.  
    Are you onto something or just on something?
Sign In or Register to comment.