NumPy veya Numerical Python, iyi bilinen kodlama dilinde bilimsel hesaplamaya odaklanan Python kitaplıklarından biridir ve yakın zamanda AVX-512’de hızlı sıralama için kullanılan Intel’in C++ başlık dosyası kitaplığını entegre etmiştir. Yeni entegrasyon, SIMD tabanlı sıralamada on ila on yedi kat daha yüksek hızlar gösteriyor.
Intel’in NumPy Anahtarlaması, SIMD tabanlı sıralamayı artırmak ve performansa yardımcı olmak için AVX-512’yi sunar
NumPy’nin Python tabanlı kitaplığı şu şekilde açıklanmaktadır:
…bir çok boyutlu dizi nesnesi, çeşitli türetilmiş nesneler (maskelenmiş diziler ve matrisler gibi) ve diziler üzerinde hızlı işlemler için matematiksel, mantıksal, şekil işleme, sıralama, seçme, G/Ç, ayrık Fourier dönüşümleri dahil olmak üzere çeşitli rutinler , temel doğrusal cebir, temel istatistiksel işlemler, rastgele simülasyon ve çok daha fazlası.
— resmi NumPy proje web sitesine göre.
Intel yükledi x86-simd-sıralama daha yüksek performanslı bir düzeyde SIMD sıralamasına yardımcı olmak için kullanıcılara bir C++ başlık dosyası kitaplığı sağlamak üzere şirketin GitHub’ına eklendi. Intel mühendislerinden biri olan Raghuveer Devulapalli, x86-simd-sort kodunu NumPy’ye entegre etmede çok önemliydi. Ancak, dosya kitaplığı yalnızca AVX-512’ye ve onun hızlı sıralama dahil edilmesine odaklanır.
[The new x86-simd-sort is a] x86 işlemcilerde SIMD tabanlı 16 bit, 32 bit ve 64 bit veri türü sıralaması için C++ başlık dosyası kitaplığı. Kaynak başlık dosyaları src dizininde mevcuttur. Şu anda yalnızca AVX-512 tabanlı hızlı sıralama uygulamasına sahibiz. Bu havuz aynı zamanda sıralama algoritmalarının doğruluğunu test etmek için oluşturulabilen ve çalıştırılabilen bir test paketi içerir. Ayrıca performansını std::sort’a göre karşılaştırmak için kıyaslama koduna sahiptir.
Michael Larabel, Linux analisti ve web sitesinin editörü Phoronixsonuçların inanılmaz derecede olumlu olduğunu, AVX-512 ile sıralamadaki artışın proje performansını on ila on yedi kat artırmasına yardımcı olduğunu belirtir.
Larabel, PR 22315’in AVX-512 entegrasyonuyla “16 bit ve 64 bit veri türleri için hızlı sıralamayı vektörleştirmek” için NumPy’ye eklendiğini belirtiyor. Tiger Lake tabanlı sistemlerin, özellikle 11. Nesil Tiger Lake i7-1165G7 kullananların, 16-bit int sıralamada en yüksek hıza (on yedi kat daha iyi) tanık olduğunu devam ettiriyor. Buna karşılık, 64 bit kayan sıralama en düşük olanı aldı (on kat arttı). Son olarak, 32 bit veri türleri ve rasgele diziler, sıralama kapasitesinde on iki ila on üç kat artış gördü. Benchmark sonuçlarını görebilirsin. Burada.
Haber kaynakları: Phoronix, Intel GitHub 1, 2