My impression is that they know moore's gravy train is over and they're scrambling to figure out new tricks to allow them to sell a new generation of processors every year. Personally, while I'm a little disappointed that processors 20 years from now might not be 4+ orders of magnitude faster than the one I have now, I wouldn't mind being able to buy a computer and not have to worry about upgrading it for 10 years (I think we're pretty close to this point already).
New? Using epoxy to make batteries hard to replace and other tweaks to make other unreliable parts hard to replace. Popular recent choices are keyboards and backlights.
Not everyone uses Macbooks. There are plenty of laptops with easily replaceable batteries and sane keyboards. Not even talking about real computers, where you can replace everything without any tools.
Sure. But CPU manufacturers focus on where the money is, and today that's servers and laptops. While not everyone buys apple, an ever larger fraction of laptops are epoxying batteries and replacing socketed cables with hard wired parts. Just like cellphones where it's pretty common for battery life or USB failure to result in requiring a replacement.
But at the same time, I'm considering replacing my 2015 HP laptop because my "A" key stopped working, and the cost to replace the keyboard is 25% the cost of a new laptop, which I'll need anyway in another year or two even if the keyboard were fixed.
15" laptops that are 2" thick are largely easy to work on and get replacement parts.
However the popular "ultra" books and similar have to integrate more heavily to get close to 1". Even fans become hard to replace. Often there's no dimms (so you can't replace or add ram), even storage can be on the motherboard.
I've had multiple ultrabooks too, measurably under an inch, and their keyboards were both thin and also easily popped out. It's disappointing to hear that many manufacturers are doing it differently.
Paying 25% of a new laptop to increase the lifespan of your current laptop by 25-50% is a fairly rational decision, especially if you factor in the environmental impact of replacing the whole machine.
> I wouldn't mind being able to buy a computer and not have to worry about upgrading it for 10 years (I think we're pretty close to this point already).
Depending on your needs, we're been there for at least 10 years. I don't expect to have to upgrade (not counting increasing memory or storage as "ugrading") or replace any of the systems I own right now until they're over 10 years old. About half of my current machines are approaching their 10 year anniversary. Two are older than that. None of them need upgrading.
But isn't that just the result of lack of hardware gains limiting new software application areas? If single threaded performance had been doubling every two years for the past 10 years like it did historically, then there would likely be new applications available that made use of that 30x performance gains to deliver functionality that would be popular enough that it would reinvigorate the upgrade process.
It seems unlikely that hardware improvements have stalled out right at the point where the performance level was just good enough.
There's more to the lack of radical new applications than faster single core performance. We've had increasingly multi-core systems for over a decade now, but applications have been slow to appear. We've also had increasingly powerful GPUs with compute capability over that time. I think even if single core performance were still increasing at 50% or even 25% per year we'd still be here.
Sure, it requires work to move off the legacy single-thread paradigm but it's also the economics of the software business these days. When you combine the increased control/lockdown by the mainstream platform owners and the decreasing willingness of customers to pay for software in the era of no-cost software, there isn't much incentive for new applications to appear. Notice that all of the major players are mostly focused on services and server side for the heavy lifting these days. It's not because the user hardware can't do it (hell, on the server side, CPUs and GPUs tend to be less powerful per-core), it's that it makes more economic sense for them to not bother doing interesting things on the users device.
> But isn't that just the result of lack of hardware gains limiting new software application areas?
It’s no accident that the biggest advances in the last ten years have been in areas not limited by single thread performance; machine learning & cloud computing.
> But isn't that just the result of lack of hardware gains limiting new software application areas?
For my needs? No. It's not that more performant systems (including software) aren't available, it's that they don't offer me any real benefit that justifies the hassle of replacing and reconfiguring my existing systems.
In 2010, you could've bought an Intel i7 980X for $1,000 (why would you? B-but still...) with six cores @ 3.33 GHz and easily OCed to 4 GHz.
I think we're a year or two away before beefy, AAA games begin demanding 4 GHz minimum, and new CPUs barely offer over 4 GHz clocks as it is, so... we've already been there!
CPU power's been flatlined, especially when you compare it to GPU power.
It's not even accurate to say CPU power has flatlined since Westmere. Instructions per cycle is significantly higher today than in 2010, so performance at the same nominal clock frequency is substantially better. Not to mention power efficiency gains since 2010.
I said it's flatlined from seeing graphs like this[0] and this[1] (again, compared to GPUs).
But I'm far from an expert here (just an enthusiastic consumer), so what you're saying is news to me. The more flowers you can lay at what looks like the grave of Moore's law, the better. I don't like being a pessimist! :3
An i5-9400 has the same number of cores, a lower base clock speed (2.9GHz) but is around 50% faster than the i7-980X. It also costs $180 and draws 75% less power.
CPU performance isn't increasing nearly as quickly as it used to, but it isn't stagnant. AMD's Zen 2 architecture looks incredibly promising. Credible leaks suggest a 16c/32t Ryzen 9 running at 4.3GHz base, with a 25% IPC improvement over the previous generation.
The SIMD units are now 4x wider with 4x more ILP (dual-issue FMA). Include increased core count and we've kept pace with Moore, though only for vectorizable code that is not memory bound.
> not have to worry about upgrading it for 10 years (I think we're pretty close to this point already
I think we're already there. Ivy Bridge machines from 2012 can still get the job done today if paired with a solid complement of RAM and an SSD.
Graphics is really the only area where those older machines are starting to be a limfac, as their inability to drive the latest 4K+ displays is starting to be more of an issue for normal people.
My E6420 C2D from 2007 is still chugging away as a htpc. I had to go from 2 to 6GBs of ram 2 years ago but it's still plenty fast enough for video and web use. I tossed in a HD 6420 few years ago for video hardware acceleration.
I upgraded my desktop PC from Sandy Bridge last year, and the only reason I did so was because I was upgrading some other components that required a motherboard update (which meant CPU chipset would no longer be compatible), so I said what the hell.
Otherwise, I was very happy with it in terms of performance.
Agree 100%. I have an ivy bridge gaming desktop built 2013. I've upgraded the GPU twice and the RAM once. The performance gains on the CPU side just don't seem worth the money.
I only upgraded from my 2009 i7 (I forget the model) to last years i7 because the old motherboard died.
I kept upgrading GPU and seeing only 20-30% CPU use while gaming. It was fine.
Some changes to how we build these things would be nice.
The heavily integrated motherboard model should die. A PCI slot on my old board made the whole system flake.
Discrete components I can stack are more my dream design. If my old CPU had been a sealed unit of some kind with a physical connector to the GPU, power, and such, and I could have simply swapped out the faulty port expansion “module”, that would be slick.
But one PCI port flaking means I have to bail on an otherwise perfectly functional CPU, RAM, PSU, and cooling kit.
It really depends on your workload. I need to compile large code bases often, and upgrading to a Threadripper last year made my life much more pleasant.
What's weird is that susceptibility to incident radiation has gone up tremendously. Cells minimize area, and exacerbate the problem. I'm wondering if computers will still need to be replaced regularly as a byproduct.
Couldn't we just go back to the older transistor densities? Forget about 5nm and instead keep tuning the 32nm process (or whatever the last reliable one was) for yields and power efficiency.
Modern processors are faster than Sandy Bridge, but not by an overwhelming amount, and it's not clear how much of the improvement is due to smaller transistor sizes now that they no longer result in clock speed increases, rather than design improvements that are independent of transistor size.
There has to be a market for something with 80% of the performance and 2000% the reliability.
Processors are not that fast yet, but computers as a whole are.
20 years ago we had Pentium 3 500MHz, 2 FLOPs/cycle, 1 GFlops.
GPU of my desktop PC computes 11 TFlops, that's 4+ orders of magnitude faster.
For CPUs alone it's indeed less impressive, $500 for that P3 inflated to $760, the comparable modern CPU is Threadripper 2920X, 16 flops/cycle * 12 cores * 3.5 GHz = 672 GFlops.
> GPU of my desktop PC computes 11 TFlops, that's 4+ orders of magnitude faster.
But they’re much lower quality (less flexible) FLOPs. If you don’t have much data parallelism or heavy conditional logic for each datum, you’re not going to come close to 11 teraflops.
If you don’t have much data parallelism or have heavy conditional logic, you won't come close to 1GFlops on that CPU either. These 2 FLOPs/cycle are for SSE i.e. 4-wide vector math without any conditions or branches.
Update: also, for other tasks, GPU flops are of higher quality than CPU.
VRAM bandwidth is ridiculous, much higher than system RAM, computations that are bound by RAM bandwidth will be much faster.
GPUs mask RAM latency with hardware multithreading, if your code is parallel and needs to access large amount of data randomly, a GPU will saturate these flops, a CPU will sleep most of the time waiting for data to arrive.
I think it's safe to say that these flops are different. One is not higher quality than the other. It's possible to conjure up examples where one is more fit for purpose (double-precision and irregular tasks on CPU), massive memory access for GPU. Both architectures have different types of cache which also complicates matters. An example that tortures the CPU (by being 'not much data parallelism or heavy conditional logic') will torture the GPU much worse, but this example will likely not really be "flop" dependent in any case.
They're different but the differences are quite complex.
CPUs can be faster for RAM bandwidth-bound code, if there's not that much data and it fits in caches at least L3, CPU cache bandwidth is very good.
GPUs can be faster for heavily conditioned code. If it's the condition on RAM value, a CPU will stall or mispredict branches, both slow, a GPU will switch to another hardware thread which is very fast.
Despite these differences, I find flops quite useful in practice to compare performance of different computers across architectures of generations. Computers compute, flops measure how fast they do.
> These 2 FLOPs/cycle are for SSE i.e. 4-wide vector math without any conditions or branches.
Using double precision SSE scaler ops, the Pentium III could execute one addition and one multiplication per cycle. (The throughput was the same with vector math because the Pentium III only had 64-bit SSE units. So a 128-bit packed multiply and a 128-bit packed add, four double precision operations, executed over two cycles.)
They're math operations on small vectors of 32-bit floating point numbers, they produce same result given same input data.
The only difference is that CPU computes stuff on 4-wide vectors of these numbers (modern CPUs up to 16), that GPU on 32-wide vectors (other modern GPUs up to 64).
A lot of the FLOPS on newer CPUs are like GPUs, yes.
But the comparison is against an old CPU, without big vector units.
Those non-vector calculations are very different, and far more flexible.
A brand new CPU core can do 3-4x as many separate operations per cycle, and is clocked 6-10x as fast.
Having more cores helps but it's still far behind.
Also for a fair price/performance ratio you probably want to compare to the 450MHz model at $230, so only a $350 CPU today ($280 equivalent by august). https://money.cnn.com/1999/08/23/technology/intel/
For example, GPUs are better at vectorized condition code. CPUs were mostly fixed with AVX512 but these instructions are too new, only available on some servers.
Sure, there’re algorithms which don’t work on GPUs. A stream cipher would be very slow because requires single-thread performance, also GPUs don’t have AES hardware. A compiler is borderline impossible because inherently scalar and requires dynamic memory. Also GPUs don’t do double-precision math particularly fast.
Still, I think many users who need high-performance computing can utilize GPUs. They’re trickier to program, but this might be fixable with tools/languages, we have been programming classic computers for ~70 years, GPGPUs for just 12.
> For example, GPUs are better at vectorized condition code.
That's throughput, not flexibility. I would define flexibility in terms of how easily the instruction stream can vary per math operation. Full flexibility requires a lot more transistors per FLOP, which is why you can't use wildly different architectures to assess Moore's law, which is about transistor count.
And comparing transistors on Pentium 3 (including cache) to an RTX 2060 (including cache) it seems to be 34 million vs. 10800 million. That's two and a half orders of magnitude.
I wouldn't necessarily say it's dead. Keep in mind that Intel hasn't had to compete with AMD since thru released bulldozer, so instead of R&D we got 8 years of die shrinks and speculation hacks (that are now disabled due to meltdown and spectre). Intel hasn't done much of anything in terms of processor development for nearly a decade. That's why even sandy bridge chips are still useable.
I think that's going to be a gradual process, but it will likely happen. IMO Python will either have to move to including a JIT with the standard interpreter, or it will be replaced.
> I wouldn't mind being able to buy a computer and not have to worry about upgrading it for 10 years (I think we're pretty close to this point already).
I used an i5-2500k for 7 years. Only retired it because the rest of the computer was falling apart and I had already had too many computers. I think that a CPU built in $CURRENT_YEAR will be completely usable in 10 years.
Memory... if you mean the amounts, not really. The gap between the necessary and the possible is really huge now. 8GB is more than enough for everyday computing and any two slot DDR4 laptop can do 64GB RAM.
8GB in an age of electron is pushing it. If one more idiot decides to turn one of your commonly used applications into a memory guzzler you will be forced to upgrade.
reply