/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:
[SSE2
AVX10.1
|AVX512
|||AVX2
|SSE4.2
AVX
]
Arguments
/arch:SSE2
Active les extensions SIMD Intel Streaming 2. Le jeu d’instructions par défaut est SSE2 si aucune option n’est /arch
spécifiée.
/arch:SSE4.2
Active Intel Streaming SIMD Extensions 4.2.
/arch:AVX
Active les extensions de vecteurs avancées Intel.
/arch:AVX2
Active Intel Advanced Vector Extensions 2.
/arch:AVX512
Active Intel Advanced Vector Extensions 512.
/arch:AVX10.1
Active Intel Advanced Vector Extensions 10 version 1.
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. Vous pouvez également utiliser l’intrinsèque __check_isa_support
pour rechercher les fonctionnalités processeur plus fréquemment utilisées.
/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.
SSE4.2
utilise l’ensemble complet d’instructions SSE pour les calculs de vecteurs scalaires, vectoriels et entiers à virgule flottante.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’instructions qui autorise les vecteurs 512 bits, le masquage, l’arrondi incorporé/diffusion et de nouvelles instructions. La longueur du vecteur par défaut estAVX-512
de 512 bits et peut être modifiée en 256 bits à l’aide de l’indicateur/vlen
.AVX10.1
ajoute d’autres instructions en plus deAVX-512
. La longueur du vecteur par défaut estAVX10.1
de 256 bits et peut être modifiée en 512 bits à l’aide de l’indicateur/vlen
.
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 /arch:AVX
, , /arch:AVX2
/arch:AVX512
ou /arch:AVX10.1
compilateur est spécifiée.
Le __AVX2__
symbole de préprocesseur est défini lorsque l’option /arch:AVX2
, /arch:AVX512
ou /arch:AVX10.1
compilateur est spécifiée.
Les __AVX512F__
symboles , , __AVX512BW__
__AVX512DQ__
__AVX512CD__
et __AVX512VL__
les symboles de préprocesseur sont définis lorsque l’option /arch:AVX512
du compilateur ou /arch:AVX10.1
du compilateur est spécifiée.
Le __AVX10_VER__
symbole de préprocesseur est défini lorsque l’option du /arch:AVX10.1
compilateur est spécifiée. Elle indique la version AVX10 que le compilateur cible. 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.
La prise en charge a /arch:AVX10.1
été ajoutée dans Visual Studio 2022.
Pour définir l’option du /arch
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.
Modifiez la propriété Enable Enhanced Instruction Set .
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