2016-05-27 13 views
6

Ich bin auf SUSE Linux Enterprise 10/11 Maschinen. Ich starte meine Regressionen auf eine Farm von Maschinen mit Intel-Prozessoren. Einige meiner Tests schlagen fehl, weil meine Tools mit einer Bibliothek erstellt wurden, die AVX/AVX2-Anweisungen unterstützt. Ich bekomme einen Illegal exception Fehler. Gibt es in Linux irgendwelche Befehle, die ich verwenden kann, um festzustellen, was der CPU-Code/Familienname ist? Ich glaube AVX und AVX2 sind von der Intel SandyBridge bzw. Haswell Familie erhältlich.Linux: Wie kann ich feststellen, ob ein Computer AVX/AVX2-Anweisungen unterstützt?

Antwort

6

Unter Linux (oder Unix-Maschinen) ist die Information über Ihre CPU in /proc/cpuinfo. Sie können Informationen von dort per Hand oder mit einem grep-Befehl (grep flags /proc/cpuinfo) extrahieren.

Auch die meisten Compiler definieren automatisch __AVX2__, so dass Sie auch das überprüfen können.

14

Führen Sie diesen Befehl ein:

grep avx /proc/cpuinfo 

Oder

grep avx2 /proc/cpuinfo 

Diese Sie geben:

Fahnen: FPU vme de pse tsc msr PAE mce CX8 APIC sep mtrr PGE mca cmov pat pse36 klflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm konstant_tsc arch_perfmon rep_good nopl eagerfpu pni pclmulqdq vmx sss3 cx16 pcd sse4_1 sse 4_2 x2apic popcnt tsc_deadline_timer aes XSAVE AVX AVX2 Hypervisor lahf_lm ARAT tsc_adjust xsaveopt

2

Sie für die Verfügbarkeit von SIMD-Befehlssätze und andere CPU-Funktionen untersuchen /proc/cpuinfo testen können, beispielsweise

$ grep avx2 /proc/cpuinfo 
flags  : fpu vme ... sse4_1 sse4_2 ... bmi1 avx2 ... bmi2 ... 
Verwandte Themen