Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menentukan arsitektur untuk pembuatan kode pada x64. Sakelar ini berlaku untuk versi penargetan x64 dari pengkompilasi. Untuk informasi selengkapnya tentang /arch arsitektur target lainnya, lihat /arch (x86), /arch (ARM64), dan /arch (ARM).
Sintaks
/arch:[SSE2AVX10.2|AVX10.1|AVX512|||AVX2|SSE4.2AVX]
Argumen
/arch:SSE2
Mengaktifkan Intel Streaming SIMD Extensions 2. Set instruksi default adalah SSE2 jika tidak ada /arch opsi yang ditentukan.
/arch:SSE4.2
Mengaktifkan Intel Streaming SIMD Extensions 4.2.
/arch:AVX
Mengaktifkan Ekstensi Vektor Tingkat Lanjut Intel.
/arch:AVX2
Mengaktifkan Intel Advanced Vector Extensions 2.
/arch:AVX512
Mengaktifkan Intel Advanced Vector Extensions 512.
/arch:AVX10.1
Mengaktifkan Intel Advanced Vector Extensions 10 versi 1.
/arch:AVX10.2
Mengaktifkan Intel Advanced Vector Extensions 10 versi 2.
Keterangan
Opsi ini /arch memungkinkan penggunaan ekstensi set instruksi tertentu, terutama untuk perhitungan vektor, tersedia dalam prosesor dari Intel dan AMD. Secara umum, prosesor yang diperkenalkan baru-baru ini dapat mendukung ekstensi di luar yang didukung oleh prosesor yang lebih lama, meskipun Anda harus berkonsultasi dengan dokumentasi untuk prosesor atau pengujian tertentu untuk dukungan ekstensi set instruksi menggunakan __cpuid sebelum menjalankan kode menggunakan ekstensi set instruksi. Anda juga dapat menggunakan __check_isa_support intrinsik untuk memeriksa fitur CPU yang lebih sering digunakan.
/arch hanya memengaruhi pembuatan kode untuk fungsi asli. Saat Anda menggunakan /clr untuk mengkompilasi, /arch tidak berpengaruh pada pembuatan kode untuk fungsi terkelola.
Ekstensi prosesor memiliki karakteristik berikut:
Mode default menggunakan instruksi SSE2 untuk perhitungan floating-point dan vektor skalar. Instruksi ini memungkinkan perhitungan dengan vektor 128-bit presisi tunggal, presisi ganda dan nilai bilangan bulat 1, 2, 4, atau 8 byte, serta nilai titik mengambang skalar presisi tunggal dan presisi ganda.
SSE4.2menggunakan serangkaian lengkap instruksi SSE untuk perhitungan vektor skalar, vektor, dan bilangan bulat floating-point.AVXmemperkenalkan pengodean instruksi alternatif untuk instruksi vektor dan skalar floating-point. Ini memungkinkan vektor 128 bit atau 256 bit, dan nol memperluas semua hasil vektor ke ukuran vektor penuh. (Untuk kompatibilitas warisan, instruksi vektor gaya SSE mempertahankan semua bit melebihi bit 127.) Sebagian besar operasi floating-point diperpanjang hingga 256 bit.AVX2memperluas sebagian besar operasi bilangan bulat ke vektor 256-bit dan memungkinkan penggunaan instruksi Fused Multiply-Add (FMA).AVX-512memperkenalkan formulir pengodean instruksi lain yang memungkinkan vektor 512-bit, masking, pembulatan/siaran tersemat, dan instruksi baru. Panjang vektor default untukAVX-512adalah 512 bit dan dapat diubah menjadi 256 bit menggunakan/vlenbendera .AVX10.1menambahkan lebih banyak instruksi di atasAVX-512. Panjang vektor default untukAVX10.1adalah 256 bit dan dapat diubah menjadi 512 bit menggunakan/vlenbendera . Opsi ini diperkenalkan di Visual Studio 2022 17.13.AVX10.2memperluas set instruksi yang diperkenalkan diAVX10.1. Panjang vektor default untukAVX10.2adalah 256 bit dan dapat ditingkatkan menjadi 512 bit menggunakan/vlenbendera .AVX10.2menambahkan instruksi yang merupakan penyempurnaan instruksi warisan dan instruksi akselerasi media. Untuk informasi selengkapnya tentang instruksi baru, lihat bagian 3.1.4 di Spesifikasi Arsitektur Intel Advanced Vector Extensions 10.2. Instruksi terkait AI dalam dokumen tersebut didukung melalui intrinsik MSVC alih-alih langsung dipancarkan karena MSVC tidak mendukung jenis data mereka. Opsi pengompilasi ini diperkenalkan di Visual Studio 2026.
Setiap /arch opsi juga dapat mengaktifkan penggunaan instruksi nonvektor lain yang terkait dengan opsi tersebut. Contohnya adalah penggunaan instruksi BMI tertentu ketika /arch:AVX2 ditentukan.
Simbol __AVX__ preprocessor didefinisikan ketika /arch:AVXopsi , , /arch:AVX2/arch:AVX512, /arch:AVX10.1, atau /arch:AVX10.2 compiler ditentukan.
Simbol __AVX2__ preprocessor ditentukan ketika /arch:AVX2opsi , , /arch:AVX512/arch:AVX10.1, atau /arch:AVX10.2 compiler ditentukan.
Simbol __AVX512F__, , __AVX512BW____AVX512CD__, __AVX512DQ__, dan __AVX512VL__ preprocessor ditentukan ketika /arch:AVX512opsi , , /arch:AVX10.1atau /arch:AVX10.2 compiler ditentukan.
Simbol __AVX10_VER__ preprocessor ditentukan ketika /arch:AVX10.1 opsi atau /arch:AVX10.2 compiler ditentukan. Ini menunjukkan versi AVX10 yang ditargetkan pengkompilasi. Untuk informasi selengkapnya, lihat Makro yang telah ditentukan sebelumnya.
Opsi /arch:AVX2 ini diperkenalkan di Visual Studio 2013 Update 2, versi 12.0.34567.1.
Dukungan terbatas untuk /arch:AVX512 ditambahkan di Visual Studio 2017, dan diperluas di Visual Studio 2019.
Dukungan untuk /arch:AVX10.1 ditambahkan di Visual Studio 2022. Dukungan untuk /arch:AVX10.2 ditambahkan di Visual Studio 2026.
Untuk mengatur /arch opsi pengkompilasi di Visual Studio
Buka kotak dialog Halaman Properti untuk proyek. Untuk informasi selengkapnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Properti>>
Ubah properti Aktifkan Set Instruksi yang Ditingkatkan.
Untuk mengatur opsi pengkompilasi ini secara terprogram
- Lihat EnableEnhancedInstructionSet.
Lihat juga
/arch (Arsitektur CPU Minimum)
Opsi pengkompilasi MSVC
Sintaks baris perintah pengkompilasi MSVC