Ana içeriğe geç
Programlama

APL yorumlayıcılarında Boole tarama işlemleri simetriyle optimize ediliyor

Öne çıkanlar

  • APL dilindeki 10 ikili Boole tarama işlemi, negasyon simetrileriyle yalnızca 3 temel işleme indirgenebiliyor.
  • AND, LT ve XOR işlemlerinin optimize edilmesi kalan 7 Boole işleminin yüksek hızda türetilmesini sağlıyor.
  • Aritmetik bit hileleriyle optimize edilen AND taraması döngü başına 62 bit işleme hızına ulaşıyor.

Dizi programlama dillerinden APL, yerleşik ilkel işlevlerin optimize edilmiş yerel kod rutinlerine dayanıyor. APL yorumlayıcıları döngü yazımının yavaşlığını aşmak için tarama (scan) ve katlama (fold) işlemlerini özel vektörleştirilmiş döngülerle çalıştırıyor. Dilde bulunan 10 farklı ikili Boole işleminin tümü için ayrı ayrı yüksek başarımlı makine kodu yazmak geliştirme maliyetini ve ikili dosya boyutunu artırıyor. Yayımlanan teknik analiz, Boole cebirindeki simetrileri kullanarak sadece üç temel işlemi optimize etmenin tüm küme için yeterli olduğunu gösterdi.

Analize göre girdi ve çıktı dizilerine mantıksal değil (negasyon) işlemi uygulanarak türetilen dönüşüm kuralları, doğruluk tabloları arasındaki simetrileri ortaya çıkarıyor. Girdi dizisini tersine çevirme veya çıktıyı değil işleminden geçirme adımları, diğer Boole işlemlerini birbirine bağlıyor. Bu matematiksel denklik sayesinde ve (AND), küçük (LT) ve eşit değil (XOR) işlemlerinden oluşan üçlü çekirdek küme, geriye kalan yedi işlemin tamamını kapsıyor. Geliştiriciler böylece daha az kod yazarak işlemci önbelleğini verimli kullanan kompakt derleyiciler üretebiliyor.

Teknik dökümanda paylaşılan düşük seviyeli uygulamalarda bit düzeyinde paralellikten yararlanılıyor. x86 mimarisinde bağımlılık zincirini geciktiren taşma yayma taktiğiyle XOR taraması döngü başına 10,5 bite ulaşıyor. AND taraması aritmetik toplama hilesiyle döngü başına 62 bit işlerken, simdjson kütüphanesinden uyarlanan küçüktür taraması tek bit kaydırmalarla döngü başına 8,8 bit hızında çalışıyor. BQN yorumlayıcısı CBQN ve K dillerinde de benzer matematiksel kısayollar kullanılıyor.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.