다음을 통해 공유


/arch (x64)

x64에서 코드 생성 아키텍처를 지정합니다. 다른 대상 아키텍처에 대한 /arch 자세한 내용은 (x86), /arch (ARM64)/arch (ARM)를 참조 /arch 하세요.

구문

/arch:[SSE2AVX10.1|AVX512|||AVX2|SSE4.2AVX]

인수

/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 컴파일러 옵션을 설정하려면

  1. 프로젝트에 대한 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 컴파일러 및 빌드 속성 설정을 참조합니다.

  2. 구성 속성>C/C++>코드 생성 속성 페이지를 선택합니다.

  3. 고급 명령 집합 사용 속성을 수정합니다.

프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면

참고 항목

/arch (최소 CPU 아키텍처)
MSVC 컴파일러 옵션
MSVC 컴파일러 명령줄 구문