archspec / archspec-json

Other
20 stars 32 forks source link

Add CPU family/model information as a top level attribute #85

Open alalazo opened 6 months ago

alalazo commented 6 months ago

In this PR we introduce a top-level attribute with mappings from CPU family/model numbers to the corresponding microarchitecture names. At the moment this is a prototype to showcase a possible enhancement of the detection algorithm on x86_64 processors.

If the approach seems ok, then we need to add the remaining data points from https://en.wikichip.org/wiki/intel/cpuid and https://en.wikichip.org/wiki/amd/cpuid

boegel commented 6 months ago

https://en.wikichip.org/wiki/intel/cpuid shows that you can't distinguish between Skylake (Server), Cascade Lake, and Cooper Lake based on family/model info, so I'm not sure how that's going to work out, since there's a difference in supported instructions (like avx512ifma supported by Cooper Lake + Cascade Lake, but not Skylake, and avx512_vnni supported by Cascade Lake but not Cooper Lake & Skylake)...

alalazo commented 6 months ago

The idea is to prefilter the architectures we check for compatibility. Not sure it's worth merging this change, but I wanted to write the draft idea somewhere since on icelake I got a 3x speed-up on detection.