/arch
(x64)
x64 üzerinde kod oluşturma mimarisini belirtir. Diğer hedef mimariler hakkında /arch
daha fazla bilgi için bkz /arch
. (x86),/arch
(ARM64)ve /arch
(ARM).
Sözdizimi
/arch:
[AVX
||AVX2
AVX512
]
Bağımsız değişkenler
/arch:AVX
Intel Gelişmiş Vektör Uzantıları yönergelerinin kullanılmasını sağlar.
/arch:AVX2
Intel Advanced Vector Extensions 2 yönergelerinin kullanılmasını sağlar.
/arch:AVX512
Intel Advanced Vector Extensions 512 yönergelerinin kullanılmasını sağlar.
Açıklamalar
bu /arch
seçenek, Intel ve AMD işlemcilerinde kullanılabilen vektör hesaplaması için belirli yönerge kümesi uzantılarının kullanılmasını sağlar. Genel olarak, daha yakın zamanda tanıtılan işlemciler eski işlemciler tarafından desteklenenlerin ötesinde uzantıları desteklese de, bir yönerge kümesi uzantısı kullanarak kod yürütmeden önce belirli bir işlemcinin belgelerine başvurmanız veya kullanma yönerge kümesi uzantısı desteği için test __cpuid
kullanmanız gerekir.
/arch
yalnızca yerel işlevler için kod oluşturmayı etkiler. Derlemek için kullandığınızda /clr
, /arch
yönetilen işlevler için kod oluşturma üzerinde hiçbir etkisi olmaz.
İşlemci uzantıları aşağıdaki özelliklere sahiptir:
Varsayılan mod, skaler kayan nokta ve vektör hesaplamaları için SSE2 yönergelerini kullanır. Bu yönergeler tek duyarlıklı, çift duyarlıklı ve 1, 2, 4 veya 8 baytlık tamsayı değerlerinin yanı sıra tek duyarlıklı ve çift duyarlıklı skaler kayan nokta değerlerinden oluşan 128 bit vektörlerle hesaplamaya olanak tanır.
AVX
vektör ve kayan nokta skaler yönergeleri için alternatif bir yönerge kodlaması kullanıma sunulmuştur. 128 bit veya 256 bit vektörlere izin verir ve tüm vektör sonuçlarını tam vektör boyutuna sıfır genişletir. (Eski uyumluluk için, SSE stili vektör yönergeleri bit 127'nin ötesindeki tüm bitleri korur.) Kayan nokta işlemlerinin çoğu 256 bit'e genişletilir.AVX2
çoğu tamsayı işlemini 256 bit vektörlere genişletir ve Birleşik Çarpma-Ekle (FMA) yönergelerinin kullanılmasını sağlar.AVX-512
512 bit vektörlere ve isteğe bağlı diğer bazı özelliklere izin veren başka bir yönerge kodlama formu eklendi. Diğer işlemlere yönelik yönergeler de eklendi.
Her /arch
seçenek, bu seçenekle ilişkilendirilmiş diğer vektör dışı yönergelerin kullanımını da etkinleştirebilir. Belirli BMI yönergelerinin belirtildiğinde /arch:AVX2
kullanılması örnek olarak verilmiştir.
__AVX__
Ön işlemci simgesi, veya /arch:AVX2
/arch:AVX512
derleyici seçeneği belirtildiğinde /arch:AVX
tanımlanır. __AVX2__
Ön işlemci simgesi, veya /arch:AVX512
derleyici seçeneği belirtildiğinde /arch:AVX2
tanımlanır. __AVX512F__
Derleyici seçeneği belirtildiğinde /arch:AVX512
, __AVX512CD__
, __AVX512BW__
__AVX512DQ__
ve __AVX512VL__
önişlemci simgeleri tanımlanır. Daha fazla bilgi için bkz . Önceden tanımlanmış makrolar. Bu /arch:AVX2
seçenek Visual Studio 2013 Güncelleştirme 2, sürüm 12.0.34567.1'de sunulmuştur. için /arch:AVX512
sınırlı destek Visual Studio 2017'ye eklendi ve Visual Studio 2019'da genişletildi.
Visual Studio'da /arch:AVX
, /arch:AVX2
veya /arch:AVX512
derleyici seçeneğini ayarlamak için
Proje için Özellik Sayfaları iletişim kutusunu açın. Daha fazla bilgi için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.
Yapılandırma Özellikleri>C/C++>Kod Oluşturma özellik sayfasını seçin.
Gelişmiş Yönerge Kümesini Etkinleştir açılan kutusunda Gelişmiş Vektör Uzantıları (/arch:AVX), Gelişmiş Vektör Uzantıları 2 (/arch:AVX2) veya Gelişmiş Vektör Uzantıları 512 (/arch:AVX512) seçeneğini belirleyin.
Bu derleyici seçeneğini program üzerinden ayarlamak için
Ayrıca bkz.
/arch
(En Düşük CPU Mimarisi)
MSVC derleyici seçenekleri
MSVC derleyicisi komut satırı söz dizimi