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

use*_*733 20 unix linux suse avx avx2

我在SUSE Linux Enterprise 10/11计算机上.我将回归发送到运行英特尔处理器的计算机的农场.我的一些测试失败是因为我的工具是使用需要AVX/AVX2指令支持的库构建的.我收到一个Illegal exception错误.

在Linux中,是否有任何命令可用于确定什么是CPU代码/系列名称?

我相信AVX和AVX2分别可以从Intel SandyBridge和Haswell系列开始.

khr*_*hrm 27

运行此命令:

grep avx /proc/cpuinfo
Run Code Online (Sandbox Code Playgroud)

要么

grep avx2 /proc/cpuinfo
Run Code Online (Sandbox Code Playgroud)

这会给你:

标志: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

  • `grep -o 'avx[^ ]*' /proc/cpuinfo` 将在 Skylake 桌面 CPU 上打印 avx avx2 (对每个核心重复)。(`grep -o` 只打印匹配的文本,而不是整行)。另一个选项是 `tr ' '\n' < /proc/cpuinfo | grep avx`。 (4认同)
  • 它不打印任何东西。这意味着什么? (2认同)
  • @CGFoX 没有输出意味着它不受支持。 (2认同)

hr0*_*r0m 18

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

大多数编译器也会自动定义,__AVX2__因此您也可以检查它.


小智 6

我喜欢使用这个命令:lscpu

那么具体来说: lscpu | grep avx


小智 5

您还可以运行lscpu并检查最后的说明列表。