Mesa3D grafik projesine bağımsız bir katkıda bulunan Yonggang Luo, AVX-512 desteğini etkinleştirmek için çalışmaya başladı. Mesa katkısının, Mesa3D grafik ardışık düzenine destek eklemeyi üstlenmesinin nedeni, AVX-512’nin yeni yazılımda kullanılmasına izin vermektir.
Mesa3D Project için LLVMpipe sürücüsü, yaklaşmakta olan AMD Zen 4 mimarisi için AVX-512 optimizasyonları ekliyor
Yonggang, AMD’nin en yeni Ryzen 7000 Zen 4 işlemcilerinin en son performanstan yararlanabileceği için uygulamanın gerekli olduğunu hissetti.
“AVX512, Ryzen 7950x ile bir şey olabileceğinden, onu llvmpipe’da etkinleştirmek istiyorum[…]”
— Mesa3D’deki LLVMpipe sürücüsü için en yeni birleştirme talebinde Yonggang Luo
LLVMpipe, grafik kartı veya GPU sürücüsü bilgisayar sistemi tarafından bulunmadığında veya sistemde olmadığında kullanılan benzersiz bir Mesa OpenGL yazılım yürütmesidir. Okuyucular, LLVM’nin “herhangi bir programlama dili için bir ön uç ve herhangi bir talimat seti mimarisi için bir arka uç oluşturmak için kullanılan derleyici ve araç zinciri teknolojilerinin” bir koleksiyonu olduğunu hatırlayacaktır. LLVMpipe, LLVM’nin belirli bir uzantı setini kullanmasına ve Softpipe ve OpenGL gibi diğer yazılım yürütülebilir dosyalarından daha fazla performans üretmesine izin verecektir.
AVX-512, birkaç yıldır Intel işlemcilerle en çok kullanılanı gördü. Ancak, entegre bir RDNA 2 grafik entegrasyonuna sahip olduğundan ve LLVMpipe’dan daha iyi performans gösterdiğinden, LLVMpipe’ın piyasaya sürülmemiş Ryzen 7000 serisi CPU’ları desteklediğini görmek ilginçtir.
Henüz piyasaya sürülmemiş AMD Zen 4 CPU’ları ile AVX-512’nin yeni mimaride daha yüksek performans sunup sunmayacağı bilinmiyor. AVX-512, 512 bitlik bir yol değil, 256 bitlik bir yol tarafından kullanılır.
AVX-512’nin etkinleştirilmediği Gallium’da AVX-512’yi etkinleştirmek için gerekli bölümleri değiştirecektir. Bu istek, CPU yeteneklerinin Softpipe ve LLVMpipe içinde geçersiz kılınmasına izin vermek için “GALLIUM_OVERRIDE_CPU_CAPS” adlı bir ortam değişkenini de içerecektir.
AVX, SSE ve diğer bazı özellikler, işlemci geçersiz kılındıktan sonra devre dışı bırakılabilir veya etkinleştirilebilir. Son olarak, “LP_NATIVE_VECTOR_WIDTH”, LLVMpipe’da AVX/AVX2/AVX-512’yi kullanmak için vektör bit genişliğinin değiştirilmesine izin verecektir.