Moore’s law really is dead this time
arstechnica.com
arstechnica.com
Intel may have shrank the chip but the chip isn't really getting any faster. One might argue that smaller chips means more cores packed on the same dice but that's not true either. The vast majority of computers still only have 2 or 4 cores (in fact it has become impossible to find a 4 cores ultrabook, something that existed a few years ago - Vaio z series).
So chips are not getting any faster. We're not getting more of them either. They might consume a bit less energy. But as far as I can tell the icrease in computing power is dead in the water and has been for 5 years.
Today the only reason to replace a computer is if someone spilled some coffee on it.
A significant part of the exponential gains in the '90s and early 2000s was that clock speed kept increasing. That's been stagnant for years because of heat problems.
Transistors get warm when they work. We have so many of them now that we can not make all of them work at the same time. The CPU would just melt.
The transistors that are useful all the time, work all the time. These days, the number of transistors that useful all the time stay the same with each new CPU.
Transistors that are useful sometimes, but are really good at that thing, get turned off when they are not working. What has changed is that all extra transistors that are added are really good at a specific thing, like drawing or talking. This way, a CPU can keep getting new transistors that are useful some of the time, as long as they get turned off when they do not need to work.
This is entrirely false. Intel i7 current generation models have 4 cores. Are you trying to say that it's hard to find an ultrabook with one of these chips?
Not the low power versions of that chip, they're dual core.
A five year old laptop may still be up to the task today. But you won't find a five year old, fanless laptop with hours of active battery life. The new Skylake Core-M based fanless laptops are fantastic, and that's made possible by smaller transistors and improved semiconductor process.
This is as much relevant for server/supercomputer installations where cooling and power consumption are important.
My Toughbook CF-30 Mk1 is ~eight years old, fanless, and -when equipped with a new battery- gets between six and eight hours of active, heavy use on a charge. :)
Other than the fact that it uses a 32-bit CPU (the Mk2 variant uses a 64-bit CPU), it's still quite a nice laptop.
It's also substantially more durable than the vast majority of laptops out there, due in large part to its chunky construction.
It's a pity that Panasonic failed to choose the low voltage variants of the CPU in the CF-31 (and -thus- had to add a fan into the machine). It's awfully nice to have a laptop with no non-hinge moving parts to wear out.
It is interesting that the cache per core has not really increased over this time, being fixed at ~2.5MB of L3 per core. Naively one might have expected some of the additional transistor budget to be given over to increased cache per core, but clearly Intel has found this number to be the sweet spot.
Might be the most sensible sentance I have read on Hacker News.
I guess you don't work in the Apple's marketing department.
Villagers--please don't beat me up over the comment. To Apples credit, I haven't seen any blatant upgrade marketing; their customers provide the free advertising. "Gotta get my new device!".
Now the constant fiddling/upgrading of the operating system? Without an easy way to revert--if said devise slows, or stops applications from opening. Sometimes I wonder?
Why? Travel and video editing for example. Backups. Virtual machines. The new wave of SSD's are too fast for any existing peripheral bus.
The better argument to make would be pointing out that Intel can now get away with not updating their entire product line to the latest architecture and process.
Yes they are, and yes we are, you just won't find those chips in laptops.
Storage too. SSDs have made some incredible progress. And with 4TB consumer SSDs coming this summer!
Agreed. It's not just that, though. The GPU is a processor in its own right, and more GPU space means faster programs--if those programs are written to use the GPU effectively.
I have a 64 GB SSD, now for 5 years and a second 500 GB HDD for data (which is half empty). I cannot imagine I would need more.
(On a side note.. I have both the page file and hibernation disabled.)
Noise? Reliability? HDDs are getting better at these things too, I have never had problems with that. Power consumption? It consumes zero power, when you do not access your multimedia data. Resistance to shocks? Yeah, that is a thing for HDDs, but it must be a really hard shock (also it has to run), if you want to hurt it.
EDIT: I do not want to sound like I am against you or against the SSDs. SSDs are awesome! I just feel like the correct tools should be used for the correct tasks and I am just curious what is the purpose of an 4 TB SSD, because it somehow does not fill into my use-cases (again, I use the same 64 GB SSD for 5 years now and I feel like I will never need nothing bigger, if Windows installation does not get dramatically bigger in the future).
etc.
Use less/no cloud storage (laptops often go where clouds don't).
Mid and high end SSDs have full disk encryption (OPAL) by default, and 4TB sounds very high end to me.
It still doesn't give me a single hiccup when running.
And I don't use it for simple tasks either. I'll usually have 10+ tabs open in Chrome, I use Photoshop a lot, and I've even done some video editing.
The only upgrade I've had to make is increase the RAM from 4GB to 8GB.
Performance wise, I have zero reason to upgrade my laptop anytime soon. If I'll change it, I'll do it only because I want something lighter and with a higher resolution screen.
This is amazing to me - I grew up believing that you need to replace laptops every 2 years!
Your old laptop is still good because subsequent generations are not increasing their general compute power at any great speed. When every new release increases performance dramatically, say >150%, you see an explosion of new applications that make use of that compute power. We are simply not seeing this at the pace that we were used to in the Pentium II and Athlon days. In other words, your processor might still feel fast because it still has the same workload.
I expect Office and web browsers to work fine right now. Some special things like video editing or programming might have use for much performance but most things should work.
Something like 3D XPoint would be nice mostly for not having to wait for the computer to boot up. https://en.wikipedia.org/wiki/3D_XPoint
There has been a steady march of applications gobbling up (or wasting) more cycles and memory as performance improved. I do not see how 'working fine right now' is an argument on how this march is suddenly stopping right now. Lotus-123 or WordPerfect also worked fine back then, but Office still gets bloated to the edge of usability today. As for browsers, just look at the enormous expense browser vendors go through to optimize every aspect of their software, you do not do that if you have a lot of performance headroom.
What I am trying to say is that it is short sighted to say that we won't need more performance. Applications are like an expanding gas and performance is the container.
Careful with that, it's like saying "640k should be enough for everybody" or "who ever needs optical fiber ? Copper is absolutely fine". It is in fact an "unknown unknown", and we should make sure it transitions at least to the "known unknown" category.
What kind of application could we do with more power, then ? I'm thinking about AI and personal assistants that Google and Facebook are trying to sell us: things that analyze the vast trove of our emails, browsing pattern, commands, habits and extract useful information for our lives. These traditionally sit in a datacenter because of the computing power needed to reliably guess what I'm looking for and giving me the right answer instantly. So, if we had more computing power available in any of our own computer, wouldn't it be better to have that assistant on our smartphone ?
The similar question was asked by my otherwise extremely smart colleague around 1990 ("which plain user will ever need more than 16 MB?")
But at least Gates' "640k" is apparently not true:
http://www.computerworld.com/article/2534312/operating-syste...
Recently I spilled an entire cup of coffee on my 3 year old vaio, all over the keyboard. Went right through, pooling in the battery compartment and the optical disc drive. No damage. Still runs like a charm.
Not even close, but you wouldn't know it from looking at Intel. They have 18 core Xeon processors that don't need to cost $4k USD. They are planning a knight's landing Xeon Phi with 72 out of order cores, each with 4 hyperthreads and two 512 bit SIMD units (meaning 1 core = 32 float operations at a time!). It will also have special high bandwidth memory for a 16GB cache in between the CPUs and real memory.
Intel's consumer chips have led to articles like this. Part is zero competition from AMD, part is intense competition from ARM and everyone else.
GPUs have not gone without significant improvements. 5 years ago the 580 gtx might have been the best GPU.
The other problem is that there isn't a heavy demand for faster CPUs on the desktop. Software isn't being written with multiple cores in mind, and if it is, it makes use of only 2 or 4 cores for a limited part of the program.
All of this is on top of the fact that the latency from memory is not getting faster. CPUs are WAY faster than most people realize but the way current software is written leaves anywhere from 10x-100x the performance on the table. From the hardware angle, higher clock speeds don't add anything.
Then you get into issues of cache coherent multi-threaded software being very difficult to write for the vast majority of people. How do you use SIMD? Right now the best option is ISPC, Intel's compiler. Everything else is a hail mary to the compiler. How do you use multiple threads? There are various wheels, none of them round. Even allocating memory so that you avoid a system global lock is an issue far deeper than most people will go when writing software.
Intel is in a position where they would look really much better if software was more optimal, but at the same time the fact that it isn't is part of the reason they have crushed their competition in the past.
I think Intel is probably planning to unify CPU and GPU. Intel has been bringing GPU-like features to CPUs like very wide SIMD, gather (vectorized memory load), etc.
Just scatter (vectorized store), a 2D-optimized cache controller (for trilinear filtering and hardware swizzling) and fast HBM memory are missing from the latest Skylake CPUs. Otherwise current crop of CPUs can pretty much be a GPU. An 18 core 2.3 GHz Haswell Xeon has 1.3 TFLOPS peak.
> CPUs are WAY faster than most people realize but the way current software is written leaves anywhere from 10x-100x the performance on the table.
Yeah, just a single Haswell core can do 32 (FMA) flops per clock cycle. Other then specialty optimized software, it might see a flop or two every few cycles while being idle a lot.
On the other hand, most software can't be 10-100x faster. 2-10x is pretty common, though. Compilers are still somewhat bad at using SIMD cleverly. Sometimes they do surprise.
> Right now the best option is ISPC, Intel's compiler.
Right now the best option is to still to use assembler or intrinsics (when compiler does ok job at instruction scheduling), at least if you need serial performance in "normal" applications. ISPC is of course nice for very parallel problems.
How do I know? We have some experience with vectorization in the team I work in (www.gromacs.org), our code has support for at about 10-12 SIMD instruction sets ;)
Compiler vectorization tends to also be less stable, slightest changes can make the compiler to drop the optimizations in a later build.
It might not ideal to use intrinsics, but that's how you get predictable performance.
The problem is that it historically ended meaning both, with the second being even more important than the first, but pedants will always return to the stale original definition.
This wasn't nearly the case in the 90s-early 2000s (as far back as I go), where one's computer would be obsolete and fail to run many programs even 2-3 years after purchase.
Add to this the 'optimization is evil', 'compiler will optimize it', 'is there a framework for it' mentalities and we are talking of serious amount of professional time wasted using programs that are far more sluggish than they could be.
On the bright side, at this rate my new rig should last me even longer!
Ever tried sending your web-browser to a site that does everything with Javascript front-end code? That'll slow it right down.
Here's a table for SPARC CPUs, with process lambda, die size and transistor count: https://en.wikipedia.org/wiki/SPARC#SPARC_microprocessor_imp...
If transistors would reduce with lambda, then for two-fold reduction you would get four fold increase of density. Difference in density between T4 and T2 (90 and 40 hn processes) is less than two.
The static leakage you mentioned is mainly due to sizes of transistor parts.
You should also know that NVidia uses humans as chip designers (they can afford that), not an automatic process like some fabless companies use.
And now I get to my main point: NVidia overshot with 28nm and got transistors features that were too small, probably, due to not all that good software they used to calculate models. They continue to overshoot for 5 years until they corrected their overshoot. It has nothing to do with process lambda. It is process error in NVidia.
The same article [3] shows clearly [2] that max TDP has increased a bit.
[1] https://www.karlrupp.net/wp-content/uploads/2013/06/gflops-p...
[2] https://www.karlrupp.net/wp-content/uploads/2013/06/tdp.png
[3] https://www.karlrupp.net/2013/06/cpu-gpu-and-mic-hardware-ch...
http://developer.amd.com/resources/documentation-articles/de...
AMD employs kernel developers who write free software drivers for their GPUs. That's all I was trying to communicate. I have no particular knowledge of the actual business organization.
[0] https://github.com/torvalds/linux/commits/master/drivers/gpu...
(2) In any sufficiently complex program, completely different computations are theoretically capable of running concurrently. At the very least, you need multiple CPUs/cores for that, and then you have the problem of assigning tasks to the different cores. Conventional languages are designed around a single processor and do not support this.
(3) Memory access is a bottleneck, which because of caching favours data structures which are compact over those which are scattered over a wide area of memory (such as lists, trees, etc.)
(4) CPUs were once designed to run specific programming languages, e.g. Burroughs mainframes ran Algol natively, and Lisp Machines ran Lisp natively. The PDP-7 and its successor the PDP-11 influenced the design of C. Nowadays, CPUs are designed without apparent reference to the languages which will be compiled onto them, but implicitly favouring the popular languages (C, C++, Java).
So what's happening, and what is likely to happen in future unless we do something about it, is that programs/languages are being shoehorned into processors, rather than different processors being designed to run different types of programs and languages.
This sounds like very bad news for companies that currently make those components.
I imagine some folks in the right places already know what it is going to say and this is ars giving us a piece of that, but... there's not tons here yet. Would rather just read the actual roadmap in a month.
And when they actually say it ahead of time, instead of try and potentially fail, that's when you know it's really over, they gave up on even trying.
http://electroiq.com/blog/2014/02/the-most-expensive-sram-in...
And this is real Moore's Law breakage talking about cost rather than performance.
Now is that bullshit, or can SSD and GPU improvements compensate?
That line of reasoning was bullshit then and is bullshit now. No strong AI will magically jump out of your computer if you just make it fast enough, because we still have no clue how to create true intelligence.
(A bit of a dated article, but if interested: http://arstechnica.com/security/2012/12/25-gpu-cluster-crack...)
With the end of Moore's law, we won't get more performance with that approach either.