如何判断 Linux 机器是否支持 AVX/AVX2 指令?

新手上路,请多包涵

我在 SUSE Linux Enterprise 1011 机器上。我向运行英特尔处理器的机器群发起回归。我的一些测试失败了,因为我的工具是使用需要 AVX/AVX2 指令支持的库构建的。我收到 Illegal exception 错误。

在 Linux 中,我可以使用任何命令来确定 CPU 代码/系列名称是什么?

我相信 AVX 和 AVX2 可以分别从英特尔 SandyBridge 和 Haswell 家族中获得。

原文由 user4979733 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 4.9k
2 个回答

在 linux(或 unix 机器)上,有关您的 cpu 的信息位于 /proc/cpuinfo 中。您可以手动或使用 grep 命令( grep flags /proc/cpuinfo )从那里提取信息。

大多数编译器也会自动定义 __AVX2__ 所以你也可以检查一下。

原文由 hr0m 发布,翻译遵循 CC BY-SA 3.0 许可协议

运行此命令:

 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管理程序 lahf_lm arat tsc_adjust xsaveopt

原文由 khrm 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题