/arch
(x64)
Spécifie l'architecture pour la génération de code sur x64. Pour plus d’informations sur /arch
les autres architectures cibles, consultez /arch
(x86), /arch
(ARM64) et /arch
(ARM).
Syntaxe
/arch:
[AVX
||AVX2
AVX512
]
Arguments
/arch:AVX
Active l'utilisation des instructions Intel Advanced Vector Extensions.
/arch:AVX2
Active l’utilisation des instructions Intel Advanced Vector Extensions 2.
/arch:AVX512
Permet d’utiliser des instructions Intel Advanced Vector Extensions 512.
Notes
L’option /arch
permet d’utiliser certaines extensions de jeu d’instructions, en particulier pour le calcul vectoriel, disponibles dans les processeurs d’Intel et AMD. En général, les processeurs introduits plus récemment peuvent prendre en charge des extensions au-delà des extensions prises en charge par les processeurs plus anciens, bien que vous deviez consulter la documentation d’un processeur particulier ou tester la prise en charge de l’extension de jeu d’instructions à l’aide __cpuid
d’une extension de jeu d’instructions.
/arch
affecte uniquement la génération de code pour les fonctions natives. Lorsque vous utilisez /clr
pour compiler, /arch
n’a aucun effet sur la génération de code pour les fonctions managées.
Les extensions de processeur présentent les caractéristiques suivantes :
Le mode par défaut utilise des instructions SSE2 pour les calculs à virgule flottante scalaire et vectorielle. Ces instructions permettent de calculer avec des vecteurs 128 bits de précision unique, double précision et 1, 2, 4 ou 8 octets, ainsi que des valeurs à virgule flottante scalaire à précision unique et double précision.
AVX
a introduit un autre encodage d’instructions pour les instructions scalaires à virgule flottante et vectorielle. Il autorise les vecteurs de 128 bits ou de 256 bits, et zéro étend tous les résultats de vecteur à la taille complète du vecteur. (Pour la compatibilité héritée, les instructions vectorielles de style SSE conservent tous les bits au-delà du bit 127.) La plupart des opérations à virgule flottante sont étendues à 256 bits.AVX2
étend la plupart des opérations entières à des vecteurs 256 bits et permet d’utiliser des instructions FMA (Fused Multiply-Add).AVX-512
a introduit un autre formulaire d’encodage d’instruction qui autorise les vecteurs 512 bits, ainsi que certaines autres fonctionnalités facultatives. Des instructions pour d’autres opérations ont également été ajoutées.
Chaque /arch
option peut également activer l’utilisation d’autres instructions non vectorielles associées à cette option. Par exemple, il s’agit de l’utilisation de certaines instructions DMI quand /arch:AVX2
elles sont spécifiées.
Le __AVX__
symbole de préprocesseur est défini lorsque l’option ou /arch:AVX2
/arch:AVX512
l’option du /arch:AVX
compilateur est spécifiée. Le __AVX2__
symbole de préprocesseur est défini lorsque l’option /arch:AVX2
du compilateur est /arch:AVX512
spécifiée. Les __AVX512F__
symboles , __AVX512CD__
, __AVX512BW__
__AVX512DQ__
et __AVX512VL__
préprocesseur sont définis lorsque l’option du /arch:AVX512
compilateur est spécifiée. Pour plus d’informations, consultez Macros prédéfinies. L’option /arch:AVX2
a été introduite dans Visual Studio 2013 Update 2, version 12.0.34567.1. La prise en charge limitée de /arch:AVX512
Visual Studio 2017 a été ajoutée et développée dans Visual Studio 2019.
Pour définir l’option ou /arch:AVX2
/arch:AVX512
l’option /arch:AVX
du compilateur dans Visual Studio
Ouvrez la boîte de dialogue Pages de propriétés du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.
Sélectionnez la page de propriétés De configuration>C/C++>Génération de code.
Dans la zone de liste déroulante Activer le jeu d’instructions améliorés, choisissez Advanced Vector Extensions (/arch :AVX), Advanced Vector Extensions 2 (/arch :AVX2) ou Advanced Vector Extensions 512 (/arch :AVX512).
Pour définir cette option du compilateur par programmation
- Consultez EnableEnhancedInstructionSet.
Voir aussi
/arch
(Architecture processeur minimale)
Options du compilateur MSVC
Syntaxe de ligne de commande du compilateur MSVC