6 ms·
Announce was here: https://discourse.ubuntu.com/t/introducing-architecture-variants-amd64v3-now-available-in-ubuntu-25-10/71312 https://discourse.ubuntu.com/t/i
by mobilio 11mo ago
Announce was here:
https://discourse.ubuntu.com/t/introducing-architecture-variants-amd64v3-now-available-in-ubuntu-25-10/71312 https://discourse.ubuntu.com/t/introducing-architecture-vari...
and key point:
"Previous benchmarks we have run (where we rebuilt the entire archive for x86-64-v3 57) 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."
- juujian 11mo agoAre there any use cases where that 1% is worth any hassle whatsoever?
- adgjlsfhk1 11mo agoit's very no uniform. 99% see no change, but 1% see 1.5-2x better performance
- Insanity 11mo agoI read it as, across the board a 1% performance improvement. Not that only 1% of packages get a significant improvement.
- IAmBroom 11mo agoIn a complicated system, a 1% overall benefit might well be because of a 10% improvement in just 10% of the system (or more in a smaller contributor).
- darkwater 11mo agoThe announcement is pretty clear on this: > Previous benchmarks (...) 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.
- 2b3a51 11mo agoI'm wondering if 'somewhat numerical in nature' relates to lpack/blas and similar libraries that are actually dependencies of a wide range of desktop applications?
- adgjlsfhk1 11mo agoblas and lapack generally do manual multi-versioning by detecting CPU features at runtime. This is more useful 1 level up the stack in things like compression/decompression, ode solvers, image manipulation and so on that are still working with big arrays of data, but don't have a small number of kernels (or as much dev time), so they typically rely on compilers for auto-vectorization
- dehrmann 11mo agoAnything at scale. 1% across FAANG is huge.
- Havoc 11mo agoArguable same across consumers too. It’s just harder to measure than central datacenters
- notatoad 11mo agonah, performance benefits are mostly wasted on consumers, because consumer hardware is very infrequently CPU-constrained. in a datacentre, a 1% improvement could actually mean you provision 99 CPUs instead of 100. but on your home computer, a 1% CPU improvement means that your network request completes 0.0001% faster, or your file access happens 0.000001% faster, and then your CPU goes back to being idle. an unobservable benefit is not a benefit.
- dabinat 11mo agoIf those kinds of optimizations are on the table, why would they not already be compiling and optimizing from source?
- darkwater 11mo agoI'm not an hyperscaler, I run a thousand machines. If by just changing the base image I use to build - in an already automated process - those machines, well, the optimization is basically for free. Well, unless it triggers some new bug that was not there before.
- bandrami 11mo agoIsn't Facebook still using PHP?
- speed_spread 11mo agoCompiled PHP. I'm pretty sure they ran the numbers.
- wongarsu 11mo agoIf every computer built in the last decade gets 1% faster and all we have to pay for that is a bit of one-off engineering effort and a doubling of the storage requirement of the ubuntu mirrors that seems like a huge win If you aren't convinced by your ubuntu being 1% faster, consider how many servers, VMs and containers run ubuntu. Millions of servers using a fraction of a percent less energy multiplies out to a lot of energy
- vladms 11mo agoDon't have a clear opinion, but you have to factor in all the issues that can be due to different versions of software. Think of unexposed bugs in the whole stack (that can include compiler bugs but also software bugs related to numerical computation or just uninitialized memory). There are enough heisenbugs without worrying that half the servers run on a slightly different software. It's not for nothing that some time ago "write once, run everywhere" was a selling proposition (not that it was actually working in all cases, but definitely working better than alternatives).
- sumtechguy 11mo agoThat comes out to about 1.5 hours faster per week for many tasks. If you are running full tilt. But that seems like an ok easy win.
- duskdozer 11mo agohow much energy would we save if every website request weren't loaded down with 20MB of ads and analytics :(
- alkonaut 11mo agoIf I recompile a program to fully utilize my cpu better (use AVX or whatever) then if my program takes 1 second to execute instead of 2, it likely did not use half the _energy_.
- darkwater 11mo agoObviously not. But scale it out to a fleet of 1000 servers running your program continuously, you can now shut down 10 for the same exact workload.
- Aissen 11mo agoYou need 100 servers. Now you need to only buy 99. Multiply that by a million, and the economies of scale really matter.
- iso1631 11mo ago1% is less than the difference between negotiating with a hangover or not.
- gpm 11mo agoWhat a strange comparison. If you're negotiating deals worth billions of dollars, or even just millions, I'd strongly suggest not doing so with a hangover.
- Pet_Ant 11mo ago> If you're negotiating deals worth billions of dollars, or even just millions, I'd strongly suggest not doing so with a hangover. ...have you met salespeople? Buying lap dances is a legitimate business expense for them. You'd be surprised how much personal rapport matters and facts don't. In all fairness, I only know about 8 and 9 figure deals, maybe at 10 and 11 salespeople grow ethics...
- bregma 11mo agoI strongly suspect ethics are inversely proportional to the size of the deal.
- glenstein 11mo agoThat's more an indictment of sales culture than a critique of computational efficiency.
- squeaky-clean 11mo agoWell sure, because you want the person trying buy something from you for a million dollars to have a hangover.
- PeterStuer 11mo agoA lott of improvements are very incremental. In agregate, they often compound and are vey significant. If you would only accept 10x improvements, I would argue progress would be very small.
- colechristensen 11mo agoVery few people are in the situation where this would matter. Standard advice: You are not Google. I'm surprised and disappointed 1% is the best they could come up with, with numbers that small I would expect experimental noise to be much larger than the improvement. If you tell me you've managed a 1% improvement you have to do a lot to convince me you haven't actually made things 5% worse.
- noir_lord 11mo agoNo but a lot of people are buying a lot of compute from Google, Amazon and Microsoft. At scale marginal differences do matter and compound.
- wat10000 11mo agoIt's rarely going to be worth it for an individual user, but it's very useful if you can get it to a lot of users at once. See https://www.folklore.org/Saving_Lives.html https://www.folklore.org/Saving_Lives.html "Well, let's say you can shave 10 seconds off of the boot time. Multiply that by five million users and thats 50 million seconds, every single day. Over a year, that's probably dozens of lifetimes. So if you make it boot ten seconds faster, you've saved a dozen lives. That's really worth it, don't you think?" I put a lot of effort into chasing wins of that magnitude. Over a huge userbase, something like that has a big positive ROI. These days it also affects important things like heat and battery life. The other part of this is that the wins add up. Maybe I manage to find 1% every couple of years. Some of my coworkers do too. Now you're starting to make a major difference.
- rossjudson 11mo agoAny hyperscaler will take that 1% in a heartbeat.
- locknitpicker 11mo ago> Are there any use cases where that 1% is worth any hassle whatsoever? I don't think this is a valid argument to make. If you were doing the optimization work then you could argue tradeoffs. You are not, Canonical is. Your decision is which image you want to use, and Canonical is giving you a choice. Do you care about which architecture variant you use? If you do, you can now pick the one that works best for you. Do you want to win an easy 1% performance gain? Now you have that choice.
- gwbas1c 11mo ago> some packages, mostly those that are somewhat numerical in nature, improve more than that Perhaps if you're doing CPU-bound math you might see an improvement?
- ilaksh 11mo agoThey did say some packages were more. I bet some are 5%, maybe 10 or 15. Maybe more. Well one example could be llama.cpp . It's critical for them to use every single extension the CPU has move more bits at a time. When I installed it I had to compile it. This might make it more practical to start offering OS packages for things like llama.cpp I guess people that don't have newer hardware aren't trying to install those packages. But maybe the idea is that packages should not break on certain hardware. Blender might be another one like that which really needs the extensions for many things. But maybe you so want to allow it to be used on some oldish hardware anyway because it still has uses that are valid on those machines.
- godelski 11mo ago> where that 1% is worth any hassle You'll need context to answer your question, but yes there are cases. Let's say you have a process that takes 100hrs to run and costs $1k/hr. You save an hour and $1k every time you run the process. You're going to save quite a bit. You don't just save the time to run the process, you save literal time and everything that that costs (customers, engineering time, support time, etc). Let's say you have a process that takes 100ns and similarly costs $1k/hr. You now run in 99ns. Running the process 36 million times is going to be insignificant. In this setting even a 50% optimization probably isn't worthwhile (unless you're a high frequency trader or something) This is where the saying "premature optimization is the root of all evil" comes from! The "premature" part is often disregarded and the rest of the context goes with it. Here's more context to Knuth's quote[0]. There is no doubt that the holy grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only after that code has been identified. Knuth said: "Get a fucking profiler and make sure that you're optimizing the right thing". He did NOT say "don't optimize". So yes, there are plenty of times where that optimization will be worthwhile. The percentages don't mean anything without the context. Your job as a programmer is to determine that context. And not just in the scope of your program, but in the scope of the environment you expect a user to be running on. (i.e. their computer probably isn't entirely dedicated to your program) [0] https://dl.acm.org/doi/10.1145/356635.356640 https://dl.acm.org/doi/10.1145/356635.356640 (alt) https://sci-hub.se/10.1145/356635.356640 https://sci-hub.se/10.1145/356635.356640
- ninkendo 11mo ago> show that most packages show a slight (around 1%) performance improvement This takes me back to arguing with Gentoo users 20 years ago who insisted that compiling everything from source for their machine made everything faster. The consensus at the time was basically "theoretically, it's possible, but in practice, gcc isn't really doing much with the extra instructions anyway". Then there's stuff like glibc which has custom assembly versions of things like memcpy/etc, and selects from them at startup. I'm not really sure if that was common 20 years ago but it is now. It's cool that after 20 years we can finally start using the newer instructions in binary packages, but it definitely seems to not matter all that much, still.
- Amadiro 11mo agoIt's also because around 20 years ago there was a "reset" when we switched from x86 to x86_64. When AMD introduced x86_64, it made a bunch of the previously optional extension (SSE up to a certain version etc) a mandatory part of x86_64. Gentoo systems could already be optimized before on x86 using those instructions, but now (2004ish) every system using x86_64 was automatically always taking full advantage of all of these instructions*. Since then we've slowly started accumulating optional extensions again; newer SSE versions, AVX, encryption and virtualization extensions, probably some more newfangled AI stuff I'm not on top of. So very slowly it might have started again to make sense for an approach like Gentoo to exist**. * usual caveats apply; if the compiler can figure out that using the instruction is useful etc. ** but the same caveats as back then apply. A lot of software can't really take advantage of these new instructions, because newer instructions have been getting increasingly more use-case-specific; and applications that can greatly benefit from them will already have alternative code-pathes to take advantage of them anyway. Also a lot of the stuff happening in hardware acceleration has moved to GPUs, which have a feature discovery process independent of CPU instruction set anyway.
- mikepurvis 11mo ago> AVX, encryption and virtualization I would guess that these are domain-specific enough that they can also mostly be enabled by the relevant libraries employing function multiversioning.
- pizlonator 11mo agoThat 1% number is interesting but risks missing the point. I bet you there is some use case of some app or library where this is like a 2x improvement.
- alternatex 11mo agoAggregated metrics are always useless as they tend to show interesting and sometimes exciting data that in actuality contains zero insight. I'm always weary of people making decisions based on aggregate metrics. Would be nice to know the per app metrics.
- dang 11mo agoThanks - we've merged the comments from https://news.ycombinator.com/item?id=45772579 https://news.ycombinator.com/item?id=45772579 into this thread, which had that original source.
- jwrallie 11mo agoIs it worth it losing the ability to just put your hdd on your older laptop and booting it in an emergency?
- horizion2025 11mo agoHow many additions have there even been outside of AVX-x? And even AVX-2 is from 2011. If we ignore AVX-x the last I can recall are the few instructions added in the manipulation sets BMI/ABM, but they are Haswell/Piledriver/Jaguar era (2012-2013). While some specific cases could benefit, doesn't seem like a goldmine of performance improvements. Further, maybe it has not been a focus for compiler vendors to generate good code for these higher-level archs if few are using the feature. So Ubuntu's move could improve that.