If you were willing to accept only the relatively high power variants it’d be easier.
For anyone not familiar with caniuse, its indispensable for modern web development. Say you want to put images on a web page. You've heard of webp. Can you use it?
At a glance you see the answer. 95% of global web users use a web browser with webp support. Its available in all the major browsers, and has been for several years. You can query basically any browser feature like this to see its support status.
Even the absolute most basic features that have been well supported for 30 years, like the HTML "div" element, cap out at 96%. Change the drop-down from "all users" to "all tracked" and you'll get a more representative answer.
Windows has specific platform requirements they spell out for each version - those are generally your best bet on x86. ARM devs have it way worse so I guess we shouldn’t complain.
The easiest thing would probably to specify the need for "x86-64-v3":
* https://en.wikipedia.org/wiki/X86-64#Microarchitecture_level...
RHEL9 mandated "x86-64-v2", and v3 is being considered for RHEL10:
> The x86-64-v3 level has been implemented first in Intel’s Haswell CPU generation (2013). AMD implemented x86-64-v3 support with the Excavator microarchitecture (2015). Intel’s Atom product line added x86-64-v3 support with the Gracemont microarchitecture (2021), but Intel has continued to release Atom CPUs without AVX support after that (Parker Ridge in 2022, and an Elkhart Lake variant in 2023).
* https://developers.redhat.com/articles/2024/01/02/exploring-...
AFAIK, that only specifies the user-space-visible instruction set extensions, not the presence and version of operating-system-level features like APIC or IOMMU.
You're often better picking a subset of CPU features you want to use and then sampling to see if it excludes something important.
But how? That’s the question.
It's also not monotonic, on both CPU and GPU sides features can go away later because either due to a hardware bug or the vendor lost interest in supporting it.
https://web.archive.org/web/20250616224354/https://www.cpu-m...
https://www.cpu-monkey.com/en/cpu-amd_ryzen_7_pro_8840u
A nice reminder to stick any page you find useful in the wayback machine and/or save a local copy.
I’m doing some OS work at the moment and running into this. I’m really surprised there’s no caniuse.com for cpu features. I’m planning on requiring support for all the features that have been in every cpu that shipped in the last 10+ years. But it’s basically impossible to figure that out. Especially across Intel and amd. Can I assume apic? Iommu stuff? Is acpi 2 actually available on all CPUs or do I need to have to have support for the old version as well? It’s very annoying.