1 puan yazan GN⁺ 2024-07-28 | 1 yorum | WhatsApp'ta paylaş

Zen 5'in 2-Ahead Branch Predictor Unit'i: 30 Yıllık Bir Fikir Yeni Hileleri Nasıl Mümkün Kılıyor

  • Giriş

    • AMD'nin Zen 5 mimarisi, önceki Zen mimarisinin tamamen yeniden tasarlanmış hali
    • En önemli değişikliklerden biri yeni 2-Ahead Branch Predictor Unit
    • Bu fikir, 30 yıl önceki bir makaleden geliyor
  • Branch Predictor'un önemi

    • Bilgisayarlar programları bellekte saklar ve çalıştırır
    • İşlemci, komutları getiren ve yürüten ön uç ile arka uç olarak ikiye ayrılır
    • Koşullu sıçramalar, pipeline'ı doldurma konusunda büyük bir zorluk oluşturur
    • Yanlış tahminler, pipeline'ın boşaltılıp yeniden başlatılmasını gerektirir
    • Bu nedenle işlemci, programın komut dizisini olabildiğince doğru tahmin etmelidir
  • 2-Ahead Branch Predictor'un ortaya çıkışı

    • 1990'ların başından beri önerilen bir fikir
    • TAGE predictor gibi daha verimli yöntemler geliştirildi
    • Ancak tek çekirdek performansını artırmak için 2-Ahead Branch Predictor yeniden ilgi görüyor
  • x86 mimarisinin avantajı

    • x86, sabit uzunluklu komutlara sahip diğer ISA'lara kıyasla 2-Ahead Branch Prediction'dan daha fazla fayda sağlar
    • x86'da komut sınırlarını belirlemek için daha karmaşık işlem gerekir
    • Zen 5, iki adet 32 baytlık fetch pipeline'ı ve 4-wide decode cluster kullanır
  • Seznec makalesindeki uygulama

    • Seznec makalesi, 2-Ahead Branch Predictor'un nasıl uygulanacağını açıklar
    • Zen 5, bu makalenin önerilerini takip eder
    • İki adet 32 baytlık fetch pipeline'ı ve 6-wide dual-port op cache kullanır
    • Tahmin doğruluğunu artırmak için L1 BTB ve L2 BTB kullanılır
  • Sonuç

    • Zen 5'in 2-Ahead Branch Predictor'u, Zen mimarisindeki önemli değişimlerden biri
    • Bu yeni tahminleyici, gelecekteki Zen çekirdeği geliştirmelerine büyük katkı sağlayacak

GN⁺ Özeti

  • Zen 5'in 2-Ahead Branch Predictor'u, 30 yıllık bir fikrin modern bir yeniden yorumu
  • Bu teknoloji, işlemcinin komut tahmin doğruluğunu artırarak performansı iyileştirir
  • x86 mimarisinin karmaşıklığını ele almada özellikle yararlıdır
  • Bu yazı, CPU mimarisi ve performans optimizasyonuyla ilgilenenler için faydalı
  • Benzer özelliklere sahip diğer projeler arasında Intel'in Golden Cove mimarisi bulunuyor

1 yorum

 
GN⁺ 2024-07-28
Hacker News yorumu
  • branch prediction hakkında harika bir açıklama var
  • SMT performansı ilginç olabilir gibi görünüyor; Zen5c'de 192 Core veya 384 vCPU sunuluyor. Zen 6c'de 256 Core beklenebilir. Çift soketli 1U sunucuda 512 Core ve 1024 vCPU olasılığı var
    • 2014'teki web uygulaması ölçeklendirme sorunları tek bir sunucuyla çözülebilir, sadece soğutma sorununu halletmek gerekir
    • vCPU başına 1 RPS ile 1000 RPS mümkün, cache hit hariç
    • HN ana sayfası bile saniyede 1000 sayfa görüntülemeyi aşmıyor
  • Onlarca yıllık makalelerin donanım gelişmeleri sayesinde "son teknoloji" haline gelmesi ilginç
    • örnek: 3D video oyunlarında kullanılan Z-buffer
    • ilk makalede sunulduğunda ana konu değildi, çünkü bellek gereksinimi yüksekti
    • birkaç on yıl sonra megabaytlar ucuzlayınca tüm gerçek zamanlı 3D renderer'lar bunu kullanmaya başladı
  • speculative predictor'lar kişisel verileri sızdıran çeşitli saldırılara karşı savunmasız. Birçok yaygın ISA da savunmasız; bu saldırıların etkisini azaltmak için önlem alıp almadıklarını merak ediyorum
  • Bu alanda yeni biri olarak 2-ahead branch predictor'ın ne olduğu bana net değil
  • Daha fazla branch hint'e ihtiyaç var gibi görünüyor
    • Cold, warm, warmer, varsayılan olarak hot'u atlamak mı? Tüm dalları cold olarak ayarlayıp yalnızca birini hariç tutmanın kötü bir fikir olup olmayacağını merak ediyorum
    • Koşullu dallanma olduğunda iki olası dalı da alıp hazırlayıp yanlış olanı atmanın neden zor olduğunu merak ediyorum
  • Daha fazla bellek bant genişliği gerekiyor; tüketici AM5 soketindeki iki bellek kanalı, performansa kıyasla yetersiz kalıyor
    • M2 Max'e geçtim ve bellek bant genişliğindeki iyileşme veri işlerini hızlandırdı. Ağır çoklu görev altında bile Zen kurulumunun dar bellek hattı sık sık tıkanıyor
  • Zen 5, iki thread etkin olduğunda decode cluster'ı ve ona eşlik eden fetch pipeline'ı statik olarak bölüyor
    • Bu, hyper-threading performansına büyük bir artış sağlayacak gibi görünüyor. Zen1'de HT sayesinde yaklaşık %25 hızlanma vardı. Daha yeni modellerde test eden biri olup olmadığını merak ediyorum
  • Hâlâ 2-ahead branch predictor'ın ne olduğunu bilmiyorum