Question

J'ai ajouté la configuration x64 à mon projet C ++ pour compiler la version 64 bits de mon application. Tout semble bien, mais le compilateur donne l'avertissement suivant:

`cl : Command line warning D9002 : ignoring unknown option '/arch:SSE2'`

Y at-il d'optimisation SSE2 vraiment pas disponible pour les projets 64 bits?

Était-ce utile?

La solution

Semble être tous les processeurs 64 bits a SSE2. Depuis l'option du compilateur toujours activé par défaut pas nécessaire pour l'activer manuellement.

De Wikipedia :

  

instructions SSE : L'architecture AMD64 originale adoptée SSE et SSE2 d'Intel comme des instructions de base. SSE3 ont été ajoutées en Avril 2005. SSE2 remplace l'instruction x87 jeu de précision IEEE 80 bits de avec le choix de l'IEEE 32 bits ou 64 bits mathématiques à virgule flottante. Cela permet des opérations à virgule flottante compatible avec de nombreux autres processeurs modernes. Les instructions SSE et SSE2 ont également été étendues pour fonctionner sur les huit nouveaux registres XMM. SSE et SSE2 sont disponibles en mode 32 bits dans les processeurs x86 modernes; Cependant, si elles sont utilisées dans les programmes, ces programmes ne fonctionnent que sur les systèmes 32 bits avec les processeurs qui ont la fonction. Ce n'est pas un problème dans les programmes 64 bits, tous les processeurs AMD64 ont SSE et SSE2, donc en utilisant les instructions SSE et SSE2 au lieu des instructions x87 ne réduit pas l'ensemble des machines sur lesquelles les programmes x64 peuvent être exécutés . SSE et SSE2 sont généralement plus rapides que, et en double la plupart des caractéristiques des instructions x87 traditionnelles, MMX et 3DNow!.

Autres conseils

Je comprends l'avertissement apparaissant si vous choisissez SSE2, althought son toujours stupide. Cependant, vous obtenez toujours l'avertissement si vous sélectionnez / arch: AVX. Je suis sûr que ça va se fixe avec SP1. Son juste un peu et une gêne gêne occasionnée.

L'option compilateur / arch: AVX ne fonctionnera pas sur les anciens processeurs dont vous avez besoin donc de vous assurer que votre CPU supporte. Je suis tombé sur ce problèmes quand je devais recompiler le paquet 1,12 tensorflow pour mon ancien CPU Xeon qui ne prend pas en charge.

Je suis sous tension / arc: SSE2 (comme Kirill) affiché ci-dessus mais obtenir exactement le même problème. Le compilateur Microsoft émet un avertissement (INFO) que cette option sera ignorée.

Command line warning D9002 : ignoring unknown option '/arch:SSE2'

De la documentation Microsoft je crois comprendre que cette option est disponible uniquement sur x86 et n'a pas de sens pour moi non plus.

Cependant sur MSDN dit:

/arch:SSE and /arch:SSE2 are only available when you compile for the x86 platform.

et que SSE est utilisé sur x64 de toute façon. D'où je viens supprimé l'option maintenant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top