Quelle est la différence entre les options de cflgs sse de -msse, -msse2, -mssse3, -msse4 rtc ..? et comment déterminer?
Pour la GCC CFLAGS
options: -msse
-msse2
-mssse3
-msse4
-msse4.1
-msse4.2
. Ils sont exclusifs dans leur utilisation ou peuvent l'être utilisés ensemble?
Ma compréhension est que le choix d'lequel dépend de la cible arc, dont le programme sera exécuté sur, il supporte ou pas, est-ce correct?
Si oui, comment pourrais-je savoir ce que l'ess ma cible des supports de voûte? Dans Linux, j'cat /proc/cpuinfo, mais si mac ou Windows?
Merci!
source d'informationauteur yaya
Vous devez vous connecter pour publier un commentaire.
La
-m
de commutation peut être utilisé en parallèle, de plus certains d'entre eux sont implicites par l'architecture ou d'autres commutateurs. Par exemple, si vous créez des code pour x86_64,-msse -msse2
est toujours activé.Pour le code destiné à s'exécuter sur votre système, vous devez choisir
-march=native
qui permet de sélectionner ce qui est disponible sur votre processeur. Par exemple, si vous avez un Sandy Bridge, cela permettra de-msse -msse2 -msse3 -mssse3 -msse4 -msse4.1 -msse4.2 -mavx
.Si vous souhaitez spécifier en détail la question du jeu d'instructions pour l'utilisation, vous ne devez utiliser ce qui est disponible, n'est pas toujours le "plus tard". Le "dernier" est actuellement
-mavx2
que je ne recommande pas: Le premier traitement de soutien, il sera disponible en 2013.