The problem with Moore's law is that it is about transistors per ship but most people interpret it as computing power.
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.
Was going to say exactly this. I just realized the other day my macbook air is now almost 5 years old, and the only thing I want to replace is the battery.
I have a HP Pavilion Elite m9458fr bought in july 2009 for 416€ (on eBay hp_marketplace_fr). I have no need for beefy GPU. I only need a silent reliable computer with a reasonably fast CPU for development on Linux. I would like to replace it in order to have USB3 connectors and SATA III HD. I do not find anything better enough than my actual computer to justify the cost.
Yeah...ELI5, what are those additional transistors really doing here if no big performance gain in benchmark or application, but in fact they still grow exponentially until now?
They're acting as cache, to hide the latency to your RAM. They're implementing increasingly niche instructions that speed up ever smaller sets of programs. They're mostly sitting idle, because power usage hasn't fallen at nearly the rate of increasing density, so switching them all at the same time is a great way to start a fire.
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.
It's worth saying what's really happening here is that no-one cares about the desktop. Heat is important for servers and mobile, and modern CPUs are designed for that with desktops as an afterthought. On a desktop the abandoned Pentium 4 architecture can clock up to 12GHz and will beat modern CPUs for at least some workloads.
Every consumer-grade CPU now comes bundled with a GPU whether you want it or not. You've also got some other special-purpose stuff that makes certain tasks vastly more power efficient when you use it and costs basically nothing if you don't (random number generator, AES engine, the GPU's video transcoder). Some components are moving from elsewhere on the motherboard onto the CPU; for some processors this even includes significant voltage regulation circuitry.
(Here is my ELI5 attempt using the one-syllable G. Steele format, assuming you know what a transistor is ;)
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.
> 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).
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?
If you find one let me know! Even Microsoft's ultra-everything Surface Book ships with a 2 cores CPU. The standard even for high end ultrabooks is 2 cores.
The closest I think you'll come is an MSI GS30. While it's very small and light for what it is, it might be a bit big to really be called an ultrabook and the battery life is pretty terrible if you actually try to use that CPU.
Shrinking the chips still does mean improved performance per unit of power. This means lower battery consumption and smaller cooling requirements. Although smaller transistors have relatively higher leakage current, which needs to be managed somehow (usually by race-to-sleep in software).
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.
> ...you won't find a five year old, fanless laptop with hours of active battery life.
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.
The Toughbook looks like a really cool laptop, but at 3.6 kg of weight, you can't really compare it to an 1.3 kg Skylake laptop. There's plenty of heat sink in that big metal chassis.
It is -however- a >5 year old, fanless laptop with many, many hours of battery life. :)
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.
Fortunately for servers things are still cranking along with Moore's Law for now, going into increasing core counts which have roughly doubled every two years since Nehalem, with the result that now we have 18 core Haswell EP parts, with 22 cores to come with Broadwell and 28(?) cores with Skylake. Of course after that things are likely to start flattening with the slower transition to 10nm.
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.
Thus, Intel's solution for improving their integrated graphics performance was to introduce an L4 cache implemented as off-die on-package eDRAM, rather than try to make the L3 cache big enough.
True. That being said I don't think the computing power increases linearly with the number of cores. I presume for thermal reasons, the more cores you have in a Xeon, the lower the frequency at which they can simultaneously operate. So as it stands doubling the number of cores doesn't mean doubling the computing power.
Not just thermal reasons! For instance, keeping caches coherent across so many cores is a great challenge. That's what Intel was experimenting with on Knights Corner - and many think they screwed it up quite a bit - with the ring bus + L2 implementation. However, they did learn a lot and a very similar ring bus based cache coherence implementation works quite well on Xeons for up to 18C - although it's worth noting that for >8C there are actually two rings -, and it should work pretty well on "regular" Xeons for at least a couple of more generations. However, not unexpectedly, KNL is switching to a 2D mesh (see http://goo.gl/SE8pZV).
"Today the only reason to replace a computer is if someone spilled some coffee on it."
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?
Depends on your use-cases, I for example can't wait to get decent speed external disk space, something that only thunderbolt 3 in usb-c on the new macs delivers.
Why?
Travel and video editing for example. Backups. Virtual machines.
The new wave of SSD's are too fast for any existing peripheral bus.
What are you expecting, purple polka dots? There's the Retina MacBook Pro, which came with a significant redesign, the new MacBook, which is another redesign, which put the Retina screen into a Air-like format, and a brand new keyboard.
The mobile CPU space is still advancing rapidly, hence the yearly upgrades. But on the laptop/desktop side: Apple is two CPU generations behind on the retina MBP, and hasn't upgraded the Mac Pro in years. It hasn't been necessary.
The Retina MBP is not really two generations behind, due to the fact that Intel is running behind itself. Intel's release schedule has gotten really convoluted. The 13" rMBP is using the latest available processors for that product segment. The 15" was last updated a month before the relevant Broadwell processors were released, so it's still on Haswell. Since the Skylake processors with Iris Pro graphics haven't shipped yet, the 15" rMBP is still only one generation behind.
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.
The GPU inside each Intel chip is getting faster and faster, though, with more and more die space devoted to it with each revision. It's not so much that Intel isn't adding cores as that they aren't adding CPU cores. Intel Iris really is a lot better than Intel HD.
> I agree, I sort if ignored that to make a point, but it's true that driving a 4K monitor is still a good reason to replace a laptop.
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.
My mp3/flac library alone is like 150GB. The system and applications needs 150-200GB (page file and hyberbation alone consume 32GB if you have 16GB RAM). Then if you want to keep a few films on your laptop for when you travel you easily use 1TB.
You can't really fit many drives in an ultra-book laptop. Yes I could use a HDD for that but I'd rather not have any HD in a laptop (because of noise, resistance to shocks, reliability and power consumption) and I want my system, programs and non multimedia data to be on SSD for speed and performance consistency over time.
I am still not convinced, I still feel like an 4 TB SSD is an overkill for a laptop (or my use-cases are really different from yours).
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).
Interestingly, on reliability, I have read many stories about SSDs failing but I never experienced one myself. Something I cannot say of HDD. I typically use Intel and Samsung SSDs, and desktop and consumer NAS HDD.
I've been using my Lenovo laptop for 3.5 years now. It's a i5 2.8Ghz processor. I've used it rather carelessly, cluttering it up with junk, torrents, and useless tools.
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.
Yes and the question is how many application really needs more performance than we have today?
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.
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.
> Yes and the question is how many application really needs more performance than we have today?
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 ?
> Today the only reason to replace a computer is if someone spilled some coffee on it.
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.
But intel includes potent GPUs now and they're allegedly significantly less power demanding. Personally I strongly believe that single threaded IPC perf is not important, for mainstream laptop usage anyway. It seems like the GPU situation where software and hardware design are fighting each other, killing improvements on both sides. If my c2d had a nice GPU / VPU (and maybe hardware bonuses like crypto / compression [zram]) that was easy for linux to tap into, I would not see the need to change ever. On the other side, having a cpu that doesn't heat and doesn't suck battery would be a reason to switch.
> computing power is dead in the water and has been for 5 years
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.
> 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...
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.
Intel's icc (and even gcc) got really good at vectorization these last few years. It's rare when I see some code that the vectorization-report says is not worth vectorizing that actually is. Last week, I got better results by leaving out the intrinsics. The code-reorganization you do to put in vec intrinsics will definitely make the compiler's vectorization-optimization trigger. Just keep an eye on the compiler's vec reports :)
That may be true for simple operations on aligned buffers, and nice regular computation in general. Anything slightly complex will throw off the compiler and result in suboptimal performance in the best case, none or stupid vectorization the worst (and quite common) case.
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 ;)
>The problem with Moore's law is that it is about transistors per ship but most people interpret it as computing power.
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.
Those are proof Moore's law is dying. We're stuck eeking out more work per transistor with specialized approaches because we can't just throw more transistors at the problem.
Parallel computing became important recently because even though transistor density was still increasing, heat issues forced the division of CPUs into multiple cores. Parallel computing was required to use all the transistors.
With the end of Moore's law, we won't get more performance with that approach either.
I like when a source claims it's dead, while not showing a proper graph to explain how far we are from the actual prediction of the Law. Ars, you couldn't try a little harder?
They could also be planning to spend money on targets other than transistor count, and need to attempt to stop Moore's Law from biting their collective stock prices.
Moore's Law isn't exactly scientific... It's more like a Nostradamus-esque good guess. Counter-arguments can be just as lazy without deserving unrestrained criticism, I suppose.
You can have empiric rules without understanding the actual model, there's tons of them in physics for example, and they are used in production constantly. That does not undermine their usefulness.
I like the ITRS roadmap as much as the next person, but maybe we could wait a month to see what it says before reporting about it?
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.
Somewhat. But as far as I know most password cracking rigs these days use tons and tons of GPUs for hashed password brute forcing. I'm not sure what the limit is as to how many GPUs you can use simultaneously, but they sort of sidestep this hardware progress issue by just distributing the guesses.
> The highly integrated chips used in these devices mean that it's desirable to build processors that aren't just logic and cache, but which also include RAM, power regulation, analog components for GPS, cellular, and Wi-Fi radios, or even microelectromechanical components such as gyroscopes and accelerometers.
This sounds like very bad news for companies that currently make those components.
It also is bad news for consumers who value choice and competition when choosing components. I don't want to be locked into a single vendor for so many things at once, it just lets them leverage more money out of the user due to no alternatives.
The main issue with this is that such consumers are very few and far between. The benefits of a single chip packing everything (such as better cost, battery life and easier water proofing) are more important for most than the freedom of choice. There have been times where I knew who made components of my computer, they have long gone.
Hopefully this means we'll finally see software optimisation become more important; Moore's law encouraged developers to be wasteful and inefficient, and it'll be good to see that come to an end.
Hardware performance has so badly out performed most common software demands in the last decade that it isn't an issue these days in most cases, in my opinion. I use a 5 year old computer essentially and it can still play most modern games on medium settings.
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.
It's an issue with decades old commercial codebases which have been developed with the mindset that it's not worth it to optimize since increasing computer performance will buy it for free.
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.
Fallout 4 was the game that finally got me to replace my ~9 year old Frankenputer. Almost every part inside of that case had been replaced at least once and it was still trucking along just fine for most games until F4. Even on the lowest possible settings it would still slow to a crawl if too many enemies showed up at once.
On the bright side, at this rate my new rig should last me even longer!
>Hardware performance has so badly out performed most common software demands in the last decade that it isn't an issue these days in most cases, in my opinion.
Ever tried sending your web-browser to a site that does everything with Javascript front-end code? That'll slow it right down.
Why does Moore's law have so much authority? I mean, it seems like it's just taken out of thin air. If it really would be a scientific "law" it surely wouldn't randomly be 12 or 24 months? Seems philosophical if anything.
It was also based on economic "laws" of a sort. One of the biggest reasons to keep pushing to smaller process nodes is that incremental costs went down, not just due to increased density, but because all things being equal, a shrink of an existing design resulted in much higher yields (for example, 5 bits of dust on a wafer will kill a much smaller percentage of die with an equal number of transistors, since the smaller process node will have more die).
I went to an interesting talk lately from an Nvidia research guy who believes GPUs are the "next" Moore's law. He's upbeat about this; he thinks it'll give a lot of jobs to lower-level programmers for the next decade or so.
Did he talk much about performance per watt? The trend with recent NV GPUs seems to be to increase performance but at the cost of ever-increasing power budgets; I'm starting to despair of ever getting anything that'll meet the Oculus reqs without sounding like a 747 taking off and/or melting a hole in the table.
Afraid not. He was talking to a load of machine learning researchers who want to use the chips for CUDA stuff, for whom power consumption isn't an issue.
Perf per watt has improved with every NV GPU generation and quite significantly. But it's true that the max TDP has increased too (but you get more in return).
GPUs are in an interesting place. They were not able to scale under 28nm due to the increased static leakage. Intel CPUs were able to scale because of dynamic power management, but GPUs cannot really use the same trick. It's only with the upcoming 16nm GPU generation that they got static leakage to a place where we see an actual new generation of GPU hardware. It's been about 5 years now of 28nm + GDDR4.
The lengths you mentioned are lambdas - factors for on-die features. This means that some part of the transistor cannot be smaller than lambda-size square. Usually, they are much bigger and often are of equal size even for wastly different lambdas.
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.
Performance/watt is improving greatly! Look at this plot [1] from about 2013 showing the theoretical perf/w of CPUs up to Ivy Bridge, and GPUs up to NVIDIA Kepler GK110 and AMD Hawaii XT. Since than both Intel with Haswell (and Skylake on Desktop) as well as NVIDIA Maxwell and AMD Fiji have improved tremendously
The same article [3] shows clearly [2] that max TDP has increased a bit.
AMD provides documentation for their GPUs and has for years. AMD pays a team to write free-software drivers to be included in the mainline linux kernel.
Observe the @amd.com commits in this[0] driver supporting the latest AMD GPUs. Observe this[1] person who lists AMD as his current employer and describes his current job as "Working on open source drivers for Radeon GPUs."
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.
(1) GPUs are special-purpose. They're very good for doing the same floating point calculations, in parallel, on each datum - i.e. if your data can be represented as a picture. They are not much help for processing, for example, large amounts of text, or doing radically different computations on different data.
(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.
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.
It is not bullshit in the sense that we are still a long way from human level processing power. As long as performance increases exponentially we will get to human level sooner that we might think. The important thing is it does not matter if Moore's law holds or not, just that processing power increases exponentially - the actual mechanism is irrelevant.
And yet the CPU inside my phone is at least twice more powerfull than the one I use 2 yeargo while consuming less powe. Maybe mobile phone CPU is where the research is focussed now and wher moore law live?
111 comments
[ 3.1 ms ] story [ 158 ms ] threadIntel 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.
With the end of Moore's law, we won't get more performance with that approach either.
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.
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.
(A bit of a dated article, but if interested: http://arstechnica.com/security/2012/12/25-gpu-cluster-crack...)
This sounds like very bad news for companies that currently make those components.
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...
[1]https://www.linkedin.com/in/daenzer
(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.
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.