Hacker News new | ask | show | jobs
by q-big 1557 days ago
> Intel has been sitting twiddling its thumbs for years,

What evidence do you have for that?

Intel really wanted to release (in my opinion) very interesting processors, but had serious problems over years with getting their 10 nm process "stable" (i.e. sufficiently high and reproducible yield rates). They even back-ported some of their planned CPU architectures to their working 14 nm process "just to get something out". Since these processors were not developed with 14 nm in mind, they of course were not as good as they could have been.

7 comments

> Intel really wanted to release (in my opinion) very interesting processors...

No. Intel just wanted to show some little improvements to keep performance gap constant, hide their neat tricks until competition catch up, and use them when clients or the market really demanded it.

The only notable efforts I've seen were reducing performance penalty of SpeedStep performance switching, making better memory controllers to "Catch" AMD, and other power-gating and independent throttling capabilities to address density issues in systems.

When fab/power/thermal issues became apparent, they started to hide AVX/AVX2 frequencies, created frankenprocessors for some applications, etc.

However, I've seen no real effort to make groundbreaking innovations in x86 space rather than protecting what they already had.

Performance counters, and other underlying piping to make processor observable was nice though.

As a result, I can still use a 3rd generation i7 as a daily driver for almost all tasks at hand, including development. The only definitive performance difference shows itself when I run my scientific code after compiling it with platform platform specific optimizations on newer systems. On that regards, an M1 MacBook air can be 25% faster than a 7th gen 7700K processor, and I find it ironic.

> However, I've seen no real effort to make groundbreaking innovations in x86 space rather than protecting what they already had.

I consider what AVX-512 has to offer to be highly innovative.

Unluckily, just when they planned to introduce AVX-512 into most desktop/laptop CPUs (not just server CPUs or special-purpose accelerators), the problems with 10 nm occured. So this was delayed a lot and even today, many desktop/laptop CPUs of Intel have no support for this feature.

Also Intel TSX was in my opinion really innovative (even though this feature was to my knowledge mostly used in (business) databases; what a pity).

I wouldn't call wider SIMD lanes terribly innovative. Particularly when they suffer from power costs to evaluate, time penalties just to fill the registers with enough data from cache or memory, and real workloads don't benefit from SIMD as much in practice when compilers are terrible at autovectorization (and humans are only marginally better at doing it manually).

AVX-512 is an example of a feature that improves special cases that show up in faux-workloads (eg: fancy benchmarks and HPC) but does not manifest higher performance for the vast majority of workloads, including things that ostensibly should be embarrassingly parallel and reap gains from SIMD.

SIMD lines are just a miniaturization of older vector processors as co-processors, a-la CRAY in a box.

As an HPC sysadmin and scientific software developer/researcher, I can confidently say that SIMD can provide real performance gains, however there are trade-offs and decisions to be made.

- First of all, SIMD is very data-hungry. You either need to constantly push data into it, or modify the data you've pushed a lot. Otherwise you just sit.

- Then there comes power and frequency penalty. In Intel's case, it needs humongous amount of power in CPU budget terms, and it creates heat and slowdowns. So you have to test your code with SIMD or without it (-mtune, -march, etc.). If your code is as speedy or faster, use SIMD.

- Moreover, you can't just compile an extremely optimized binary and fan it out. Older processors will just throw "illegal instruction" and halt. You either will provide multiple binaries with specific optimizations for each, or lowest common denominator for a vendor (AMD binary and Intel binary), or just throw all out. The best way is giving the source out and providing a simple makefile to let the researcher/user compile it, but not all code is open, one may guess. Creating a universal with multiple code paths is also possible, yet needs a lot of elbow grease, and may not be always optimal.

- Lastly, your code don't have to be embarrassingly parallel to be able to use SIMD. Matrix/linear algebra libraries like Eigen can almost abuse the processor's all units when compiled with correct flags (-O3, -mtune=native, -march=native). However, if you want to accelerate small data with SIMD, you need to create a parallel loop which needs to saturate SIMD pipelines. Which OpenMP can easily do with parallel_for.

All of this doesn't change that SIMD is a special horse which can't run in all courses, however its not useless.

I didn't say it was useless, just that it wasn't a magic bullet and AVX-512 isn't particularly innovative, and doesn't solve most users' problems.

I think you're missing the point of my post, I agree with all your points in specificity (except one, but not the forum to discuss FMV in modern compilers) but they miss the grander point that Intel hasn't made computers faster via more SIMD. The amount of expertise required to make use of it is just more evidence of that.

AVX512 was clearly a great innovation in the vectorization landscape. A far cleaner instruction set, complete and symmetric, with very interesting blend, ternlog, lane-crossing instructions and the especially interesting mask registers. Lots and lots of goodies and an eye for compiler implementation.

I feel Intel failed hard at diffusion of the ISA (why not put it everywhere, with half-perf, it'll improve later, no change in code) and also at not pushing more energy/dollars into ispc. Yeah yeah your compiler engineers are clever, but you've been doing this for 20 years and autovectorization is still ways off. Let me write code in a way that can be easily vectorized. A subset of C. Less awkward than cuda.

Now it seems AVX512 and large vector units is dying and still is too niche. Sad.

The cleanup being tied to the width increase was the first problem. The new width still being a fixed one was the second.

SVE is SIMD actually done right – on the Arm side in the near future, everything from smartphones to massive HPC boxes will be covered by the same clean SIMD ISA.

I agree it would have been nice to have 'infinite sized' instructions, chopped up to the actual underlying vector size. But there were so many complaints about AMD not implementing some instructions as 256 bit-wide but 2x128 that I feel they went for the least microcode route.

Mask registers offset the size problem a bit. I just wish we'd rebuild a language or clean libraries to take full advantage of this programming model. Is ispc still maintained? Does anyone use it in prod? Genuinely curious.

I feel SVE is 'too late' as most CPU makers seem to go back to smaller vector units (leaving the vectorized stuff to gpus - I know they're not the same thing, but if you're investing in heavy perf hardware, for repetitive computing...) and even Intel doesn't seem very serious about AVX512 except in the Xeon world. But then if you pay 8000EUR for a platinum thing, you might be able to pay for top talent to handcraft some intrinsics.

We spent years with quad core i7 processors being the norm, with higher core count processors being locked to Intels HEDT platform. When Ryzen came out all of a sudden the i7 8700k was able to be a 6 core processor instead of a 4 core. Then it wasn’t until Alder lake released in November of last year that we finally got desktop processors that weren’t on 14nm+++ (or however many + it was at). That’s not including the fact that you could overclock all the initial Ryzen processors, while Intel locked you to specials skus of CPU and motherboard
It’s basically innovation 101: don’t spend more money developing something if you know you customers needs are already met.

They likely knew what apple were up to with efficiency cores several years ago, and only decided to accelerate manufacturing of Alder lake once they realised the market was cool with that form or architecture.

"Innovation 101: don't innovate if there's no demand for" doesn't sound like innovation to me.
Putting effort where demand is, doesn't seem like the stupidest strategy to me. Creating demand for a new kind of product or service is nice, but reaching a market where their needs are, seems clever.

What baffles me about this 'innovate on something else than peak perf' is... What did they innovate on massively instead then, if not that? Apart from AVX512?

> Putting effort where demand is, doesn't seem like the stupidest strategy to me.

It can indeed be a sensible business strategy, but it will much less likely lead to remarkable innovations.

Intel did have any major advances from 2nd gen all the way until the 7th. The advancements were generally small (single-digit often) IPC or clock speed improvements.

Only after AMD released Ryzen, Intel had to respond at their 8th gen by cranking up core counts. And IPC did not have any increases, until 11th gen(the backported arch you mentioned). In my opinion, the performance delta between 28nm Sandy Bridge and 14nm Kaby Lake is ridiculously small.

> In my opinion, the performance delta between 28nm Sandy Bridge and 14nm Kaby Lake is ridiculously small.

Two of my Linux workstations are Sandy Bridge and Kaby Lake, and my real world experience bears this out. I can't distinguish between the two for everyday use cases; only synthetic benchmarks show any real advantage in the newer system. I can't speak for Windows performance differences, as my only Windows system is my gaming rig with a Ryzen 5 3600, which of course trounces both of the workstations no matter the OS.

Are there still software features exclusive to Intel's chips? I remember my dabble in Android Studio was painful, since the 'simulated device' functionality was only available on Intel, while I had some FX-8??? AMD chip.

I'm not in the market for a new gaming PC quite yet, but it's also going to be a personal workstation, so I don't want to deal with anything like above if it can be helped.

Get a Ryzen. Intel is restricting many features like ECC, overclocking or virtualization (important for emulators/android development) to certain processors/chipsets. If you want to save money, get a used workstation.

ECC -> Xeon/C

OC -> K/Z

Virtualization -> Xeon&non-K/C&H

Intel caved a little, alder lake consumer chips have ECC ... if you use the right chipset:

https://www.tomshardware.com/news/intel-enables-ecc-on-12th-...

Looks like it's time to update the fantasy roster on pc part picker. A shame, since it had such a nice aesthetic! The Vision D looks so clean and well-featured

By the time I get around to actually building it, there may be some similarly-styled mini-ITX AM4 motherboards, so not all hope is lost.

Back in ~2012 I ran the Python Meetup here in Phoenix. One of the compiler leads for Atom processor attended and he basically told the tale that the Atom processor was being neutered. Intel higher ups were worried the Atom was getting too close to desktop/server processor performance. They were very concerned about cannibalization from within. Also, even then, Intel thought very little of mobile processors.
The classic tale of protect the dinosaur technology. Xerox Alto PC, Kodiac killing their own digital camera, etc.
That's disappointing if true. If you don't cannibalize your business, someone else will.
Interesting processors? Yes, Intel released IA64 with Itanium which was interesting and a dud in the market. Then they came up with Xeon Phi, which was a dud in the market. Then they brought Larabee, which was a failure in the market. Part of Larabee's issues did stem from process limitations. Intel had every opportunity to hedge its bets by buying from TSMC, Samsung, or others just as everyone did, but kept sinking more money into their own foundries without getting what they paid for.

Meanwhile AMD gave the market what customers clamored for: a 64-bit extension to the IA32 platform. Then AMD gave us massively performant APUs. Then AMD gave us multi-die packaging and left the IO die on a more sensible process for that function while using smaller processes where frequencies matter more.

Then Apple with some help from ARM gave us a SOC for laptop and desktop use that's frankly kind of embarrassing AMD and Intel, not so much for the core design really as its integration with memory.

Intel isn't just unlucky here. They've made a series of serious missteps going back a couple of decades now.

> Intel really wanted to release (in my opinion) very interesting processors, but had serious problems over years with getting their 10 nm process "stable" (i.e. sufficiently high and reproducible yield rates).

Intel was just doing what they have been doing for the last 40 years - building faster x86 CPU's.

They weren't even considering something as grand for desktop/laptops as Apple was with the M1 (i.e. a fully integrated SOC).

I don't think they were twiddling their thumbs to be fair - they were probably pushing hard in the same direction they have been pushing in for the last 40 years, but failed to see the industry change under their feet.

> They weren't even considering something as grand for desktop/laptops as Apple was with the M1 (i.e. a fully integrated SOC).

Perhaps I misinterpret your argument, but it is my impression that Intel (and also AMD!) did huge steps into that direction, just in a more incremental way than what Apple did:

- integrated GPU: check

- integrated memory controller: check

- integrated northbridge: check: https://en.wikipedia.org/w/index.php?title=Northbridge_(comp...

- developing a smartphone SoC: Intel did invest serious money into it and developed SoFIA and Broxton. Intel even strongly subsidized smartphone producers to use them. This all turned out to be a huge commercial failure and thus Intel left the smartphone SoC business.

It is also not the case that a fully-integrated SoC is "better". Rather having not everything in one SoC enabled much more flexibility for OEMs. Fully integrated SoC versus more chips is rather a trade-off between various goals.

Integrated GPU's have been around since 1991, so I wouldn't personally point to that as an example of Intel continuing to be highly 'incrementally' innovative.

Similarly the M1 chip came out of a smartphone SOC - it was just that Apple saw the potential for laptop/desktop adoption while Intel clearly didn't (maybe because they failed to get into the smartphone business - but their failure in that market is yet another example of 'too slow, too little, too late').

"Intel was just doing what they have been doing for the last 40 years - building faster x86 CPU's."

Yes Intel has been doing some minimum improvement to CPUs each year, but the reality of "Intel was just doing what they have been doing for the last 40 years - " is....

"Milking their Monopoly"

The AMD lawsuit with Intel back in the Netburst days showed how Intel was just as bad if not worse than Microsoft at anticompetitive behavior to lock out competitors in the PC market. I'll throw Intel a bone in that for decades with this monopoly power they still continued to push the process and design envelope (probably because they were afraid of becoming Motorola, and when they still had engineering leadership left over from the earlier days).

But Intel is a badly overfed Jabba the Hut. Gelsinger has his work cut out for him.

It's expected that they're trying to build chips that are faster on x86 rather than switch to an entirely new architecture - they can't switch without the full support of Microsoft and at least some major Linux distributions, not to mention the OEMs they sell their chips to.
They absolutely could have built an ARM chip.

The fact that Microsoft has released several ARM laptops but selected Qualcomm to provide the processors suggests that Intel at least had an opportunity to play the game, they just never came to the table. It’s hardly Microsoft slowing them down when Microsoft is ahead of Intel on this, but their reluctance to push forwards means that they are now behind.

It’s not Microsoft’s job to push intel anyway, it’s intels job to create a product so compelling that their partners adopt it. If they want the support of major Linux distros, they just have to write it themselves rather than wait for volunteers to do their work for them.

Yeah, I've always been pretty skeptical of the "Intel just sat doing nothing" narrative. The impression I got back in the day is that they went quite hard on their 10nm process with a reasonably ambitious set of changes, then failed to scale it to production. That had substantial knock-on effects including delays to the associated microarchitectures as well as subsequent nodes and backports.

Regardless of the reasons I hope they recover; multiple providers of cutting-edge fabrication technology will be essential.

Intel has absolutely been lazy and literally just gave 5% performance increase per year for quite some time. When AMD was making shitty processors, Intel was just trying to squeeze as much money as possible from marginal upgrades.

You can run Windows on a Intel cpu that is 10 years old and notice hardly any difference in performance.

And on the other hand, they changed everything. Their cpus are actually innovative and really fast, and brought the entire multi core thing into consumer hands in a real way.