AVX
AVX (Advanced Vector Extensions), 256 bit kayan nokta işlemleri dahil olmak üzere YMM yazmaçları ve VEX kodlamalı komutlarla bir vektör programlama modeli ekler. Hem işlemci desteği hem de işletim sistemi durum yönetimi gereklidir.
Bilmeniz gerekenler
AVX (Advanced Vector Extensions), 256 bit kayan nokta işlemleri dahil olmak üzere YMM yazmaçları ve VEX kodlamalı komutlarla bir vektör programlama modeli ekler. Hem işlemci desteği hem de işletim sistemi durum yönetimi gereklidir.
Nasıl çalışır
AVX, vektör yazmaçlarını 256 bite genişletir ve her YMM yazmacının alt 128 biti kendi XMM yazmacıyla örtüşür. Birçok komut, hedefin girdilerden farklı olmasına izin veren üç işlenenli bir form kullanır. 256 bitlik bir vektör, 8 tek duyarlıklı veya 4 çift duyarlıklı kayan nokta değerini tutabilir, ancak komutlar işlenen türleri ve davranışları açısından farklılık gösterir.
Nerede yararlıdır
Sayısal bir döngü, tek bir vektör komutuyla birkaç bağımsız kayan nokta değerini toplayabilir. Derleyici veya kitaplık bu kodu oluşturmalı ve yüklemeleri, hizalamayı, kuyrukları ve bağımlılıkları doğru şekilde düzenlemelidir. AVX, rastgele bir programı çekirdekler arasında otomatik olarak paralelleştirmez ve 256 bitlik tamsayı işlemleri, AVX2'yi varsaymak yerine ilgili uzantının kontrol edilmesini gerektirir.
Destek ve etkinleştirme durumu nasıl kontrol edilir
CPUID.01H:ECX AVX bit 28, XSAVE bit 26 ve OSXSAVE bit 27'yi kontrol edin. Yazılım, yalnızca OSXSAVE'i onayladıktan sonra ECX=0 ile XGETBV'yi kullanabilir ve XCR0 bit 1 ve 2'nin XMM ve YMM durumunu etkinleştirdiğini doğrulayabilir. AVX'i bir algılama deneyi olarak yürütmek yerine güncel tutulan bir çalışma zamanı dağıtıcısı 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
Yalnızca AVX desteği AVX2, FMA, F16C, AVX-VNNI veya AVX-512 anlamına gelmez. Vektör genişliği, bir komutun kaç döngü sürdüğünü belirtmez. Bir sanal makine, fiziksel ana bilgisayardan daha küçük bir komut kümesi sunabilir.
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
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.
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.