/arch
(x64)
Especifica la arquitectura para la generación de código en x64. Para más información sobre /arch
en otras arquitecturas de destino, consulte /arch
(x86), /arch
(ARM64) y /arch
(ARM).
Sintaxis
/arch:
[SSE2
AVX10.1
|AVX512
|||AVX2
|SSE4.2
AVX
]
Argumentos
/arch:SSE2
Habilita Intel Streaming SIMD Extensions 2. El conjunto de instrucciones predeterminado es SSE2 si no se especifica ninguna /arch
opción.
/arch:SSE4.2
Habilita Intel Streaming SIMD Extensions 4.2.
/arch:AVX
Habilita las extensiones de vector avanzado de Intel.
/arch:AVX2
Habilita Intel Advanced Vector Extensions 2.
/arch:AVX512
Habilita intel Advanced Vector Extensions 512.
/arch:AVX10.1
Habilita intel Advanced Vector Extensions 10 versión 1.
Comentarios
La opción /arch
habilita el uso de determinadas extensiones de conjunto de instrucciones, especialmente para el cálculo de vectores, que están disponibles en procesadores de Intel y AMD. En general, los procesadores introducidos más recientemente pueden admitir extensiones más allá de las admitidas por procesadores anteriores, aunque debería consultar la documentación de cada procesador determinado o probar la compatibilidad con la extensión del conjunto de instrucciones mediante __cpuid
antes de ejecutar código mediante una extensión del conjunto de instrucciones.
/arch
solo afecta a la generación de código de las funciones nativas. Cuando se usa /clr
para compilar, /arch
no tiene ningún efecto en la generación de código para las funciones administradas.
Las extensiones de procesador tienen las siguientes características:
El modo predeterminado usa instrucciones de SSE2 para los cálculos vectoriales y escalares de punto flotante. Estas instrucciones permiten el cálculo con vectores de 128 bits de precisión sencilla, precisión doble y valores enteros de 1, 2, 4 u 8 bytes, así como valores de punto flotante escalar de precisión sencilla y doble precisión.
SSE4.2
usa el conjunto completo de instrucciones de SSE para los cálculos de vectores escalares, vectores e enteros de punto flotante.AVX
introdujo una codificación alternativa de instrucciones para instrucciones escalares y vectoriales de punto flotante. Permite vectores de 128 bits o 256 bits y extiende a cero todos los resultados vectoriales hasta el tamaño de vector completo. Para la compatibilidad heredada, las instrucciones vectoriales de estilo SSE conservan todos los bits más allá del bit 127. La mayoría de las operaciones de punto flotante se extienden hasta los 256 bits.AVX2
extiende la mayoría de las operaciones de entero a vectores de 256 bits y habilita el uso de instrucciones de multiplicación y suma fusionadas (FMA).AVX-512
introdujo otro formulario de codificación de instrucciones que permite vectores de 512 bits, enmascaramiento, redondeo/difusión insertados y nuevas instrucciones. La longitud de vector predeterminada paraAVX-512
es de 512 bits y se puede cambiar a 256 bits mediante la/vlen
marca .AVX10.1
agrega más instrucciones sobreAVX-512
. La longitud de vector predeterminada paraAVX10.1
es de 256 bits y se puede cambiar a 512 bits mediante la/vlen
marca .
Cada opción /arch
también puede habilitar el uso de otras instrucciones no vectoriales asociadas a esa opción. Un ejemplo es el uso de determinadas instrucciones BMI (instrucciones de manipulación de bits) cuando se especifica /arch:AVX2
.
El __AVX__
símbolo del preprocesador se define cuando se especifica la /arch:AVX
opción del compilador , /arch:AVX2
/arch:AVX512
, o /arch:AVX10.1
.
El __AVX2__
símbolo del preprocesador se define cuando se especifica la /arch:AVX2
opción del compilador , /arch:AVX512
o /arch:AVX10.1
.
Los __AVX512F__
símbolos del preprocesador , __AVX512BW__
__AVX512CD__
, , __AVX512DQ__
y __AVX512VL__
se definen cuando se especifica la /arch:AVX512
opción del compilador , o /arch:AVX10.1
.
El __AVX10_VER__
símbolo del preprocesador se define cuando se especifica la /arch:AVX10.1
opción del compilador. Indica que la versión de AVX10 que el compilador tiene como destino. Para obtener más información, consulte Macros predefinidas.
La opción /arch:AVX2
se introdujo en Visual Studio 2013 Actualización 2, versión 12.0.34567.1.
La compatibilidad limitada con /arch:AVX512
se incorporó en Visual Studio 2017 y se amplió en Visual Studio 2019.
Se ha agregado compatibilidad con /arch:AVX10.1
en Visual Studio 2022.
Para establecer la opción del compilador /arch
en Visual Studio
Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.
Seleccione la página de propiedades Propiedades de configuración>C/C++>Generación de código.
Modifique la propiedad Habilitar conjunto de instrucciones mejorado.
Para establecer esta opción del compilador mediante programación
Consulte también
/arch
(Arquitectura de CPU mínima)
Opciones del compilador de MSVC
Sintaxis de línea de comandos del compilador de MSVC