/arch
(x64)
x64에서 코드 생성 아키텍처를 지정합니다. 다른 대상 아키텍처에 대한 /arch
자세한 내용은 (x86), /arch
(ARM64) 및/arch
(ARM)를 참조 /arch
하세요.
구문
/arch:
[SSE2
AVX10.1
|AVX512
|||AVX2
|SSE4.2
AVX
]
인수
/arch:SSE2
Intel Streaming SIMD 확장 2를 사용하도록 설정합니다. 옵션이 지정되지 않은 /arch
경우 기본 명령 집합은 SSE2입니다.
/arch:SSE4.2
Intel Streaming SIMD Extensions 4.2를 사용하도록 설정합니다.
/arch:AVX
Intel 고급 벡터 확장을 사용하도록 설정합니다.
/arch:AVX2
Intel Advanced Vector Extensions 2를 사용하도록 설정합니다.
/arch:AVX512
Intel Advanced Vector Extensions 512를 사용하도록 설정합니다.
/arch:AVX10.1
Intel Advanced Vector Extensions 10 버전 1을 사용하도록 설정합니다.
설명
이 /arch
옵션을 사용하면 특정 명령 집합 확장, 특히 Intel 및 AMD의 프로세서에서 사용할 수 있는 벡터 계산을 사용할 수 있습니다. 일반적으로 최근에 도입된 프로세서는 이전 프로세서에서 지원하는 확장 이외의 확장을 지원할 수 있지만 명령 집합 확장을 사용하여 __cpuid
코드를 실행하기 전에 특정 프로세서에 대한 설명서 또는 명령 집합 확장 지원을 테스트해야 합니다. 내장 함수를 __check_isa_support
사용하여 더 자주 사용되는 CPU 기능을 확인할 수도 있습니다.
/arch
네이티브 함수의 코드 생성에만 영향을 줍니다. 컴파일 /arch
하는 데 사용하는 /clr
경우 관리되는 함수의 코드 생성에는 영향을 주지 않습니다.
프로세서 확장에는 다음과 같은 특징이 있습니다.
기본 모드는 스칼라 부동 소수점 및 벡터 계산에 SSE2 지침을 사용합니다. 이러한 지침을 통해 단정밀도, 배정밀도 및 1, 2, 4 또는 8바이트 정수 값의 128비트 벡터와 단정밀도 및 배정밀도 스칼라 부동 소수점 값으로 계산할 수 있습니다.
SSE4.2
는 부동 소수점 스칼라, 벡터 및 정수 벡터 계산에 대한 전체 SSE 명령 집합을 사용합니다.AVX
는 벡터 및 부동 소수점 스칼라 명령에 대한 대체 명령 인코딩을 도입했습니다. 128비트 또는 256비트 중 하나의 벡터를 허용하고 모든 벡터 결과를 전체 벡터 크기로 0으로 확장합니다. (레거시 호환성을 위해 SSE 스타일 벡터 명령은 비트 127을 초과하는 모든 비트를 유지합니다.) 대부분의 부동 소수점 작업은 256비트로 확장됩니다.AVX2
는 대부분의 정수 작업을 256비트 벡터로 확장하고 FMA(Fused Multiply-Add) 지침을 사용할 수 있도록 합니다.AVX-512
는 512비트 벡터, 마스킹, 포함된 반올림/브로드캐스트 및 새 명령을 허용하는 또 다른 명령 인코딩 양식을 도입했습니다. 기본 벡터 길이AVX-512
는 512비트이며 플래그를 사용하여/vlen
256비트로 변경할 수 있습니다.AVX10.1
에 더 많은 지침이AVX-512
추가됩니다. 기본 벡터 길이AVX10.1
는 256비트이며 플래그를 사용하여/vlen
512비트로 변경할 수 있습니다.
각 /arch
옵션을 사용하면 해당 옵션과 연결된 다른 비벡터 명령도 사용할 수 있습니다. 예를 들어 지정된 경우 /arch:AVX2
특정 BMI 지침을 사용합니다.
__AVX__
전처리기 기호는 , /arch:AVX2
또는 /arch:AVX512
/arch:AVX10.1
컴파일러 옵션을 지정할 때 /arch:AVX
정의됩니다.
__AVX2__
전처리기 기호는 , /arch:AVX512
또는 /arch:AVX10.1
컴파일러 옵션을 지정할 때 /arch:AVX2
정의됩니다.
__AVX512F__
, __AVX512CD__
, __AVX512BW__
및 __AVX512DQ__
__AVX512VL__
전처리기 기호는 또는 /arch:AVX10.1
컴파일러 옵션을 지정할 때 /arch:AVX512
정의됩니다.
__AVX10_VER__
전처리기 기호는 컴파일러 옵션을 지정할 때 /arch:AVX10.1
정의됩니다. 컴파일러가 대상으로 하는 AVX10 버전을 나타냅니다. 자세한 내용은 미리 정의된 매크로를 참조 하세요.
이 /arch:AVX2
옵션은 Visual Studio 2013 업데이트 2 버전 12.0.34567.1에서 도입되었습니다.
제한된 지원 /arch:AVX512
은 Visual Studio 2017에서 추가되었으며 Visual Studio 2019에서 확장되었습니다.
Visual Studio 2022에 대한 /arch:AVX10.1
지원이 추가되었습니다.
Visual Studio에서 /arch
컴파일러 옵션을 설정하려면
프로젝트에 대한 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 컴파일러 및 빌드 속성 설정을 참조합니다.
구성 속성>C/C++>코드 생성 속성 페이지를 선택합니다.
고급 명령 집합 사용 속성을 수정합니다.
프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면
- EnableEnhancedInstructionSet을(를) 참조하세요.