Ana içeriğe geç
Programlama

Gearhash kütüphanesi ARM64 mimarisinde NEON ile iki kat hızlandı

Öne çıkanlar

  • gearhash 0.1.4 sürümü ARM64 işlemcilerde NEON desteğini otomatik olarak devreye aldı.
  • Hugging Face Xet istemcisinin kullandığı 64 KiB boyuttaki veri parçalarında işlem hızı 2,14 katına çıktı.
  • Doğrudan uyarlanan ilk vektör sürümü, döngü gecikmeleri yüzünden skaler koddan yüzde 8 daha yavaş çalıştı.
  • Dört durum kontrolünün tek bir vektörel dallanmaya indirilmesi ve bellek yüklemelerinin azaltılması performansı artırdı.

Popüler içerik tanımlı veri parçalama (CDC) kütüphanesi gearhash, 0.1.4 sürümüyle ARM64 mimarisi için NEON desteği kazandı. Önceden yalnızca x86_64 mimarisindeki SSE4.2 ve AVX2 komut kümeleri için optimize edilen kütüphane, ARM64 tabanlı işlemcilerde skaler döngüye düşüyordu. Yeni NEON arka ucu sayesinde tipik veri parçası boyutlarında yaklaşık iki kat başarım artışı sağlandı ve sistem geriye dönük uyumlu olarak otomatik devreye girdi.

Seri bir hash algoritması olan GEAR'ın paralelleştirilmesi, 64 baytlık ısınma aralığının ardından bağımsız şeritler oluşturulmasıyla mümkün oldu. İlk doğrudan NEON uyarlaması skaler koddan daha yavaş kalsa da bağımlılık zincirinin kısaltılması ve derleyicinin aritmetik yeniden düzenleme hamlelerinin aşılmasıyla performans toparlandı. Geliştirici, döngü başına dört ara durumu tek bir vektörel sınır denetimiyle birleştirerek ve bellek yükleme talimatlarını azaltarak işlemci darboğazlarını çözdü.

Hugging Face'in büyük dosyalar için Git LFS yerine varsayılan olarak benimsediği Xet protokolünün temel parçası olan gearhash, günde 20 bine yakın indirmeye ulaşıyor. Xet istemcisinin kullandığı 64 KiB ortalama parça boyutunda NEON başarım oranı skaler yönteme kıyasla 2,14 kat hıza ulaştı. Ortalama 350 baytın altındaki çok küçük parçalarda ek çağrı maliyeti nedeniyle skaler kodun daha verimli kaldığı ölçüldü.

Kaynak

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