2016-05-27 13 views
6

Sono su macchine SUSE Linux Enterprise 10/11. Lancio le mie regressioni in una farm di macchine che eseguono processori Intel. Alcuni dei miei test falliscono perché i miei strumenti sono costruiti usando una libreria che richiede il supporto delle istruzioni AVX/AVX2. Ottengo un errore Illegal exception. In Linux, c'è qualche comando che posso usare per determinare quale è il codice/nome della famiglia della CPU? Credo che AVX e AVX2 siano disponibili in poi dalla famiglia Intel SandyBridge e Haswell, rispettivamente.Linux: come stabilire se una macchina supporta le istruzioni AVX/AVX2?

risposta

6

su Linux (o macchine unix) le informazioni sulla tua CPU è in /proc/cpuinfo. È possibile estrarre le informazioni da lì a mano o con un comando grep (grep flags /proc/cpuinfo).

Inoltre, la maggior parte dei compilatori definirà automaticamente __AVX2__ in modo da poter controllare anche quello.

14

eseguire questo comando:

grep avx /proc/cpuinfo 

O

grep avx2 /proc/cpuinfo 

Questo vi darà:

bandiere: 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 sse 4_2 X2apic POPCNT tsc_deadline_timer AES xsave avx AVX2 hypervisor lahf_lm Arat tsc_adjust xsaveopt

2

È possibile verificare la disponibilità di insiemi di istruzioni SIMD ed altre caratteristiche della CPU esaminando /proc/cpuinfo, ad esempio

$ grep avx2 /proc/cpuinfo 
flags  : fpu vme ... sse4_1 sse4_2 ... bmi1 avx2 ... bmi2 ... 
Problemi correlati