Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Especifica a arquitetura para geração de código em x64. Essas opções se aplicam à versão de destino x64 do compilador. Para obter mais informações sobre /arch
outras arquiteturas de destino, consulte /arch
(x86),/arch
(ARM64) e /arch
(ARM).
Sintaxe
/arch:
[SSE2
AVX10.1
|AVX512
|||AVX2
|SSE4.2
AVX
]
Argumentos
/arch:SSE2
Habilita as extensões Intel Streaming SIMD 2. O conjunto de instruções padrão é SSE2 se nenhuma /arch
opção for especificada.
/arch:SSE4.2
Habilita as extensões Intel Streaming SIMD 4.2.
/arch:AVX
Habilita as extensões vetoriais avançadas Intel.
/arch:AVX2
Habilita o Intel Advanced Vetor Extensions 2.
/arch:AVX512
Habilita o Intel Advanced Vetor Extensions 512.
/arch:AVX10.1
Habilita o Intel Advanced Vetor Extensions 10 versão 1.
Observações
A /arch
opção permite o uso de certas extensões de conjunto de instruções, particularmente para cálculo vetorial, disponíveis em processadores da Intel e AMD. Em geral, os processadores introduzidos mais recentemente podem suportar extensões além das suportadas por processadores mais antigos, embora você deva 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. Você também pode usar o __check_isa_support
intrínseco para verificar se há recursos de CPU usados com mais frequência.
/arch
afeta apenas a geração de código para funções nativas. Quando você usa /clr
para compilar, /arch
não tem efeito na geração de código para 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. Estas 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 escalar de precisão única e precisão dupla.
SSE4.2
usa o conjunto completo de instruções SSE para cálculos escalares, vetoriais e vetoriais inteiros de ponto flutuante.AVX
introduziu uma codificação de instruções alternativa para instruções escalares vetoriais e de ponto flutuante. Ele permite vetores de 128 bits ou 256 bits, e zero-estende todos os resultados vetoriais para o tamanho total do vetor. (Para compatibilidade herdada, as instruções vetoriais no estilo SSE preservam todos os bits além do bit 127.) A maioria das operações de ponto flutuante são estendidas para 256 bits.AVX2
estende a maioria das operações inteiras para vetores de 256 bits e permite o uso de instruções de Multiply-Add fundido (FMA).AVX-512
introduziu outro formulário de codificação de instruções que permite vetores de 512 bits, mascaramento, arredondamento/difusão incorporados e novas instruções. O comprimento do vetor padrão paraAVX-512
é de 512 bits e pode ser alterado para 256 bits usando o/vlen
sinalizador.AVX10.1
adiciona mais instruções sobre oAVX-512
. O comprimento do vetor padrão paraAVX10.1
é de 256 bits e pode ser alterado para 512 bits usando o/vlen
sinalizador.
Cada /arch
opção também pode permitir o uso de outras instruções não vetoriais associadas a essa opção. Um exemplo é o uso de certas instruções de IMC quando /arch:AVX2
é especificado.
O __AVX__
símbolo do pré-processador é definido quando a /arch:AVX
opção , /arch:AVX2
, /arch:AVX512
ou /arch:AVX10.1
compilador é especificada.
O __AVX2__
símbolo do pré-processador é definido quando a /arch:AVX2
opção , /arch:AVX512
ou /arch:AVX10.1
compilador é especificada.
Os __AVX512F__
símbolos , __AVX512CD__
, __AVX512BW__
, __AVX512DQ__
e __AVX512VL__
pré-processador são definidos quando a /arch:AVX512
opção , ou /arch:AVX10.1
compilador é especificada.
O __AVX10_VER__
símbolo do pré-processador é definido quando a opção do /arch:AVX10.1
compilador é especificada. Ele indica a versão AVX10 que o compilador está direcionando. Para obter mais informações, consulte Macros predefinidas.
A /arch:AVX2
opção foi introduzida no Visual Studio 2013 Update 2, versão 12.0.34567.1.
Suporte limitado para /arch:AVX512
foi adicionado no Visual Studio 2017 e expandido no Visual Studio 2019.
O suporte para /arch:AVX10.1
foi adicionado no Visual Studio 2022.
Para definir a opção de compilador /arch
no Visual Studio
Abra a caixa de diálogo Property Pages para o projeto. Para obter mais informações, consulte Definir compilador C++ e criar propriedades no Visual Studio.
Selecione a página de propriedades Configuration Properties>C/C++>Code Generation página de propriedades.
Modifique a propriedade Enable Enhanced Instruction set .
Para definir essa opção do compilador programaticamente
- Consulte EnableEnhancedInstructionSet.
Ver também
/arch
(Arquitetura mínima da CPU)
opções do compilador MSVC
de sintaxe de linha de comando do compilador MSVC