Как узнать, поддерживает ли машина Linux инструкции AVX/AVX2?
Я на машинах SUSE Linux Enterprise 10/11. Я запускаю свои регрессии на ферму машин с процессорами Intel. Некоторые из моих тестов терпят неудачу, потому что мои инструменты построены с использованием библиотеки, которая требует поддержки инструкций AVX/AVX2. Я получаю Illegal exception
ошибка.
в Linux есть ли какие-либо команды, которые я могу использовать для определения кода/фамилии процессора?
Я считаю, что AVX и AVX2 доступны дальше от семейства Intel SandyBridge и Haswell соответственно.
4 ответов
на linux (или unix-машинах) информация о вашем процессоре находится в /proc/cpuinfo
. Вы можете извлечь информацию оттуда вручную или с помощью команды grep (grep flags /proc/cpuinfo
).
также большинство компиляторов автоматически определит __AVX2__
Так что вы можете проверить это.
выполните эту команду:
grep avx /proc/cpuinfo
или
grep avx2 /proc/cpuinfo
это даст вам:
флаги : ППУ вме де ЧОП ВСК ПМа Пае МРЗ cx8 апик сентября mtrr ЭПГ СМА cmov ПЭТ pse36 clflush ММХ fxsr SSE инструкций SSE2 набор системных вызовов СС ПХ pdpe1gb rdtscp лм constant_tsc arch_perfmon rep_good НОПЛ eagerfpu пни pclmulqdq файл VMX ssse3 cx16 псмд sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer ня команду xsave, Аух поддержкой AVX2 гипервизора lahf_lm Арат tsc_adjust xsaveopt
вы можете проверить наличие наборов инструкций SIMD и других функций процессора, изучив /proc/cpuinfo
, например,
$ grep avx2 /proc/cpuinfo
flags : fpu vme ... sse4_1 sse4_2 ... bmi1 avx2 ... bmi2 ...