Introducing architecture variants: amd64v3 now available in Ubuntu 25.10

I saw a link to this today on Facebook. Kind of a neat idea, I think.

Introducing architecture variants: amd64v3 now available in Ubuntu 25.10

Ubuntu prides itself on being among the most compatible Linux distributions. Compatibility is often a conscious trade-off against bleeding-edge performance. In Ubuntu 25.10, we have added support for packages that target specific silicon variants, meaning you can have your cake and eat it too!

Back in 2023 I wrote an article 66 talking about the history of the amd64/x86-64 architecture and described the “levels” x86-64-v2, -v3, and -v4 (often referred to as amd64v3, amd64v4, etc.). Since then, we’ve been working on a means to better exploit modern processors without compromising support for older hardware.

To do this, we have added the concept of an “architecture variant.” By making changes to dpkg, apt and Launchpad, we are able to build multiple versions of a package, each for a different level of the x86-64 architecture, meaning we can have packages that specifically target x86-64-v3, for example.

As a result, we’re very excited to share that in Ubuntu 25.10, some packages are available, on an opt-in basis, in their optimized form for the more modern x86-64-v3 architecture level.

What’s been done?
For 25.10 we were mostly focused on building the required infrastructure and have not yet rebuilt every package for the x84-64-v3 / amd64v3 architecture. Most packages in the main component have been rebuilt (around 2000 source packages). It is worth noting that these packages have not yet received the usual level of testing that most packages in Ubuntu receive. So while we expect them to work, early adopters might find some bugs.

For the upcoming 26.04 LTS release, we will rebuild amd64v3-enabled versions of all packages and test them in the same rigorous way as we test every other Ubuntu package.

Previous benchmarks we have run (where we rebuilt the entire archive for x86-64-v3 39) show that most packages show a slight (around 1%) performance improvement and some packages, mostly those that are somewhat numerical in nature, improve more than that.

Try it out
The vast majority of cloud instance types and machines manufactured within the last ten years will support x86-64-v3, and you can check for support on a machine like so:

$ ld.so --help | grep ‘-v[0-9]’
x86-64-v4 (supported, searched)
x86-64-v3 (supported, searched)
x86-64-v2 (supported, searched)
If your machine is supported, and you’d like to try out the new packages, you can opt-in to the x86-64-v3-enabled packages. First, install the latest version of dpkg:

sudo apt update sudo apt install dpkg
Then enable amd64v3 and update the packages, like so:

echo ‘APT::Architecture-Variants “amd64v3”;’ | sudo tee /etc/apt/apt.conf.d/99enable-amd64v3
sudo apt update
sudo apt upgrade
Note that apt may print that it is “downgrading” these packages – this is just a cosmetic thing and will be fixed in 26.04 as well.

If you do install the available amd64v3 versions of packages, you will not be able to transfer your hard-drive/SSD to an older machine that does not support x86-64-v3. Usually, we try to ensure that moving drives between systems like this would work. For 26.04 LTS, we’ll be working on making this experience cleaner, and hopefully provide a method of recovering a system that is in this state.

What’s next?
We are very excited about the future of architecture variants and will keep you posted along the way. We hope that early adopters see some benefits of making the most of their hardware. Let us know how you get on!

1 Like

It seems to me that is getting close to one of the reasons you would choose to use Gentoo… to optimize binaries for specific hardware.

There is no suggestion of compiling. They (Ubuntu) do it for you.

There remains the issue of USE flags in Gentoo… they allow you to choose various compile time options for a package… mostly whether to use certian libraries.
The kernel has zillions of compile time options… what you get in a binary kernel is someone elses choice of options, and it is usually OK. Packages also have options… I regularly complie R with options. Ubuntu has not embraced this aspect yet… but it might one day? I cant imagine anyone other than Ubuntu even thinking of it.

The other thing Ubuntu have not embraced, and the one which stops me, is init systems. I wish they would try that.

3 Likes