Compartir a través de


/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:[AVX|AVX2|AVX512]

Argumentos

/arch:AVX
Habilita el uso de instrucciones de Extensiones de vector avanzadas de Intel.

/arch:AVX2
Habilita el uso de instrucciones de Extensiones de vector avanzadas 2 (AVX2) de Intel.

/arch:AVX512
Habilita el uso de instrucciones de Extensiones de vector avanzadas 512 de Intel.

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.

  • 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, además de otras características opcionales. También se han agregado instrucciones para otras operaciones.

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 símbolo de preprocesador __AVX__ se define cuando se especifica la opción del compilador /arch:AVX, /arch:AVX2 o /arch:AVX512. El símbolo de preprocesador __AVX2__ se define cuando se especifica la opción del compilador /arch:AVX2 o /arch:AVX512. Los símbolos de preprocesador __AVX512F__, __AVX512CD__, __AVX512BW__, __AVX512DQ__ y __AVX512VL__ se definen cuando se especifica opción del compilador /arch:AVX512. 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.

Para establecer las opciones del compilador /arch:AVX, /arch:AVX2 o /arch:AVX512 en Visual Studio

  1. 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.

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>Generación de código.

  3. En el cuadro desplegable Habilitar conjunto de instrucciones mejorado, elija Extensiones de vector avanzadas (/arch:AVX), Extensiones de vector avanzadas 2 (/arch:AVX2) o Extensiones de vector avanzadas 512 (/arch:AVX512).

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