如何判断 Linux 机器是否支持 AVX/AVX2 指令?
How to tell if a Linux machine supports AVX/AVX2 instructions?
我在 SUSE Linux Enterprise 10/11 机器上。我对机器农场 运行 英特尔处理器进行了回归。我的一些测试失败了,因为我的工具是使用需要 AVX/AVX2 指令支持的库构建的。我收到 Illegal exception
错误。
在 Linux 中,是否有任何命令可以用来确定 CPU code/family 名称是什么?
我相信 AVX 和 AVX2 分别从 Intel SandyBridge 和 Haswell 系列开始提供。
运行 这个命令:
grep avx /proc/cpuinfo
或
grep avx2 /proc/cpuinfo
这会给你:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx avx2 hypervisor lahf_lm arat tsc_adjust xsaveopt
您可以通过检查 /proc/cpuinfo
来测试 SIMD 指令集和其他 CPU 功能的可用性,例如
$ grep avx2 /proc/cpuinfo
flags : fpu vme ... sse4_1 sse4_2 ... bmi1 avx2 ... bmi2 ...
在 linux(或 unix 机器)上,关于您的 cpu 的信息在 /proc/cpuinfo
中。您可以手动或使用 grep 命令从那里提取信息 (grep flags /proc/cpuinfo
)。
此外,大多数编译器会自动定义 __AVX2__
,因此您也可以检查它。
您也可以运行 lscpu
并查看最后的说明列表。
我在 SUSE Linux Enterprise 10/11 机器上。我对机器农场 运行 英特尔处理器进行了回归。我的一些测试失败了,因为我的工具是使用需要 AVX/AVX2 指令支持的库构建的。我收到 Illegal exception
错误。
在 Linux 中,是否有任何命令可以用来确定 CPU code/family 名称是什么?
我相信 AVX 和 AVX2 分别从 Intel SandyBridge 和 Haswell 系列开始提供。
运行 这个命令:
grep avx /proc/cpuinfo
或
grep avx2 /proc/cpuinfo
这会给你:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx avx2 hypervisor lahf_lm arat tsc_adjust xsaveopt
您可以通过检查 /proc/cpuinfo
来测试 SIMD 指令集和其他 CPU 功能的可用性,例如
$ grep avx2 /proc/cpuinfo
flags : fpu vme ... sse4_1 sse4_2 ... bmi1 avx2 ... bmi2 ...
在 linux(或 unix 机器)上,关于您的 cpu 的信息在 /proc/cpuinfo
中。您可以手动或使用 grep 命令从那里提取信息 (grep flags /proc/cpuinfo
)。
此外,大多数编译器会自动定义 __AVX2__
,因此您也可以检查它。
您也可以运行 lscpu
并查看最后的说明列表。