Támogatott x86-64 mikroarchitektúra verzió lekérdezése
Probléma: egyre több rendszer követeli meg az x86-64 mikroarchitektúra egy bizonyos verziójának a támogatását, te pedig tudni szeretnéd, hogy a processzorod melyiket támogatja.
Probléma: egyre több rendszer követeli meg az x86-64 mikroarchitektúra egy bizonyos verziójának a támogatását, te pedig tudni szeretnéd, hogy a processzorod melyiket támogatja.
Megoldás: ezzel a rövid scripttel lekérdezheted a processzorod által támogatott x86-64 mikroarchitektúra verziót:
#!/usr/bin/awk -f
BEGIN {
while (!/flags/) if (getline < "/proc/cpuinfo" != 1) exit 1
if (/lm/&&/cmov/&&/cx8/&&/fpu/&&/fxsr/&&/mmx/&&/syscall/&&/sse2/) level = 1
if (level == 1 && /cx16/&&/lahf/&&/popcnt/&&/sse4_1/&&/sse4_2/&&/ssse3/) level = 2
if (level == 2 && /avx/&&/avx2/&&/bmi1/&&/bmi2/&&/f16c/&&/fma/&&/abm/&&/movbe/&&/xsave/) level = 3
if (level == 3 && /avx512f/&&/avx512bw/&&/avx512cd/&&/avx512dq/&&/avx512vl/) level = 4
if (level > 0) { print "CPU supports x86-64-v" level; exit level + 1 }
exit 1
}
Script kimenete Intel Haswell architektúra esetén:
CPU supports x86-64-v3
Mik ezek a verziók?
Az x86-64 mikroarchitektúrát (ismert még AMD64/x64 néven is) használó első processzor az AMD Opteron volt, 2003 áprilisában. Ez az immár 20 éves mikroarchitektúra a bemutatásakor modernnek számított, manapság viszont már nem az. Az évek során az egyre fejlettebb processzorok új utasításkészleteket hoztak, amiknek hála gyorsabb, hatékonyabb és egyes esetekben biztonságosabb alkalmazások fejleszthetőek.
2020-ban az AMD, az Intel, a Red Hat és a SUSE megegyezett abban, hogy x86-64 mikroarchitektúra verziókat vezetnek be. Minden egyes verzió egy-egy nagyobb processzorfejlődési mérföldkövet jelent. Ennek hála az operációs rendszer, illetve alkalmazás rendszerkövetelményeknél nem kell megadni, hogy az x86-64 mikroarchitektúrán felül milyen utasítások kellenek a futtatáshoz. Elég csak a verziót megadni, és akkor mindenkinek tiszta a minimum feltétel.
Mit csinál a script?
A /proc/cpuinfo
tartalmazza az összes processzorral kapcsolatos információt. Ennek a flags
sorában vannak a támogatott utasítások. A script ez alapján megnézi, hogy az adott architektúra verzió minden utasításkészlete jelent van-e itt. Ha igen, akkor kompatibilisnak jelöli a processzort.