/arch
(x64)
Especifica a arquitetura da geração de código em x64. Para obter mais informações sobre /arch
outras arquiteturas de destino, consulte /arch
(x86), /arch
(ARM64) e /arch
(ARM).
Sintaxe
/arch:
[AVX
|AVX2
|AVX512
]
Argumentos
/arch:AVX
Habilita o uso de instruções Intel Advanced Vector Extensions.
/arch:AVX2
Habilita o uso de instruções Intel Advanced Vector Extensions 2.
/arch:AVX512
Habilita o uso de instruções Intel Advanced Vector Extensions 512.
Comentários
A opção /arch
permite o uso de determinadas extensões de conjunto de instruções, especialmente para cálculo de vetor, disponíveis em processadores da Intel e do AMD. Em geral, os processadores introduzidos mais recentemente podem dar suporte a extensões além daquelas compatíveis com processadores mais antigos. Você deve consultar a documentação de um processador específico ou testar o suporte à extensão do conjunto de instruções usando __cpuid
antes de executar o código usando uma extensão de conjunto de instruções.
/arch
afeta somente a geração de código de funções nativas. Ao usar /clr
para compilar, /arch
não tem efeito sobre a geração de código das funções gerenciadas.
As extensões do processador têm as seguintes características:
O modo padrão usa instruções SSE2 para cálculos escalares de ponto flutuante e vetor. Essas instruções permitem o cálculo com vetores de 128 bits de precisão única, precisão dupla e valores inteiros de 1, 2, 4 ou 8 bytes, bem como valores de ponto flutuante escalares de precisão única e de precisão dupla.
AVX
introduziu uma codificação de instrução alternativa para instruções escalares de vetor e ponto flutuante. Ela permite vetores de 128 bits ou 256 bits e estende todos os resultados de vetor para o tamanho total do vetor. (Para compatibilidade herdada, as instruções de vetor no estilo SSE preservam todos os bits além do bit 127.) A maioria das operações de ponto flutuante é estendida para 256 bits.AVX2
estende a maioria das operações de inteiro para vetores de 256 bits e permite o uso de instruções de FMA (Fused Multiply-Add).AVX-512
introduziu outro formulário de codificação de instrução que permite vetores de 512 bits, além de alguns outros recursos opcionais. Instruções para outras operações também foram adicionadas.
Cada opção /arch
também pode habilitar o uso de outras instruções não vetoriais associadas a essa opção. Um exemplo é o uso de determinadas instruções de BMI quando /arch:AVX2
é especificado.
O símbolo do pré-processador __AVX__
é definido quando a opção do compilador /arch:AVX
, /arch:AVX2
ou /arch:AVX512
for especificada. O símbolo do pré-processador __AVX2__
é definido quando a opção do compilador /arch:AVX2
ou /arch:AVX512
for especificada. Os símbolos do pré-processador __AVX512F__
, __AVX512CD__
, __AVX512BW__
, __AVX512DQ__
e __AVX512VL__
são definidos quando a opção do compilador /arch:AVX512
for especificada. Para obter mais informações, confira Macros predefinidas. A opção /arch:AVX2
foi introduzida na Atualização 2 do Visual Studio 2013, versão 12.0.34567.1. O suporte limitado para /arch:AVX512
foi adicionado ao Visual Studio 2017 e expandido no Visual Studio 2019.
Para definir a opção do compilador /arch:AVX
, /arch:AVX2
ou /arch:AVX512
no Visual Studio
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter mais informações, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.
Selecione a página de propriedades Propriedades da Configuração>C/C++>Geração de Código.
Na caixa suspensa Habilitar o conjunto de instruções aprimoradas, escolha Extensões de Vetor Avançadas (/arch:AVX), Extensões de Vetor Avançadas 2 (/arch:/AVX2) ou Extensões de Vetor Avançadas 512 (/arch:/AVX512).
Para definir essa opção do compilador via programação
- Consulte EnableEnhancedInstructionSet.
Confira também
/arch
(Arquitetura de CPU mínima)
Opções do compilador MSVC
Sintaxe de linha de comando do compilador MSVC
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de