The Desktop CPU Isn’t Dead, It Just Needs A Swift Kick In The Butt

My current system is an Athlon X3 435 (2.9GHz) that I built something like seven years ago. On PassMark, it scores a 989 when single-threaded. I paid, IIRC, about $100 for the CPU/Mobo combo from Microcenter. Today, I can get a FX 4350 black edition with a motherboard for about the same price. Single core performance? About 1500 on PassMark. That's a measly 50% improvement in single-core performance in seven freakin' years. An i3-6100 (slightly more expensive) gets about 2100.

Compare this to the doubling in performance every 18 months that we saw in the early 2000's. TBH, it's a bit disheartening.
 
If more people had CAT6 in every room, I think a single powerful desktop that integrates with their smarthome, and just use "dummy" devices everywhere else linked to it would make sense for having a powerful processor. That way you don't need multiple consoles or cable boxes or home camera hubs and so forth, just have one powerful desktop that is running the TV in one room, the music server for another, transcoding for tablets, while streaming a video game to the living room.

But otherwise, who needs that much processing power?

What are they using it for?


There it is " its enough for me so it mus be enough for everyone"

Brute force compression optimizing
Scientific research
Data pattern recognition.
All things that can take much more CPU power.
 
  • Like
Reactions: DPI
like this
There it is " its enough for me so it mus be enough for everyone"

Brute force compression optimizing
Scientific research
Data pattern recognition.
All things that can take much more CPU power.

Very small number of people need that so will it benefit the industry as a whole? I think the point of the article is the stale nature of the industry in general.
 
There it is " its enough for me so it mus be enough for everyone"
Uhm... no. Look at my rig, its well above average (most people don't need three 290x's in their computer). I wasn't talking about me, I was talking about the market... the average person, because that's what drives CPU development and costs.
 
There are just a few more cranks left on the ratchet for Moore's Law with current tech. There is nothing on the immediate horizon ready for mass production that will get around it.
 
More cores isn't the issue. The simple fact is the rest of the system needs to feed those cores... which they can't really. Faster interfaces and processor interconnects are what is needed. Adding more cores simply degrades cache performance... adding more cores doesn't really make things faster even if the software is heavily multi threaded. If you are manufacturing something, putting up a building... creating pretty much anything, there is a point where throwing more engineers at the issue doesn't solve it any faster.

What they need to do is improve cache/prefetch performance and system memory architectures. If what we have been reading so far about Zen is true its possible AMD has started making steps in the direction... perhaps to the point that Intel will wake up and start doing the same. Of course if Intel releases anything in the next year or two along those lines it means they have been sitting on it for possibly years due to lack of competition... which would simply reinforce my decision to try and not give them any money if I can help it. :)
 
There are just a few more cranks left on the ratchet for Moore's Law with current tech. There is nothing on the immediate horizon ready for mass production that will get around it.

I don't think the law is going to really break down for sometime yet. Yes Intel has been dragging heals with the lack of competition. Still there is a lot of room to find more speed without simply shrinking dies. Branch prediction and compensation for prediction errors are some of the areas where they can still find large gains with the right bit of new design. Power9 will be hitting the server market this year... and Intel may well borrow a few new tricks if they start eating into their server market. (I know I said more cores aren't always the answer a min ago then point out a 24 core ibm chip lol) Still the point is the chip uses a L4 cache and some rather novel interconnects which is where most of the gains will be found imo.

Its possible that Intel doesn't much care if AMD starts to rival them again in the desktop ring... they may be ok with AMD finding 20-30% of the shrinking desktop market. I have a feeling they are much more worried about IBMs Power9 and some of their big wins with costumers like Google.
 
With the new Intel CEO's having his head so far up his ass, not sure whether this will happen.
 
Excatly. The whole "lazy devs" argument is only made by people who do the have a freaking clue about software development.

There there are some kinds of tasks (maybe even most kinds) that can NEVER be properly multithreaded, because how the data depends on order of things.

Games engines are notorious for this. Apart from the rendering portion, which threads pretty well, if you try to multithreaded them you will just have thread locking and all kinds of other problems slowing things down rather than speeding it up.

Most games "cheat" and split the game into multiple threads (one for game engine logic, one for physics, one for sound, etc. etc.) and do get the game to utilize multiple cores, but this isn't even true multithreading, it's just many separate single threaded parts.

The main game engine is usually still the beefiest, and least able to be threaded, which is why you usually have one core maxxed and some smaller stuff going on on the other cores.

I guess, long story short, in 2017, if something isn't threaded, more likely than not, it's because it CANT be threaded. It's against the computer science equivalents of the laws of physics. NOT because inadequate time and effort has been spent on the problem.



I don't doubt what you are saying, but there is a counter to this argument. Most gaming production companies that put out AAA titles tend to have strict deadlines. When up against a deadline, development doesn't innovate, but instead keeps going back to whatever worked on the last title they worked on. Therefore, you end up with a bunch of cookie cutter games and cookie cutter solutions that no longer innovate, which lead to the "lazy developer" label sticking - whether its the fault of the production company giving tight deadlines which stifle creativity, a truly lazy developer who may have time to play but just does what he's always done just to get the work done, or both, the sheer lack of optimization in games has allowed the lazy developer stigma to perpetuate.

The 2 core things which drive that are gamers who remember the past, where games were more innovative and optimized, and were always pushing the envelope of what your hardware could do (but there were far fewer mega-publishers back then to order people around), and then today, in a throwback to those old-school days, you have DOOM, which was given time in development, is optimized out the wazoo, and actually makes efficient use of hardware on your GPUs that I'd argue 99% of games out there nowadays don't even bother with, or at best, do a half-ass job at utilizing.

Thanks to ID, now that some people can see what even some of their older cards are truly capable of, the lazy dev stigma had only gotten worse, and it may have nothing to do with computer cores factually - however, perception is reality for most people, meaning that regardless of the truth, if enough people believe the lie, the lie may as well be true because the majority will treat it as truth.

If adding cores will not improve game performance, then the only way to really change the perception is for major game production companies to set aside time for better optimizations like Id did with DOOM, and over time, such the current perceptions will eventually deteriorate...
 
I don't doubt what you are saying, but there is a counter to this argument. Most gaming production companies that put out AAA titles tend to have strict deadlines. When up against a deadline, development doesn't innovate, but instead keeps going back to whatever worked on the last title they worked on. Therefore, you end up with a bunch of cookie cutter games and cookie cutter solutions that no longer innovate, which lead to the "lazy developer" label sticking - whether its the fault of the production company giving tight deadlines which stifle creativity, a truly lazy developer who may have time to play but just does what he's always done just to get the work done, or both, the sheer lack of optimization in games has allowed the lazy developer stigma to perpetuate.

The 2 core things which drive that are gamers who remember the past, where games were more innovative and optimized, and were always pushing the envelope of what your hardware could do (but there were far fewer mega-publishers back then to order people around), and then today, in a throwback to those old-school days, you have DOOM, which was given time in development, is optimized out the wazoo, and actually makes efficient use of hardware on your GPUs that I'd argue 99% of games out there nowadays don't even bother with, or at best, do a half-ass job at utilizing.

Thanks to ID, now that some people can see what even some of their older cards are truly capable of, the lazy dev stigma had only gotten worse, and it may have nothing to do with computer cores factually - however, perception is reality for most people, meaning that regardless of the truth, if enough people believe the lie, the lie may as well be true because the majority will treat it as truth.

If adding cores will not improve game performance, then the only way to really change the perception is for major game production companies to set aside time for better optimizations like Id did with DOOM, and over time, such the current perceptions will eventually deteriorate...

There is a simple truth when it comes to game design. Most game companies don't have engine programmers. They are using engines like Cry/Unreal/source ect. Most game development comes down to art guys and programmers who are more on par with web programmers then low level assembly language number crunching super geniuses.

The point Zarathustra made is very valid. You can't multi thread everything... and games are one type of software where things really can't be split all that well. Graphics sure you can split frames farm out work per pixel or frame.. but the GPU does the majority of that work. Sound can be divided somewhat with channels being split over cores... but that doesn't really find you much performance, and old things built into the CPUS like MMX do a good job of that already. Physics can only be multi threaded a small amount and see any gains for the reasons Zarathustra mentioned.

The bottom line is good game developers don't really = coders. Its why game engines have become their own business. There simply isn't that many people in the world with the skill to create modern game engines. Most of the sloppy games we have seen the last few years are not due to bad optimization as much as its simply bad testing. Memory leaks in big AAA games and such isn't because there is an issue with the Unreal or Cry engine they are using its because someone hasn't caught a variable somewhere that is loading more then it should... or is loading textures 10x larger then required because some art guy loaded it to paint a small part of a scene that could have been done with a smaller version of the asset. Those types of bone headed things don't get fixed by threading the engine more. :)

ID software is an exception and always has been. JC makes that company special because clearly he isn't an average programmer. I would counter that their games are pretty one note and boring. Its like saying Jerry Bruckheimer has shown the industry how to make things splod right on screen... that may well be but his movies still suck. lol :)
 
Last edited:
More cores wont do anything for the desktop. The issue with the desktop is its a desktop. Its about equal to try holding on to land line phones.

The consumers want mobile, they want small, they want AIO.
 
More cores would be a great boon for single player games with many small threads for the AI of each entity.. But good AI programmers are even rarer than good engine programmers.
 
More cores wont do anything for the desktop. The issue with the desktop is its a desktop. Its about equal to try holding on to land line phones.

The consumers want mobile, they want small, they want AIO.

This part of the reason why Desktop hasn't moved much lately. And part of it is the argument that, for most people (and that's what drives a market), the desktop is "fast enough". And part of that argument is physical - the CPUs we have right now are pushing the boundaries of the technology they are on. Sure, you can pack more cores onto a die, but unless you want to start stepping up into some serious form factor and power delivery changes, your still capped by an overall TDP of what you can place safely on an ATX form factor, so sure you can have 24+ x86 cores, but you aren't clocking all 24+ cores at 4Ghz on today's process nodes, and current Xeons reflect that.

So you have "fast enough" CPUs now, making them faster doesn't make the average computer any faster - instead the focus has been on other areas: power consumption, size, overall efficiency, integrated graphics. Anything that requires a lot of CPU horsepower has moved off the desktop and back onto servers (the "Cloud", or whatever the hell you want to call it today). The CPU in a current computer is not the bottleneck for most people.

The mobile CPUs (ARM) have nearly caught up to x86, because that's where the market has moved to. It will eventually plateau as well, I think, sooner than later.

I think it will take a confluence of two events to make Desktops great again: we need software that runs locally that actually requires a larger amount of brute force than is currently available (such that people feel the need to upgrade again), and some process or technology breakthrough that allows CPUs to achieve this in roughly the same order of magnitude of pricing as today's systems are.
 
If more people had CAT6 in every room, I think a single powerful desktop that integrates with their smarthome, and just use "dummy" devices everywhere else linked to it would make sense for having a powerful processor. That way you don't need multiple consoles or cable boxes or home camera hubs and so forth, just have one powerful desktop that is running the TV in one room, the music server for another, transcoding for tablets, while streaming a video game to the living room.

But otherwise, who needs that much processing power?

What are they using it for?

Yes, this is my thought as well. I mentioned it a few times in the past.
A bad trend I'm seeing is trying to forcibly limit connectivity between various devices.

With today's 16-32 core processors, 64 gigs of ram, multiple GPUs, a single powerful computer placed somewhere out of harm's way could easily serve a whole family.
We have virtualization that lets two people use the same GPU, we have wireless displays, remote desktop software.

Like you said, we just need more dumb clients to access all that power and open connectivity protocols that allow various devices with little latency.

The computing power will never be enough. We need that much processing power, we just haven't realized it yet.
Real time ray-tracing, increasingly complex and effective compression algorithms, cryptography to keep our stuff private, various AI that are popping up that need a lot of ooomph as they scale upwards.
The need is there, the hardware is developing, the software is lagging a bit but nevertheless we finally take 64 bit computing for granted, multithreading is utilized, GPU accelerated desktops and graphics software is here. Things are good. Only greed can destroy this.
 
I wouldn't mind faster CPU's, but more cores is not the solution.

We've already hit a wall in multithreading. Most of what is able to be multithreaded already has been. More cores is never going to be the solution unless you do rendering, encoding or scientific computation type of work.

Increases in per core performance is what is important.

There is no point in just adding cores that 99.999% of people will never use.

I agree, I think that we will not see any true advancements until we switch off of silicon. Performance wise weve pretty much hit the max on what silicon can do. I know that all the tech companies say that they have plans past 7nm for silicon but unless EUV becomes ready soon my guess that they will be revising theirs plans. They all have been hit with major issues in shrinking over the last gen or 2 and its not going to be getting any easier or cheaper. The switch to a gallium based material i think will happen very early in the 2020's. But that is also wishful thinking
 
More cores would be a great boon for single player games with many small threads for the AI of each entity.. But good AI programmers are even rarer than good engine programmers.

I dont think so. You can only have so much AI and it needs to wait for the main thread(s). I wouldn't be surprised if the optimal gaming CPU in 50 years only had 6 or 8 cores. Assuming we didn't move to quantum computing or something. Another hotfix seems to be the multiplayer network part. But again, its not solving any issues.
 
I agree, I think that we will not see any true advancements until we switch off of silicon. Performance wise weve pretty much hit the max on what silicon can do. I know that all the tech companies say that they have plans past 7nm for silicon but unless EUV becomes ready soon my guess that they will be revising theirs plans. They all have been hit with major issues in shrinking over the last gen or 2 and its not going to be getting any easier or cheaper. The switch to a gallium based material i think will happen very early in the 2020's. But that is also wishful thinking

TSMC 7nm for example is really more like 13nm. And we already talk about billion $ designs to get a good transistor utilization. Every node kicks off a large amount of companies that no longer can afford it.
 
ID software is an exception and always has been. JC makes that company special because clearly he isn't an average programmer. I would counter that their games are pretty one note and boring. Its like saying Jerry Bruckheimer has shown the industry how to make things splod right on screen... that may well be but his movies still suck. lol :)

great post. I just thought it's worth to say JS hasn't been with id for a few years now. Succeeded by crytek's mastermind. Not to say that current id technology isn't carmack's baby, though.
 
  • Like
Reactions: ChadD
like this
I don't doubt what you are saying, but there is a counter to this argument. Most gaming production companies that put out AAA titles tend to have strict deadlines. When up against a deadline, development doesn't innovate, but instead keeps going back to whatever worked on the last title they worked on. Therefore, you end up with a bunch of cookie cutter games and cookie cutter solutions that no longer innovate, which lead to the "lazy developer" label sticking - whether its the fault of the production company giving tight deadlines which stifle creativity, a truly lazy developer who may have time to play but just does what he's always done just to get the work done, or both, the sheer lack of optimization in games has allowed the lazy developer stigma to perpetuate.

It's not so much about lazy developers as it is cheap consumers. The type of optimizations you're talking about are expensive, and who wants to pay for it?

The other issue is that game devs aren't exactly the cream of the crop out there, simply because their pay is terrible compared to what you can get at a Big 4 or in fintech or whatever.
 
  • Like
Reactions: ChadD
like this
It's not so much about lazy developers as it is cheap consumers. The type of optimizations you're talking about are expensive, and who wants to pay for it?

The other issue is that game devs aren't exactly the cream of the crop out there, simply because their pay is terrible compared to what you can get at a Big 4 or in fintech or whatever.

Very good point. Gamers always seem to project a mystic on game developers and their craft. The truth is they are one of the lowest paid coding sectors to work in. Topping it off they almost always work the longest hours and have almost zero job security.
 
Poor comparison though.

Netburst failed not because it was a single core design (they could have easily added more cores) but because the long execution branch resulted in a ton of branch prediction errors, dropping the effective IPC into the toilet, to the point where even the relatively high clocks it achieved were unable to overcome the deficit.

Wouldn't it be more correct to say that "Long pipelines that encounter a prediction error resulted in very large penalty as the pipeline had to be reloaded for said missed prediction."? I don't think there were necessarily a lot more branch predictions with a long pipe versus a shorter pipe, just that the micro-ops for a given instruction were simpler so they could return quicker. The number of linear instructions in the pipe at any one given time really didn't increase that much.

For you CPU amateurs think of it this way...an assembly instruction can be made up of a series of micro-ops.

CPU A
Instructions average 10 micro-ops long (on average). Each micro-op takes 1/10th clock tick. The CPU pipe is 20 deep (Not really but I want to keep the math simple)

CPU B
Instructions average 20 micro-ops long (on average). Each micro-op takes 1/10th clock tick. The CPU pipe is 60 deep (Again, not really but I want to keep the math simple)

netburst tried to increase efficiency by raising the clock rate so more micro-ops can be processed per second. But to do so, they have to increase the number of micro-ops per instruction.

So
CPU A runs at 1 GHz.... So effectively we get 1,000,000,000 ops/sec, or an IPC of 1.
CPU B running at 1 GHz... So effecitvely we get 500,000,000 ops/sec, or an IPC of .5

HOWEVER CPU B can run much faster...in fact it can run at 3 GHz. So CPU B is actually running 3x's faster, but with reduced efficiency of 1,500,000 ops/second but still have an IPC of .5

The problem comes with misprediction where we have to reload the entire branch.

What is misprediction....

X = X>50?SomeSub():0;

Let's say the CPU doesn't know X yet. So it takes a guess and says, yes, I think X will be > 50 So I will start executing the SomeSub() code.

Well when the CPU guesses wrong, that code (SomeSub() ) is already in the pipe, and it has to be wiped out and reloaded with the proper code. This waste time. And with long pipes (CPU B with 60 deep pipe, you have to reload 60 microops...which takes 6 tock clicks just to get back to were. With CPU A, it would take at most 2 clock ticks. Hence with mis predictions, CPU A is 3 times quicker at recovery.
 
Wouldn't it be more correct to say that "Long pipelines that encounter a prediction error resulted in very large penalty as the pipeline had to be reloaded for said missed prediction."? I don't think there were necessarily a lot more branch predictions with a long pipe versus a shorter pipe, just that the micro-ops for a given instruction were simpler so they could return quicker. The number of linear instructions in the pipe at any one given time really didn't increase that much.

For you CPU amateurs think of it this way...an assembly instruction can be made up of a series of micro-ops.

CPU A
Instructions average 10 micro-ops long (on average). Each micro-op takes 1/10th clock tick. The CPU pipe is 20 deep (Not really but I want to keep the math simple)

CPU B
Instructions average 20 micro-ops long (on average). Each micro-op takes 1/10th clock tick. The CPU pipe is 60 deep (Again, not really but I want to keep the math simple)

netburst tried to increase efficiency by raising the clock rate so more micro-ops can be processed per second. But to do so, they have to increase the number of micro-ops per instruction.

So
CPU A runs at 1 GHz.... So effectively we get 1,000,000,000 ops/sec, or an IPC of 1.
CPU B running at 1 GHz... So effecitvely we get 500,000,000 ops/sec, or an IPC of .5

HOWEVER CPU B can run much faster...in fact it can run at 3 GHz. So CPU B is actually running 3x's faster, but with reduced efficiency of 1,500,000 ops/second but still have an IPC of .5

The problem comes with misprediction where we have to reload the entire branch.

What is misprediction....

X = X>50?SomeSub():0;

Let's say the CPU doesn't know X yet. So it takes a guess and says, yes, I think X will be > 50 So I will start executing the SomeSub() code.

Well when the CPU guesses wrong, that code (SomeSub() ) is already in the pipe, and it has to be wiped out and reloaded with the proper code. This waste time. And with long pipes (CPU B with 60 deep pipe, you have to reload 60 microops...which takes 6 tock clicks just to get back to were. With CPU A, it would take at most 2 clock ticks. Hence with mis predictions, CPU A is 3 times quicker at recovery.

That was really informative. Easy way of understanding it more. As someone who knows very little on CPU architecture, I thank you.
 
I think gamers are asking for something they in nature cant get due to serial code amounts that cant be replaced.

P4/Construction cores, frequency race because multithreading is a short term path.
TSX instructions, because even in well multithreaded applications you get poor scaling due to locks.
Mitosis and other similar attempts to brute force faster serial code with speculative computing.

You could add a billion cores to every single PC in the world. And it wouldn't change anything for gaming software and most other software.
 
Hence with mis predictions, CPU A is 3 times quicker at recovery.

Good post.

Branch prediction is a good part of the reason why I find myself excited about zen. (I refuse to put the stupid Ry in the front)

AMD at last has included an Op cache. (A cache which stores commonly used / reused micro-ops) Intel has been using Op cache for some time... AMD required one to really catch up.

They have improved branch prediction and improved the FPU and include AVX2 support again they are playing catch up but that is what we want right. :) It allows for faster context switching which is a big deal.

They also greatly increased the cache speeds almost doubling according to their papers the latency and bandwidth on the low level caches.

The marketing spin calling their new prediction engine "Neural Net Prediction"... I don't know sounds like marketing spin. Waiting for benchmarks myself... if ship chips start putting up some really nice numbers, it will likely be these lowest level FPU changes responsible.
 
I think gamers are asking for something they in nature cant get due to serial code amounts that cant be replaced.

P4/Construction cores, frequency race because multithreading is a short term path.
TSX instructions, because even in well multithreaded applications you get poor scaling due to locks.
Mitosis and other similar attempts to brute force faster serial code with speculative computing.

You could add a billion cores to every single PC in the world. And it wouldn't change anything for gaming software and most other software.

But, it needs to going forward and that is the key. Yes, it will take a while but, I cannot imagine single core being the most important in 2030 all on it's own. The fact that some coding does not do well in multi threading means some things need to be rebuilt from the ground up. Multi threading and multiple cores are critically important going forward, it seems clear that we will never really reach 10 GHz processors in our desktops, or at least any time soon.
 
But, it needs to going forward and that is the key. Yes, it will take a while but, I cannot imagine single core being the most important in 2030 all on it's own. The fact that some coding does not do well in multi threading means some things need to be rebuilt from the ground up. Multi threading and multiple cores are critically important going forward, it seems clear that we will never really reach 10 GHz processors in our desktops, or at least any time soon.

But that is where you are wrong. Logic that depends on previous states will never multithread well, no matter what anyone does, even if you change the technology or rewrite everything from the ground up.

Only completely independent repetitive calculations benefit well from multithreading, and these are unfortunately much more rare than you'd think, and mostly limited to rendering/encoding/scientific type workloads.

It's a universal constant. If you need to know something before a calculation can start, you can't start that calculation until that information is available. It doesn't matter what you do.

I mean, you might be able to use a massive number of cores for a form of branch prediction and calculate all possible outcomes, and just discard the ones that are wrong, but only if you know that the information you depend on is of a finite small number of possibilities, and even then, this is likely nowhere near efficient enough to use overwhelmingly.

Unfortunately a rather large proportion of a code does have dependencies of previous calculations, and as such will simply never multithread well, and thus single core performance will be king.

Now, as for what we will be using in 2030? Who knows. Will we even be using silicon chips anymore? Maybe we will have moved on to Gallium based chips or quantum computing?

I wouldn't count on more effective multithreading then, or ever though. What we have now - with some notable exceptions of course - is about as good as it will ever get. The problem is logic flow, not code design or hardware design.
 
But, it needs to going forward and that is the key. Yes, it will take a while but, I cannot imagine single core being the most important in 2030 all on it's own. The fact that some coding does not do well in multi threading means some things need to be rebuilt from the ground up. Multi threading and multiple cores are critically important going forward, it seems clear that we will never really reach 10 GHz processors in our desktops, or at least any time soon.

Some things will never ever ever ever be able to be super multi threaded.

Processors are great at dealing with lots of math with missing variables. However the more you split work up the more ERRORS the prediction engine is going to make due to lacking information. That doesn't mean things will Error out it means those cores are going to be doing a lot of math 2-3 times due to lack of variable information. For somethings you simply can't get ahead of yourself... and to split most code up the engine sort of has to know how to best split it. Yes some software is easy to multi thread and things that are very predictable work best. Things like photo / video editors respond well to multi threading as the math of decoding and encoding can be predicted and easily split up and put back together with out incurring to many prediction errors.

Other software gets much dicier and when you start splitting it over 6-8 cores you start running into real cache issues. L3 caches on current chips are set 16 way associative... and if they where to really look at seriously making 12-16-24 core chips you have to increase the size and associative settings on the caches. Bottom line is for the majority of software anyone would be running on a desktop isn't going to find any speed from a few more cores. If the software was really trying to use it... with current branch prediction techniques it would be big fail the core would likely run into tons of cache misses and prediction failure rates to the point where it would almost for sure slow the software down not speed it up.

More cores CAN be faster for specific types of software... but you aren't likely to be running them at home. The handful of server chips out their with more cores, or massively-parallel chips like Intels Phi and IBMs power 9 use some pretty novel cache designs that aren't going to be cost effective for us to put into desktop pcs.
 
But that is where you are wrong. Logic that depends on previous states will never multithread well, no matter what anyone does, even if you change the technology or rewrite everything from the ground up.

Only completely independent repetitive calculations benefit well from multithreading, and these are unfortunately much more rare than you'd think, and mostly limited to rendering/encoding/scientific type workloads.

It's a universal constant. If you need to know something before a calculation can start, you can't start that calculation until that information is available. It doesn't matter what you do.

I mean, you might be able to use a massive number of cores for a form of branch prediction and calculate all possible outcomes, and just discard the ones that are wrong, but only if you know that the information you depend on is of a finite small number of possibilities, and even then, this is likely nowhere near efficient enough to use overwhelmingly.

Unfortunately a rather large proportion of a code does have dependencies of previous calculations, and as such will simply never multithread well, and thus single core performance will be king.

Now, as for what we will be using in 2030? Who knows. Will we even be using silicon chips anymore? Maybe we will have moved on to Gallium based chips or quantum computing?

I wouldn't count on more effective multithreading then, or ever though. What we have now - with some notable exceptions of course - is about as good as it will ever get. The problem is logic flow, not code design or hardware design.

I cannot say I agree at all anymore than I think the Linux, Mac OS or any version of Windows is really any different. (They all do the same thing which is why I have no issues sitting down in front of any of them and doing my work.) The problem you are running into is an unwillingness to think outside of the box and just go on past assumptions going forward.

Things were built on the single core in the past because that is all there was and that is what had to be used. Nothing easy about change and nothing fast about it either but, the thought that we will always be on single core is king stuff is incorrect at best, stuck in the past at worst. It will not change overnight but, it must change or we will hit a wall and never get beyond that. Multi threading and multi core are critical going forward, single core alone, not as much.
 
Most older PC's now just need a good SSD and maybe some memory to do most of what the non-gaming community needs to do.

I agree with a few above that the only thing causing people to upgrade other than (old spindle drives) are things dying.

I built my father's pc years ago. I7 920 6GB of ram 2TB hard drive and 2 6850's
I threw a 240GB Crucial SSD in and he's happy.
He still plays his racing games at 1080p
I was shocked when I realized what video cards he is still using, but hey it works for him.

That core system is 8yrs old. Yet the old 920's overclocked over 4Ghz and drove just fine. Unless the mainboard dies (or other parts), I doubt I'll hear much from him.

This isn't like the old days where the Pentium 60 was being compared to a new AMD K6-2 300mhz. You couldn't do nearly as much unless you upgraded. These leaps just don't exist. Also new Windows versions tend to run on systems that are a decade old now. I hear that is about to change. Maybe Microsoft and Intel are colluding lol.
 
But, it needs to going forward and that is the key. Yes, it will take a while but, I cannot imagine single core being the most important in 2030 all on it's own. The fact that some coding does not do well in multi threading means some things need to be rebuilt from the ground up. Multi threading and multiple cores are critically important going forward, it seems clear that we will never really reach 10 GHz processors in our desktops, or at least any time soon.

Multithreading isn't new. Its already several decades old. The only way to get more performance out of multithreading will be something silly like speculative threading where you use something like 800% more resources to get 5-10% actual performance.

There will always be serial code.

Even super duper parallel code shows scaling issues when you add something like 32 or 64 cores because there is a tiny bit of serial in it.
 
Last edited:
Upgrading to a new machine now is more about features than anything else. I'm planning on upgrading from my 3570K once I see how well Ryzen does. If it isn't competitive then I will get a 6850K. That may be the last upgrade I do for at least another 5 years unless some other feature comes out that I must have. Gone 4 years with my Z77 and it handles everything I really *need* to this day. Including the few games I'm playing.
 
I cannot say I agree at all anymore than I think the Linux, Mac OS or any version of Windows is really any different. (They all do the same thing which is why I have no issues sitting down in front of any of them and doing my work.) The problem you are running into is an unwillingness to think outside of the box and just go on past assumptions going forward.

Things were built on the single core in the past because that is all there was and that is what had to be used. Nothing easy about change and nothing fast about it either but, the thought that we will always be on single core is king stuff is incorrect at best, stuck in the past at worst. It will not change overnight but, it must change or we will hit a wall and never get beyond that. Multi threading and multi core are critical going forward, single core alone, not as much.

4-8 cores is likely the sweet spot for desktop computing. Any more then that and you simply can't predict how to split most logic up. Coding a piece of software sure you can make some guesses based on the type of work your software is doing and get the software to split work... sending simpler calculations to other processors and the like. Its not as simple as saying... take these 100,000 and divide them up equally 16 times... send out return and stitch. The issue is of that 100,000 calculations you have likely you only know the exact variables of the first handful... and by the time you get to the last handful you likely have ZERO information to process. You can't send 1 + 1 = x to CPU 0 and W + Y = U to CPU 16 which has no values stored in its cache and expect an actual number to come back. Sometimes the only way forward is through.... as good as branch prediction can be for many types of software, anything you ask a CPU to do is going to have a variable limit where things just get to lossy for a CPU to guess at without having branch prediction failures slowing the calculations more then its worth.

The only things we can really always speed up in theory with more cores would be media Encoding.... decoding already runs into other bottlenecks besides the processor. Encoding sure you could split it by frame if you want, still its faster instead to use prediction to do faster lossy renders of each frame which still requires at least some information from the preceding frame meaning multi threading is going to have its limits even for that. Even in the case of server farms that render Pixar movies.... the farm may have thousands of processors but the work load is still not spread all over the place, a handful of CPUs take care of one frame at a time.

Single core FPU speeds are going to be what determines a CPUs overall speed for a long time. Unless someone literally invents a new type of math that allows CPUs to solve things like X + Y = Z without knowing any of the actual values. If we are talking about a reasonable 12 core chip or something of that nature, there are still major cache issues that would need to be addressed all those cores need to all be able to talk to a cache... something like an added L4 cache and or a much more expensive L3 cache then desktop chips normally get would be required. Considering PCs are competing really with mobile CPUs already... I can't imagine any company thinking adding a bunch more expensive silicon in the form of expensive low latency cache would be a good way to make money.
 
Last edited:
Things were built on the single core in the past because that is all there was and that is what had to be used. Nothing easy about change and nothing fast about it either but, the thought that we will always be on single core is king stuff is incorrect at best, stuck in the past at worst. It will not change overnight but, it must change or we will hit a wall and never get beyond that. Multi threading and multi core are critical going forward, single core alone, not as much.

That's like saying you can create a baby in one month with nine women.

Or that you can mix cake batter, bake the cake, eat the cake, and wash the tins all in parallel.

The software world is no less detached from reality.


Almost all software that benefits from multithreading is already multithreaded.
 
but reversed back then you could get at celeron 300a and overclock it to better performance for a lot cheaper. I have no recollection of price though but i remembe running 2 of those for around the price of a P2-450mhz but i might be wrong

I worked with someone who spent $500 on a 400mhz P2 CPU for their gaming system. A couple months later I picked up a Celeron 300a, for $100, and over clocked it to 464 Mhz. Also helps a few other build Celeron 300a systems. He ended up with the most expense and one of the slowest systems at the Lan party :p
 
I'm not reading the whole thread.

One way to drive interest in CPUs is giving more interesting low end options or unlocking more features. Granted this only applies to the enthusiast crowed but I remember when that used to be the "sell to" crowed as well.

Also we were hitting that thermal wall before I'm glad we have better options now.
 
I'm not reading the whole thread.

One way to drive interest in CPUs is giving more interesting low end options or unlocking more features. Granted this only applies to the enthusiast crowed but I remember when that used to be the "sell to" crowed as well.

Also we were hitting that thermal wall before I'm glad we have better options now.

Intel/AMD could be selling top bins for 100$ and in a year or 2 you would just sit in the same situation again without anything changed. And it certainly wont do anything for the desktop, that one is a dinosaur.
 
Very small number of people need that so will it benefit the industry as a whole? .

How many people do you think do some kind of content creation? Lets say Photoshop, video editing, and digital art & design. These aren't CAD users, they're not running simulations. But there are literally millions of them, and even the latest high end PC is going to struggle with PS filters, chugging 4K video streams, and laggy pen response from art programs.

There are specific PCs for 'office users' who only require Word and Excel. Thin clients, NUCs and small form factor PCs are here, cheap, and adequate for purpose. That doesn't mean that stagnation in workstation class PCs is somehow a good thing.
 
Intel/AMD could be selling top bins for 100$ and in a year or 2 you would just sit in the same situation again without anything changed. And it certainly wont do anything for the desktop, that one is a dinosaur.
I'm just talking about bringing excitement back, I know performance isn't going anywhere.
 
I'm just talking about bringing excitement back, I know performance isn't going anywhere.

It would still be very short term and with more negative in the further future than good. There isn't any way to save it.

Small, power efficient, transportable is the key words.
 
Back
Top