|
std::sort 'un 5 katı, std::qsort 'un 10 katı hızda. Sıralama yapılırken işlemci asenkron olarak başka iş yapabiliyor yani bekleme yapmıyor. Şu anda tamamen optimize değil. Bi 5 kat daha hızlandırılabilir belki. Mantık şöyle: Diziyi 4 parçaya bölüyor. Ama bölümler birbirini ayıran noktalara göre sıralı. Sonra onları da kendi içlerinde bölmeye devam ediyor. En sonunda dizi sıralanmış oluyor. Sıralanmış dizi verilince 2 kat yavaşlıyor yani hala std::sort'un üstünde. Bölümlerden biri 1024 eleman veya daha az ise, daha hızlı çalışan bir sıralama algoritması kullanıyor. 1024 thead ile paralel çalışan bubble sort (odd-even olan) kullanıyor. Eleman sayısı 2-3 ise doğrudan sıralamayı 2 satırda yapıp veriyor. Çok sayıda tekrar eden sayı varsa yaklaşık 3 kat daha hızlanıyor. Mesela 64 milyon elemanı 0.15 saniyede sıralıyor. Rastgeleyken 0.5 saniye. Sıralıyken 1 saniye. Sistemde rtx 4070 ve ryzen 7900 varken bu hızda. 4090 olsa 2-3 kat daha hızlanır. < Bu mesaj bu kişi tarafından değiştirildi Tugrul_512bit -- 26 Eylül 2024; 10:21:9 > < Bu ileti mobil sürüm kullanılarak atıldı > |
|
_____________________________
İmzam kural dışıdır! || Uymam gereken imza kurallarını okumak için tıkladım ama sonra üşendim ve bu mesajı değiştirdim.
|




Yeni Kayıt

1 Mobil
Konudaki Resimler
kullanıcısına yanıt






