- GPU'lar CPU'lardan 10 ila 100 kat daha güçlü, ancak dinamik iş yüklerini işlemede zorlanıyorlar ve paralel programlama araçları yetersiz olduğu için genel amaçlı işlerde performanslarını tam kullanamıyorlar
- Geçmişte Connection Machine, Cell ve Larrabee gibi paralel bilgisayar tasarımları vardı, ancak programlama modelinin karmaşıklığı gibi nedenlerle başarısız oldular
- Modern GPU'larda bellek yönetimi sorunları ve karmaşık yürütme modeli nedeniyle performansı optimize etmek zordur; kuyruk tabanlı verimli bir veri aktarım yapısına ihtiyaç vardır
- AI hızlandırıcıları ve paralel çekirdek kümeleri gibi yeni mimariler, GPU'nun sınırlamalarını aşma potansiyeline sahip
- Paralel bilgisayarların gelişimi hâlâ tamamlanmış değil; daha basit ve verimli bir yürütme modeli ile programlama araçlarının iyileştirilmesi gerekiyor
GPU'nun güçlü performansı ve sınırları
- GPU'lar CPU'lardan yaklaşık 10 ila 100 kat daha güçlüdür (iş türüne göre değişir)
- Gerçek zamanlı grafik işleme ve makine öğreniminde bu performans iyi değerlendiriliyor
- Ancak GPU performansı genel amaçlı işlerde yeterince kullanılamıyor
GPU'nun sınırlamalarının nedenleri
- Zayıf yürütme modeli
- GPU'lar öngörülebilir büyük veri üzerinde (ör. yoğun matris çarpımı) güçlüdür, ancak dinamik işlerde performans düşer
- Yetersiz diller ve araçlar
- Paralel bilgisayar programlaması başlı başına çok zordur
Karmaşıklığın artışı
- En yeni GPU'larda karmaşıklık hızla artıyor
- Mesh shader'lar ve work graph'lar gibi yeni özellikler eklendi, ancak bazı temel işler hâlâ desteklenmiyor
Karmaşık GPU bellek verimliliği sorunu
- Yazar, Vello adlı gelişmiş bir 2D vektör grafik işleyici geliştiriyor
- CPU sahne tanımını (SVG biçiminde) yüklüyor → compute shader bunu işleyip görüntü üretiyor
- Sorun: Bellek yönetiminin zorluğu
- Ara sonuçları depolayacak tamponların boyutunu öngörmek zor
- Tampon taşarsa GPU'dan CPU'ya okuma işlemi performans kaybına yol açıyor
Önerilen çözüm
- Sonuçların GPU içinde kuyruk (queue) üzerinden aktarılacak şekilde iyileştirilmesi
Geçmişteki paralel bilgisayar tasarımları
-
Connection Machine (1985)
- Hiperküp ağıyla bağlanmış 64 bin işlemcili bir paralel bilgisayar
- Her işlemcinin performansı düşüktü, ancak büyük ölçekli paralel işler mümkündü
- Paralel algoritma araştırmalarına büyük katkı sağladı
-
Cell (2006, PS3)
- PS3'e dahil edilen bir paralel bilgisayar (yaklaşık 87,4 milyon adet sevk edildi)
- 8 paralel çekirdek bağımsız olarak hesaplama yapabiliyordu
- Başarısızlığın nedeni programlama modelinin karmaşıklığıydı
-
Larrabee (2008)
- x86 tabanlı paralel bilgisayar olarak geliştirildi
- Başarısızlık nedenleri: güç tüketimi ve yetersiz yazılım desteği
- Daha sonra Xeon Phi ve AVX-512 komutlarına uzandı
Değişen iş yükleri
- Oyunlarda da hesaplama işlerinin payı artıyor
- Starfield örneğinde toplam iş süresinin yaklaşık %50'si hesaplama
- Nanite işleyicisi, küçük üçgenlerin rasterizasyonunu da hesaplama olarak yapıyor
Gelecekteki gelişim yönleri
-
1. Çekirdek kümesini genişletmek (Cell'in dönüşü)
- Modern üst düzey CPU tasarımları 100 milyardan fazla transistör içeriyor
- Düşük güçlü, basit RISC çekirdeklerinden yüzlerce ila binlerce içeren çipler üretmek mümkün
- AI hızlandırıcıları zaten benzer bir mimari benimsiyor
-
2. GPU üzerinde Vulkan komutlarını çalıştırmak
- Vulkan komutlarının doğrudan GPU üzerinde çalıştırılabilmesine destek verilmesi
- Şu anda bazı Vulkan uzantılarında sınırlı biçimde uygulanıyor
-
3. Work Graph
- Programın düğümler (kernel'ler) ve kenarlardan (kuyruklar) oluşması
- Paralel çalışır, ancak şu sınırlamalar vardır
- join işlemleri zordur
- Öğelerin sıralama düzeni garanti edilmez
- Değişken boyutlu öğeler desteklenmez
-
4. CPU ile birleşerek evrimleşme
- Yüksek performanslı CPU tasarımları paralel işlemeye optimize olabilir
- Paralel hesaplama ve SIMD (tek komut çoklu veri) işleme performansı gelişiyor
-
5. Donanım zaten hazır olabilir
- Bazı GPU'larda kullanıcı kodu çalıştırabilen komut işlemcileri bulunuyor
- Komut işlemcisi tamamen açılırsa performans artışı mümkün olabilir
Karmaşıklık sorunu
- GPU mimarisi aşırı derecede karmaşıktır
- Paralel bilgisayar + özel donanım + komut işleme yapısı iç içe geçmiş durumda
- Çeşitli API ve sürücü uyumluluğu sorunları var
- Buna karşılık CPU'lar, basit komut kümesi temeli üzerinde performanslarını artırmayı sürdürüyor
Sonuç
- Paralel bilgisayarların gelişimi hâlâ tamamlanmış değil
- GPU'ların grafik ve AI işleri dışında genel amaçlı işlere de optimize olabilmesi için şunlar gerekli
- Basit bir yürütme modeli
- Programlama kolaylığı
- Düşük güç tüketimi
- Vello gibi gelişmiş 2D işleyicilerde paralel bilgisayar performansından tam olarak yararlanmak mümkün olabilir
- GPU performans sınırlarını aşacak yeni bir paralel bilgisayar mimarisi gerekiyor
1 yorum
Hacker News görüşü
"Bunu engelleyen iki ana etken olduğuna inanıyorum"
Programlama modeli 2025 itibarıyla verimsiz
"yüzlerce küçük CPU'yu tek bir çipe koyan" bir şirkette çalışma deneyimi
GPU'lar CPU'lardan 10 ila 100 kat daha güçlü
M4 Mac mini süper bilgisayarı kurmaya dair görüş
Paralel bilgisayarların sorunları
2D renderer için neden GPU gerektiği net değil
Larabee'den çok bahsediliyor ama Xeon Phis'ten hiç söz edilmiyor
GPU'nun yüksek throughput sağlamasını mümkün kılan fedakarlıklar