AVX-512
AVX-512, opmask yazmaçlarına ve 512 bitlik işlemler için desteğe sahip bir x86 vektör uzantıları ailesidir. Temeli ve bağımsız alt kümeleri ayrı ayrı kontrol edilmelidir; tek bir AVX-512 etiketi eksiksiz bir uyumluluk belirtimi değildir.
Bilmeniz gerekenler
AVX-512, opmask yazmaçlarına ve 512 bitlik işlemler için desteğe sahip bir x86 vektör uzantıları ailesidir. Temeli ve bağımsız alt kümeleri ayrı ayrı kontrol edilmelidir; tek bir AVX-512 etiketi eksiksiz bir uyumluluk belirtimi değildir.
Nasıl çalışır
Mimari, ZMM vektör durumunu ve k işlem maskesi (opmask) yazmaçlarını ekler. Maskelenmiş işlemler, komuta özel birleştirme veya sıfırlama davranışıyla münferit yolları seçebilir. AVX512F temeldir; AVX512BW, DQ, CD ve VL farklı ek yetenekleri kapsar. AVX512VL ilgili işlemlerin daha dar vektörlerde gerçekleştirilmesine izin verir; bu nedenle AVX-512 kodu her komutta mutlaka 512 bit işlemez.
Nerede yararlıdır
Maskelenmiş bir sayısal döngü, seçilen komutlar gerekli maskeleme semantiğini desteklediğinde ayrı bir skaler kuyruk olmadan son kısmi vektörünü işleyebilir. Bayt işlemleri, çakışma tespiti veya belirli bir aritmetik biçim kullanan bir uygulama, tam olarak bu alt kümeleri talep etmelidir. AVX-512 VNNI ve AVX-VNNI farklı kodlamalar ve numaralandırmalar kullanır.
Destek ve etkinleştirme durumu nasıl kontrol edilir
AVX kontrollerinden sonra, programın ihtiyaç duyduğu belirli CPUID yaprak 7 özellik bitlerini doğrulayın. AVX-512 durumu için XCR0; XMM, YMM, opmask, üst ZMM ve yüksek ZMM durumlarını etkinleştirmelidir: 1, 2, 5, 6 ve 7. bitler. Yaygın olarak kullanılan maske E6H'dir. XGETBV'den önce OSXSAVE'i kontrol edin ve gerekli her alt kümeyi denetleyen bir dağıtıcı (dispatcher) kullanın.
Program hem uygun bir uygulama içermeli hem de bunu çalışma zamanında seçmelidir. Donanım numaralandırması, işletim sistemi tarafından etkinleştirilen yazmaç durumu ve ikili dosyanın derlenmiş temeli ayrı kontrollerdir. Bir sanal makine kasıtlı olarak ana bilgisayarından daha az özellik sunabilir ve bir kapsayıcı ana bilgisayar CPU'suna komut eklemez.
Özelliğin sağlamadığı durumlar
Her AVX-512 alt kümesini AVX512F'ten, bir CPU nesil adından veya x86-64-v4'ten çıkarmayın. Frekans, güç ve yürütme işleme hızı uygulamaya ve iş yüküne göre değişir. Bir veritabanı etiketi tek başına bellenimin, hibrit çekirdek politikasının veya bir hipervizörün geçerli işleme kullanılabilir bir özellik sunup sunmadığını belirleyemez.
Uygulamada uyumluluk ve performans
İş yükünün tamamını temsili verilerle ölçün. Daha geniş vektörler, bellek trafiğini, eşitlemeyi veya dönüştürme maliyetlerini değiştirmeden komut sayısını azaltabilir. Komut gecikme süresi, işleme hızı ve güç davranışı tam mikro mimariye ve çalışma koşullarına bağlıdır.
Pratik bir doğrulama kontrol listesi
- İlgili tam işlemci veya platform modelini ve uygulama, işletim sistemi ve çalışma zamanı sürümlerini kaydedin. Gerçek hatanın veya gereksinimin metnini koruyun.
- Bu tam model için üretici referansını kontrol edin, ardından programın çalıştığı ortamda geçerli yeteneği ve etkinleştirilmiş durumu inceleyin.
- Seçilen ikili dosyanın veya arka ucun her gereksinimini karşılaştırın. Benzer şekilde adlandırılmış bir özellik, diğer ad veya genel teknoloji etiketi yeterli değildir.
- Uygulamanın hedeflenen uygulamayı seçtiğini onaylayın. Gereksinimler karşılanmadığında belgelenmiş tanılamalarını ve desteklenen bir geri dönüşü kullanın.
- Her seferinde desteklenen bir değişiklik yapın ve aynı iş yükünü tekrarlayın. Orijinal yapılandırmayı ve kurtarma yolunu kullanılabilir durumda tutun.
Özellik listeleniyor ancak yazılım kullanamıyorsa
Hata veren tam bileşenle başlayın. Bir donanım veritabanı kayıtlı yeteneği açıklar; işletim sistemi veya hipervizör farklı bir geçerli ortam sunabilir. Geçersiz komut hatası, gerçek hatalı komutun ve ikili yapının da incelenmesini gerektirir, çünkü bozulma veya ilgisiz, desteklenmeyen bir komut benzer bir belirti üretebilir.
Tam platform için desteklenen uygulama, sürücü veya çalışma zamanı sürümünü yükleyin ve gerekirse satıcının belgelenmiş temel veya geri dönüş derlemesini kullanın. Bir yazılım güncellemesi, işlemcide eksik olan bir komutu oluşturamaz. Bellenim ve güvenlik politikası değişiklikleri, genel bir optimizasyon tarifi yerine sistem üreticisinin prosedürünü ve bir kurtarma planını izlemelidir.
Bu açıklamanın kaynakları ve kapsamı
Intel 64 ve IA-32 Mimarileri Yazılım Geliştirici Kılavuzu · Linux çekirdeği: kullanıcı alanında XSTATE özelliklerini kullanma · x86-64 psABI: işlemci mimarisi ve mikro mimari seviyeleri
Bu referanslar mimari davranışı ve yazılım gereksinimlerini belirler. Bağlantılı bir donanım modeli sayfasındaki her özellik değerini bağımsız olarak doğrulamazlar. Model desteği için ilgili sayfanın üretici kanıtlarını kullanın ve geçerli sistem yapılandırmasını kontrol edin. Bu makale bir kıyaslama, sertifikasyon veya bağımsız inceleme tarihi sağlamaz.
Kaynaklar ve doğrulama
Editoryal mülkiyet: Feex. Bağımsız bir inceleme tarihi kaydedilmemiştir. Nasıl araştırıyoruz.
- Intel 64 ve IA-32 Mimarileri Yazılım Geliştirici Kılavuzu · Cilt 1 ve 2, adlandırılmış komut ailelerini ve CPUID'yi açıklar; Cilt 3, durum, sayfalama, VMX ve koruma denetimlerini açıklar. Mimari belgeleri belirli bir model için desteği doğrulamaz.
- Linux çekirdeği: kullanıcı alanında XSTATE özelliklerini kullanma · İşletim sistemi tarafından etkinleştirilen vektör durumu, dinamik olarak etkinleştirilen karo durumu, sinyal yığını gereksinimleri ve AMX izin akışı. Linux'a özgü davranış, başka bir işletim sistemi hakkında bir taahhüt değildir.
- x86-64 psABI: işlemci mimarisi ve mikro mimari seviyeleri · Makine Arayüzü, İşlemci Mimarisi: temel ve kümülatif v2/v3/v4 özellik tablosu, işletim sistemi durumu kontrolleri ve dağıtım önerileri.
Bu makale yararlı oldu mu?
Evet veya hayır yeterlidir. İsterseniz bir neden seçin veya kısa bir not ekleyin.
Teşekkürler. Bu, bu sayfayı geliştirmemize yardımcı olur.