64-bit işaretli taban bölme işlemi için yeni bir hızlı algoritma geliştirildi
Öne çıkanlar
- Yeni algoritma, 64-bit işaretli taban bölme işlemlerinde modül hesaplama ihtiyacını ve dallanmaları ortadan kaldırıyor.
- Bölen katsayısı, sayının işaret bitine göre dinamik ayarlanarak çarpma ve kaydırma adımlarıyla doğrudan sonuç üretiliyor.
- ARM64 ve x86-64 testlerinde standart dil uygulamalarına kıyasla belirgin hız ve işlem hacmi artışı ölçüldü.
- Hazırlanan algoritma ve test şablonları MIT lisansıyla açık kaynak kodlu olarak yayımlandı.
Yazılımcı Ben Joffe, derleme zamanında bilinen bölenlerle 64-bit işaretli taban bölme (floor division) işlemlerini hızlandıran yeni bir algoritma yayımladı. Standart işaretli tamsayı bölme işlemi sıfıra doğru yuvarlama yaparken, taban bölme eksi sonsuza doğru yuvarlama gerçekleştiriyor. Zaman damgaları ve açı hesaplamaları gibi periyodik verilerde sıklıkla başvurulan bu yöntem, mevcut kütüphanelerde genellikle verimsiz kalan div ve mod komut zincirleriyle çalıştırılıyordu.
Araştırmacı, Hacker's Delight kitabındaki önerileri ve Granlund ile Montgomery'nin 1994 yılındaki çalışmalarını inceleyerek yeni bir işaret duyarlı çarpan yaklaşımı geliştirdi. Yöntem, bölen katsayısını işaret bitine göre ayarlayarak fazladan modül veya dallanma işlemlerini ortadan kaldırıyor. X86-64 ve ARM64 mimarilerinde yapılan kıyaslama testleri, bu yöntemin standart C++, Java veya Rust kütüphanelerindeki yaklaşımlara kıyasla belirgin bir işlem hacmi artışı sağladığını gösterdi.
Joffe, tek bir C++ başlık dosyasıyla paylaştığı algoritmayı MIT lisansı altında açık kaynak olarak kullanıma sundu. Geliştirilen yaklaşım 32-bit ve SIMD sistemlerinde de çalışabilirken, en yüksek performans kazanımını 128-bit aritmetik emülasyonunun darboğaz oluşturduğu 64-bit işlemci mimarilerinde sunuyor. Ayrıca yöntemin pozitif modül ve Öklid bölmesi gibi ilişkili matematiksel işlemlerde de kullanılabileceği belirtildi.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.