Tom Forsyth, a graphics and hardware engineer, writes about Larrabee, instruction sets, and computing history including Charles Babbage.
HN links him for firsthand history of Larrabee and Xeon Phi, and commenters point to his Babbage post as a great read.
While this is a good point (yes, many of Babbage's difficulties were self-inflicted; arithmetic on 40-digit numbers wasn't needed in mechanical hardware and could be done in software as the industry started to realize in the 1970s), looking at the historical evolution—how Babbage got to the Analytical Engine—reveals the reason:
• Babbage's first insight was that many books of tables (log tables, sine tables, actuarial tables) could be generated mechanically, using finite differences: basically, any "nice" function can be well-approximated by (say) a sixth-degree polynomial, and that was the basis of his Difference Engine. He did understand this; see the paragraph just before his frequently quoted one:
> One gentleman addressed me thus: “Pray, Mr. Babbage, can you explain to me in two words what is the principle of this machine?” Had the querist possessed a moderate acquaintance with mathematics I might in four words have conveyed to him the required information by answering, “The method of differences.” The question might indeed have been answered with six characters thus—
Δ⁷uₓ = 0
but such information would have been unintelligible to such inquirers.
(This paragraph is followed by the famous:
> On two occasions I have been asked,—“Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?” In one case a member of the Upper, and in the other a member of the Lower, House put this question. I am not able rightly to apprehend the…
Tom Forsyth's write up seems to make mostly reasonable claims. Though even he notes that it wasn't competitive with the high end at the time.
"So let's talk about the elephant in the room - graphics. Yes, at that we did fail. And we failed mainly for reasons of time and politics. And even then we didn't fail by nearly as much as people think. Because we were never allowed to ship it, people just saw a giant crater, but in fact Larrabee did run graphics, and it ran it surprisingly well. Larrabee emulated a fully DirectX11 and OpenGL4.x compliant graphics card - by which I mean it was a PCIe card, you plugged it into your machine, you plugged the monitor into the back, you installed the standard Windows driver, and... it was a graphics card. There was no other graphics cards in the system. It had the full DX11 feature set, and there were over 300 titles running perfectly - you download the game from Steam and they Just Work - they totally think it's a graphics card! But it's still actually running FreeBSD on that card, and under FreeBSD it's just running an x86 program called DirectXGfx (248 threads of it). And it shares a file system with the host and you can telnet into it and give it other work to do and steal cores from your own graphics system - it was mind-bending! And because it was software, it could evolve - Larrabee was the first fully DirectX11-compatible card Intel had, because unlike Gen we didn't have to make a new chip when Microsoft released a new spec. It…
I've been working on VR and AR stuff for about 8 years now. I started doing it full time about 4 years ago. A lot of what I know has been from just being in the zeitgeist as things develop, so unfortunately I don't have a "reading list" to get people started.
I have been trying to start a reading list, but it's woefully incomplete. I'll copy the content here (I don't have it publicly online yet). I'm primarily centered on VR, but I've also done a lot of AR work. I think good application design is very similar in both. or rather, all the "bad" apps I talked about out there are similarly bad in the failure to take the immersiveness of the experience into account. But I do think there is a lot of overlap in terms of needing to take less of a traditional, compartmentalized application mindset and start thinking about immersive software as more akin to clothing, overlays on top of the world.
Kent Bye's "Voices of VR" Podcast (Site: https://voicesofvr.com/, Twitter: https://twitter.com/kentbye?s=20). Kent Bye has been a singular voice in the VR and AR community for the entirety of the contemporary VR movement. He brings a philosophy and social impact perspective. I think a lot of application design--immersive or otherwise--doesn't take human factors into account often enough.
Road to VR (Site: https://www.roadtovr.com/, Twitter: https://twitter.com/RtoVR?s=20) is also a very long-standing blog on all things AR and VR. They are more focused on gaming, but they also cover…
Whenever i re-read Tom Forsyth's (who worked on it) article about Larrabee [1], i facepalm hard at Intel's decision to drop it. It is one of the few cases where i really wanted to put my hands on that sort of hardware. An essentially standalone manycore CPU on a PCI express form that is running FreeBSD or Linux, with a bit of graphics specific functionality that doubles as a video card and you can fully program like a PC?
I have "I WANT! I WANT! I WANT!" signs blinking in my head as i type this :-P.
(facepalm mainly because i wanted it, i do not know the economical details)
Funny enough, the Forsyth's (and another one from another team member i do not remember now) article sold me more on Larrabee than any PR speak Intel made.
[1] http://tomforsyth1000.github.io/blog.wiki.html#%5B%5BWhy%20didn%27t%20Larrabee%20fail%3F%5D%5D
Note that the 512-bit Larrabee instructions (on Knight's Ferry/Corner) had different encodings (and IIRC different encodings between KNF and KNC), but it was essentially the same instruction set. The few differences there were between LRBNI and AVX-512 had (AFAIK) almost nothing to do with the move from the old Pentium in-order core to Silvermont.
I think it's also safe to assume that, given the lead time to design an ISA and integrate it into an architecture (many years), the merging of AVX-512 into Skylake wasn't done "in a desperate attempt to give KL more software".
These slides from Tom Forsyth provide lots of interesting background on the evolution of the instructions: http://tomforsyth1000.github.io/papers/LRBNI%20origins%20v4%20full%20fat.pdf
> not software per [se] and more so Developer Experience
This aligns with my experiences trying to use Intel software.
The software was often technically very good, but the user experience trying to use it was horrible, and god help you if you got an error.
Larrabee all over, really.
I suppose linking to [1] and [2] is probably germane for this discussion.
I swear there was another blogpost explaining the tradeoffs made in the Larrabee/Xeon Phi development process in exacting detail, and confirming that it ran gaming workloads pretty well before being shelved, but I can't find it again.
[1] - https://pharr.org/matt/blog/2018/04/18/ispc-origins
[2] - http://tomforsyth1000.github.io/blog.wiki.html#%5B%5BWhy%20didn%27t%20Larrabee%20fail%3F%5D%5D