- GPU, modern makine öğreniminde merkezi bir rol oynar ve yüksek hızlı matris çarpımı işlemlerine özelleşmiş çok sayıda Streaming Multiprocessor(SM) ile HBM (yüksek bant genişlikli bellek) birleşiminden oluşan bir yapıya sahiptir
- GPU’nun SM’leri, Tensor Core (matris çarpımı) ve CUDA Core (vektör işlemleri) olarak ayrılır; büyük ölçekli paralel hesaplama ve esnek programlamayı destekler
- GPU ile TPU, iç mimari ve ağ yapısı açısından farklılık gösterir; GPU genel amaçlı kullanım ve ölçeklenebilirlik açısından güçlüdür, ancak en iyi performansa ulaşmak için daha fazla değerlendirme gerektirir
- Bir düğüm (Node) içinde NVLink ve NVSwitch ile GPU’lar arasında ultra yüksek hızlı iletişim mümkündür; düğümler arasında ise InfiniBand gibi ağlarla bağlanarak büyük ölçekli dağıtık eğitime yanıt verir
- GPU’daki kolektif işlemler (Collectives) (ör. AllReduce, AllGather vb.), donanım mimarisi ve ağ katmanına göre performans açısından büyük farklılık gösterir ve pratikte teorik bant genişliğinin altında kalma eğilimindedir
GPU nedir?
- En yeni ML (makine öğrenimi) GPU’ları (ör. H100, B200), matris çarpımı işlemlerine özelleşmiş onlarca ila yüzlerce Streaming Multiprocessor(SM) ile hızlı HBM belleğin birleştiği bir yapıya sahiptir
- Her SM içinde Tensor Core (matris çarpımı), Warp Scheduler (vektör işlemleri), SMEM (çip içi önbellek) bulunur
- TPU’dan farklı olarak GPU, 100’den fazla SM üzerinden daha esnek ve büyük ölçekli paralel işlem yapabilir
SM ayrıntılı yapısı
- SM, 4 adet alt bölüme ayrılır ve her alt bölümde sırasıyla Tensor Core, CUDA Core (vektör işlemleri), Warp Scheduler, register file gibi bileşenler bulunur
- CUDA Core vektör aritmetik işlemlerinden (SIMD/SIMT), Tensor Core ise matris çarpımından sorumludur
- Tensor Core FLOPs değeri ezici biçimde yüksektir ve düşük hassasiyetli işlemlerde işlem hızı daha da artar
- En yeni GPU’larda (ör. B200), büyük kapasiteli TMEM eklenerek geniş Tensor Core girdileri desteklenir
CUDA Core’un esnekliği
- GPU’nun CUDA Core yapısı SIMT (Single Instruction Multiple Threads) modelini kullanır; tek bir komut birden çok thread üzerinde paralel yürütülür
- Her thread bağımsız bir komut işaretçisine (program counter) sahip olduğundan koşullu dallanma gibi esneklikler sağlar; ancak warp içi komut ayrışması (divergence) fazlaysa performans düşer
- Her CUDA Core, bağımsız durum ve bellek erişimi açısından serbesttir (TPU ise yalnızca ardışık belleği işleyebilir)
Zamanlama/paralellik
- SM, çok sayıda warp’ı (en fazla 64) zamanlayarak eşzamanlı yürütür; her warp scheduler aynı anda tek bir programı çalıştırır
- Bu yapı sayesinde GPU, oldukça esnek olmasının yanında yüksek eşzamanlı işlem kapasitesi de sunar
GPU bellek yapısı
- GPU’da en büyük bellek HBM’dir; bunun dışında L2/L1(SMEM)/TMEM/register gibi bir bellek hiyerarşisi bulunur
En yeni GPU özelliklerinin özeti
- SM (Streaming Multiprocessor) sayısı, saat hızı, bellek, FLOPs, bant genişliği (BW) gibi değerler modele göre değişir
- Bellek kapasitesi (HBM), bant genişliği ve FLOPs (floating point/tamsayı/düşük hassasiyet) gibi ölçütler nesiller ilerledikçe artar
- Tabloda (atlanmış) öne çıkan özellikler: Blackwell(B200) için HBM 192GB, HBM BW 8.0TB/s, FP8 FLOPs 4.5e15 vb.
- Her nesilde register ve çip içi önbellek (SMEM) kapasitesindeki artışlar ile TMEM eklenmesi gibi donanım gelişmeleri açıkça görülür
GPU/TPU karşılaştırması
- GPU, genel amaçlı olup çok sayıda küçük SM (paralel birim) halinde modülerdir; donanım kontrolü fazla olduğu için anlamak/optimize etmek daha zordur
- TPU, az sayıda büyük Tensor Core ve çok sayıda vektör ALU(VPU) ile kurulur; tek iş parçacıklı kontrol yapısı sayesinde donanım sadeleşir ve maliyet düşebilir
- Bu nedenle TPU’da derleyici optimizasyonu zorunludur; GPU’da ise birden çok kernel bağımsız çalıştırılabildiği için kullanım kolaylığı daha yüksektir
- Performans/fiyat açısından son dönemde H200 GPU, TPU v5p’ye göre FLOPs/s bakımından 2 kat, HBM açısından 1.5 kat, fiyat olarak ise yaklaşık 2.5 kat düzeyindedir
- TPU, VMEM (çip içi önbellek) bakımından daha büyük ve daha hızlıdır; bu da LLM model çıkarımı gibi senaryolarda önemli avantaj sağlayabilir
GPU donanım quiz’i Soru-Cevap özeti
- H100’ün fp32 CUDA core sayısı toplam 16,896’dır (132 SM x 4 x 32), B200’de ise 18,944’tür
- Vektör işlem FLOPs değeri H100 için en fazla 33.5TFLOPs/s düzeyindedir; bu, Tensor Core’un matris çarpımı FLOPs değeriyle (990TFLOPs/s) karşılaştırıldığında 30 kat daha düşüktür
- H100’ün L1/SMEM ve register toplam kapasitesi 66MB, TPU VMEM ise 120MB’dir
- Bandwidth (bant genişliği) ile FLOPs oranı (teorik işlem yoğunluğu) H100/B200 için yaklaşık 280-300 olup TPU’ya benzerdir
GPU ağ yapısı (iletişim mimarisi)
Düğüm/cluster yapısı
- GPU düğümleri genellikle 8 GPU’dan oluşur ve NVLink (ultra hızlı) ile NVSwitch (switch) üzerinden tam bant genişliğiyle doğrudan bağlanır
- Düğümler arasında ölçek büyütmek için InfiniBand (Ethernet vb.) kullanılır
- En yeni (Blackwell) GPU’lar, 72 Node’a kadar genişleyebilen bir yapıya sahiptir
Ağ katmanlarına göre özellikler
- Düğüm içi (NVLink alanı): GPU başına çıkış bant genişliği 450GB/s (H100), 900GB/s (B200); NVSwitch başına en fazla 1.6TB/s
- Düğüm üstü (InfiniBand Leaf/Spine): Leaf Switch (8 adet) ~ Spine Switch (16 adet) yapısı; GPU~GPU arasında teorik olarak 400GB/s tam bant genişliği korunur
- SuperPod gibi büyük mimarilerde 1024 GPU (128 düğüm), GB200 (72GPU Node) ise 9 kat artırılmış bant genişliğiyle (3600GB/s) öne çıkar
Ağ performansı özeti
- Teorik olarak ağ yapısı (Full Fat Tree), düğümden düğüme de azami bant genişliği sağlayacak şekilde tasarlanır
- Donanım port kısıtları vb. nedenlerle 1024~4096 GPU ölçeğine çıkıldığında Spine/Core Switch eklenerek katmanlı yapı kullanılır
- Düğüm içi bant genişliğinden (450GB/s) düğümler arası bant genişliğine (400GB/s) geçiş = kolektif işlemlerde performans farkı
Kolektif işlemler (Collectives) yapısı
- AllGather, AllReduce (toplama), AllToAll (dağıtım) gibi yüksek seviyeli kolektif işlemler desteklenir
- Düğüm içinde NVLink ile doğrudan bağlı oldukları için en iyi performans elde edilebilir (teorik B/W); düğümden düğüme ise InfiniBand üzerinden iletişim kurulur
- NVIDIA’nın NCCL, NVSHMEM kütüphaneleri kullanılır
Kolektif işlem performans analizi
- AllGather/ReduceScatter: B/W (H100 için 450GB/s) düzeyinde ring yöntemiyle uygulanır; küçük mesajlarda tree yöntemi de mümkündür
- AllToAll: Her GPU veriyi doğrudan hedef GPU’ya gönderir; B/W’nin N’e bölünmesi yaklaşımı kullanıldığından düğüm içinde teorik olarak 2 kat daha hızlıdır
- Gerçek ölçümlerde AllReduce yaklaşık 370GB/s seviyesindedir; yani donanımın azami değerine ulaşamaz
- TPU’ya kıyasla ancak büyük hacimlerde (onlarca MB ~ GB) donanımın peak bandwidth düzeyine yaklaşılır
Genel özet ve içgörüler
- GPU’nun güçlü yönleri genel amaçlı kullanım ve ölçeklenebilirliktir; ancak donanım/ağ yapısına bağlı olarak performans optimizasyonunun zorluğu ve gözlemlenebilirliği TPU’ya göre daha yüksektir
- Ağ yapısı (Intra-Node/NVLink/InfiniBand/Leaf/Spine vb.), büyük ölçekli eğitim performansının anahtarıdır; pratik bant genişliği ile teorik bant genişliği arasındaki farka dikkat etmek gerekir
- Kolektif işlemler ve ağ yapısının anlaşılması, çok büyük dağıtık model eğitimi/servis sunumu için temel gerekliliktir
- Pratik benchmark’lar ve donanımın ayrıntılı yapısının anlaşılması temelinde, performans darboğazlarını ve en uygun koşulları saptayan bir süreç gereklidir
Henüz yorum yok.