Ho un processore Xeon W3550 che dovrebbe supportare il set di istruzioni SSE4.2 ma quando provo a utilizzare qualsiasi cosa dopo SSE2 nel mio programma c, ricevo un errore del compilatore, ad es.Impossibile utilizzare SSSE3 sulla CPU abilitata
#error "SSE4.2 instruction set not enabled"
Quando uso
$cat /procs/cpuinfo
rileva tutte le pertinenti set di istruzioni SSE ma
$cpuid
rileva solo SSE e SSE2.
Il mio sistema operativo è ubuntu 11.04 con kernel 2.6.38-11-generico.
Qualche idea su come risolvere questo problema? Grazie.
MODIFICA: un aggiornamento basato sul commento di Steve-o di seguito. I file di intestazione < * mmintrin.h> eseguono un controllo per la versione di sse a cui sono associati usando la direttiva del preprocessore #ifndef, ad es.
#ifndef __SSSE3__
#error "SSSE3 instruction set not enabled".
Quindi credo che la domanda è: perché è questo tornando falso, nonostante la CPU sia SSSE3 abilitato.
suona come una limitazione GCC, compilazione di istruzioni non è limitata alla piattaforma host o architettura. Si noterà solo il limite del processore in fase di esecuzione, con un errore di seg o simile. –