Kaba kuvvet süperoptimizasyon kayan nokta hesaplamasında dallanmayı kaldırdı
Öne çıkanlar
- İkinin kuvveti olan sayılarda ortaya çıkan koşullu dallanma kaba kuvvet aramasıyla tamamen kaldırıldı.
- Formül uzayını daraltmak için yalnızca IEEE 754 standardına uygun anlamlı bit maskeleri kullanıldı.
- Tümevarım temelli ifade üretimi sayesinde yinelenen ara formüller hash seti ile elendi.
Bir kayan nokta hesaplama kütüphanesi ve FPU emülatörü geliştiren yazılımcı, kayan nokta sayısının en düşük anlamlı bitini bulan işlevdeki koşullu dallanmayı kaldırmak için kaba kuvvet süperoptimizasyon tekniğini uyguladı. Geleneksel bit manipülasyonu yöntemlerinin ikinin kuvveti olan sayılarda ek bir koşul gerektirmesi nedeniyle oluşan dallanma tahmin hatalarını önlemek isteyen geliştirici, olası tüm matematiksel ve mantıksal formülleri sistematik olarak aradı.
Formül doğrulama sürecinde yavaş kalan teorem ispatlayıcılar yerine temsilci test senaryoları seçildi ve karşıt örnekler bulundukça test listesi genişletildi. Arama uzayını daraltmak amacıyla rastgele sabitler yerine IEEE 754 biçiminde anlamlı olan sabitler kullanıldı. İşlemler tümevarım yöntemiyle inşa edilerek yinelenen ifadeler hash seti aracılığıyla elendi, böylece arama alanındaki gereksiz durumlar işlem dışı bırakılarak bellek kullanımı sınırlandırıldı.
Kaba kuvvet araması sonucunda ikinin kuvvetlerini ek bir koşul denetimi olmadan işleyen ve ortak alt ifadeleri yeniden kullanan yeni formüller bulundu. Geliştirici, bulunan formülün işaret bitini ters çevirmesine rağmen mantis çıkarma mantığını akıllıca birleştirerek bir işlem tasarrufu sağladığını açıkladı. Ortaya çıkan formül, geliştirilmekte olan açık kaynak FPU emülatörüne doğrudan dahil edildi.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.