Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Spécifie l'architecture pour la génération de code sur x64. Ces commutateurs s’appliquent à la version de ciblage x64 du compilateur. Pour plus d’informations sur /arch les autres architectures cibles, consultez /arch (x86), /arch (ARM64) et /arch (ARM).
Syntaxe
/arch:[SSE2AVX10.2|AVX10.1|AVX512|||AVX2|SSE4.2AVX]
Les 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.
/arch:AVX10.2
Active Intel Advanced Vector Extensions 10 version 2.
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.2utilise l’ensemble complet d’instructions SSE pour les calculs de vecteurs scalaires, vectoriels et entiers à virgule flottante.AVXa 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-512a 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-512de 512 bits et peut être modifiée en 256 bits à l’aide de l’indicateur/vlen.AVX10.1ajoute d’autres instructions en plus deAVX-512. La longueur du vecteur par défaut estAVX10.1de 256 bits et peut être modifiée en 512 bits à l’aide de l’indicateur/vlen. Cette option a été introduite dans Visual Studio 2022 17.13.AVX10.2développe le jeu d’instructions introduit dansAVX10.1. La longueur du vecteur par défaut estAVX10.2de 256 bits et peut être augmentée à 512 bits à l’aide de l’indicateur/vlen.AVX10.2ajoute des instructions qui sont des améliorations des instructions héritées et des instructions d’accélération multimédia. Pour plus d’informations sur les nouvelles instructions, consultez la section 3.1.4 dans la spécification de l’architecture Intel Advanced Vector Extensions 10.2. Les instructions associées à l’IA dans ce document sont prises en charge via des intrinsèques MSVC au lieu d’être émises directement, car MSVC ne prend pas en charge leurs types de données. Cette option de compilateur a été introduite dans Visual Studio 2026.
Chaque /arch option peut également activer l’utilisation d’autres instructions nonvectorrices 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, /arch:AVX10.1ou /arch:AVX10.2 compilateur est spécifiée.
Le __AVX2__ symbole de préprocesseur est défini lorsque l’option /arch:AVX2, , /arch:AVX512/arch:AVX10.1ou /arch:AVX10.2 compilateur est spécifiée.
Les __AVX512F__symboles , , __AVX512DQ____AVX512VL____AVX512CD____AVX512BW__et préprocesseur sont définis lorsque l’option /arch:AVX512, /arch:AVX10.1ou /arch:AVX10.2 compilateur est spécifiée.
Le __AVX10_VER__ symbole de préprocesseur est défini lorsque l’option /arch:AVX10.1 du compilateur est /arch:AVX10.2 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. La prise en charge a /arch:AVX10.2 été ajoutée dans Visual Studio 2026.
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>> 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