Deadending x86

Feb. 13, 2024 [technology] [proprietary] [hardware]

As OSes begin to entertain dropping “x86_64-v1” support in builds[1][2][3], the clampdown accelerates on generative computing. You vill submit to Intel ME and AMD PSP and you vill be happy!

You might be forgiven if you had thought that the constant addition of new extensions was just engineering teams implementing more efficient instruction paths, and this may even be true some of the time, but it is ultimately due to the finite life of patents being fixed at twenty years. Intel undeniably has self interest in moat building by leveraging their cross licensing for these under-twenty year terms. A problem for the CPU industry is that CPUs really don’t deteriorate (perceptibly) and so if not for the cajoling of users to adopt an endlessly growing list of new critical features, most could otherwise happily sit pretty on their CPUs as they age, even well beyond that twenty year patent life (oh, the horror!).

And so to keep their patenting and associated licensing arrangements alive, it is imperative for Intel (and AMD) to continually devise new extensions, whether or not there is actually a technical need for them. Something to ensure that twenty years down the line, a would-be competitor couldn’t just pick up the ISA spec and begin producing their own x86 feature-parity chipsets. But this alone hasn’t been enough carrot-and-stick to compel sufficient turnover in sales. Intel and AMD got together with major Linux distributions in 2020 to devise baseline feature sets defining extension collections that can be used for chronological product segmentation. The segmentation is as follows:

x86_64-v1 – (Almost all 64-bit Intel and AMD)

x86-64-v2 – (Since 2011, Sandybridge, Bulldozer)

x86-64-v3 – (Since 2015, Haswel, Excavator)

x86-64-v4 – (From 2017 onward)

And you can bet there will be v5, v6 and beyond just as with the endless profit-booster shots. After drafting this article Intel’s new AVX10 had made itself known to me. Am I Nostradamus?

x86 can today be considered an incredibly mature ISA and nothing substantial has really changed since the switch from 32-bit to 64-bit addressable architectures. The individual additions of things like AVX have been only iterative, not yielding the kind of game-changing leaps of yesteryear such as the jump from single core to multicore processors. From a purely design perspective, it might make more sense for development effort to be spent instead on improving what is already there with additional die space afforded by new lithography. Torvalds himself has railed on the endless barrage of new extensions.

I hope AVX-512 dies a painful death, and that Intel starts fixing real problems instead of trying to create magic instructions to then create benchmarks that they can look good on. I hope Intel gets back to basics: gets their process working again, and concentrate more on regular code that isn’t HPC or some other pointless special case.

And he isn’t alone. Others have raised concern over how unsustainable these market segmented feature sets are becoming.

From a maintenance point of view, it is unreasonable to ask every package manager to compile different versions of projects for different versions of ISAs, to tune for differently platforms, and somehow manage to always build and ship them. Now you’re going to add all of that on top of keeping up with the existing burdens of package management?

I’m not necessarily against specialized instructions that increase the efficiency of certain operations. What makes this an alarming development is that they are being inseperably tied to other “features” that one ought not tolerate. Like with cable television channels, it is not possible to pick and choose CPU features a la carte, instead one is at the mercy of the corporate bundle. If one must utilize x86_64-v3 builds of distributions, it is not possible to arrange without also encumbering one’s device with the restrictive Mangement Engine or PSP.

So now we have Intel and AMD reaching their feet over to the gas pedal to apply a little more throttle down the highway to dystopia in the way of force-obsoleting perfectly functional microarchitecture generations. They always start with enterprise “its just sensible for corporate deployments” but remember that Intel vPro with ME were also just for enterprise purposes at first. They will eventually extinguish the lingering systems which afford owner-operators just a little bit too much freedom.

And that is why I call it the deadending of x86. Those who value autonomy in their computing are afforded no path to modern, performant x86 hardware. Freedom-supporting x86 is a road that leads to a terminated end. No turnaround, one way only. This is also why I assert that the only long term winning move is to abandon x86 in its entirety. Those old Librebooted thinkpads and server boards that the FSF likes to champion are eventually going to fall out of the scope of build targets. At first only in compile selections, and then later in bit rot and technical debt. One might consider exiting now while the cost of migration remains relatively low.