TPU Derinlemesine Analizi
(henryhmko.github.io)- TPU, Google tarafından büyük ölçekli yapay zeka eğitimi ve çıkarımı için geliştirilmiş özel bir çiptir ve GPU'lardan farklı bir tasarım felsefesine sahiptir
- Ölçeklenebilirlik ve enerji verimliliğini vurgular; donanım (ör. sistem-üzerinde-çip yapısı, büyük yonga içi bellek) ve yazılımı (XLA derleyicisi) birlikte tasarlar
- Temel yapı; systolic array, boru hattı işleme ve önceden derleme yaklaşımıdır ve derin öğrenme işlemlerinin çoğuna (özellikle matris çarpımına) optimize edilmiştir
- OCI ve OCS teknolojileri sayesinde esnek düğüm yapılandırması, yüksek performanslı paralel işleme ve çeşitli topoloji seçimleri mümkündür
- TPU sistemi, tek bir çipten devasa multi-pod yapılara kadar katmanlı biçimde ölçeklenerek büyük yapay zeka modellerinin eğitimi ve kaynakların verimli kullanımı için olanak sağlar
Genel Bakış ve Arka Plan
- TPU, Google'ın yapay zeka servislerinin büyük ölçekli genişlemesine yanıt vermek için geliştirdiği ASIC tabanlı bir çiptir
- Başlangıçta GPU, FPGA ve ASIC seçenekleri değerlendirilse de, 2013'te sesli arama gibi alanlarda derin öğrenme kullanımının artmasıyla özel donanım ihtiyacı büyüdü
- Günümüzde Gemini, Veo gibi başlıca yapay zeka servislerinde kritik rol oynar ve öneri modelleri (DLRM) gibi alanlarda da yaygın biçimde kullanılır
TPU Tek Çip Mimarisi
Temel Bileşenler
- TPUv4 temel alındığında, tek bir çipte 2 adet TensorCore bulunur (çıkarıma odaklı TPU'larda 1 adet)
- Her bir TensorCore, CMEM (128MiB) ve HBM (32GiB) bellek birimlerine bağlıdır
TensorCore İç Yapısı
- Matrix Multiply Unit (MXU): 128x128 systolic array tabanlıdır, matris çarpımına ayrılmıştır
- Vector Unit (VPU): genel amaçlı eleman-bazlı işlemleri yürütür
- Vector Memory (VMEM; 32MiB): veriyi HBM'den kopyalayarak çalışma hazırlık belleği olarak kullanır
- Scalar Unit + Scalar Memory (SMEM; 10MiB): kontrol akışı, skaler işlemler ve bellek adresi yönetiminden sorumludur
GPU ile Yapısal Farklar
- TPU'da yonga içi bellek (CMEM, VMEM, SMEM), GPU'ya kıyasla çok daha büyüktür
- HBM kapasitesi GPU'da daha yüksektir ve işlem çekirdeği sayısı da GPU'da çok daha fazladır
- TPUv5p temel alındığında, çip başına 500 TFLOPs/sec ve tüm pod (8960 çip) ölçeğinde 4.45 ExaFLOPs/sec düzeyinde yüksek performans elde edilir
TPU Tasarım Felsefesi
1. Systolic Array ve Boru Hattı İşleme
- Systolic array, işlem elemanlarının (PE) dizi halinde yerleşip işlem sonuçlarını komşu elemanlara aktardığı yapıdır
- Veri girdisinden sonra ek kontrol olmadan sürekli işlem yapılabilir; bellek okuma ve yazma yalnızca giriş ve çıkışta gerçekleşir
- Özellikle matris çarpımı ve konvolüsyon için optimize edilmiştir
- Boru hattı işleme sayesinde hesaplama ve veri taşımayı aynı anda ilerleterek throughput optimize edilir
Systolic Array'in Dezavantajı - Seyreklik (sparsity)
- Tüm işlem elemanları sürekli etkin olduğundan seyrek matrisler için uygun değildir
- İleride DL modelleri düzensiz seyreklik yönüne giderse bu bir sınırlama oluşturabilir
2. Önceden Derleme (AoT) ve Minimum Önbellek Kullanımı
- TPU-XLA ortak tasarımı, düzensiz bellek erişimi gerektiren önbellek bağımlılığını en aza indirerek enerji kullanımını azaltır
- XLA derleyicisi, işlem grafiğini analiz ederek bellek erişim desenlerini önceden çıkarır; önbellek yerine scratchpad bellek odaklı çalışır
- JAX içindeki
@jit, JIT ile AoT arasında bir formdur; ilk çalıştırmada statik grafik oluşturulur ve ardından XLA ile AoT derleme yapılır - Girdi biçimi değişirse yeniden derleme gerekir; dinamik padding/iterasyonlarda verimsizlik oluşur
- Yüksek enerji verimliliği sağlar, ancak esneklik eksikliği bir dezavantajdır
TPUv4 Enerji Verimliliği
- Modern çipler enerji tüketimini azaltmak için HBM3 bellek kullanır
- Hesaplamaya kıyasla bellek işlemlerinin enerji tüketimi onlarca ila yüzlerce kat fazla olduğundan, bellek erişimini azaltmak verimliliği büyük ölçüde artırabilir
TPU Çoklu Çip Mimarisi
Tepsi Düzeyi (Tray/Board; 4 çip)
- 1 tepsi, 4 TPU çipi (8 TensorCore) ve bir CPU Host'tan oluşur
- Host↔Chip bağlantısı PCIe ile, Chip↔Chip bağlantısı ise daha yüksek bant genişliği sunan Inter-Core Interconnect (ICI) ile yapılır
Raf Düzeyi (Rack; 4x4x4=64 çip)
- 1 raf; 64 TPU çipi, 3D torus (4x4x4) yapısında ICI ve OCS (Optical Circuit Switching) ile bağlanır
- Google içinde rack, pod ve slice terimleri birbirinden ayrılır
- Rack: 64 çiplik fiziksel birim (= küp)
- Pod: ICI ve OCS ile bağlanabilen en büyük birim (ör. TPUv4 = 4096 çip = 64 rack)
- Slice: 4 çip ile Superpod arasında herhangi bir yapılandırmayı ifade eden soyut birim
OCS'nin Avantajları
- Wraparound: Her ekseni bir halka (1D torus) haline getirerek düğümler arasındaki en kötü durum geçiş sayısını azaltır
- Esnek non-contiguous slice: OCS anahtarlama yapısı sayesinde fiziksel olarak uzak düğümler de tek bir slice olarak yapılandırılabilir; bu da kaynak kullanımı ve bakımı kolaylaştırır
- Bükülmüş topoloji: Aynı çip sayısında (x, y, z sabit) bağlantı yapısı değiştirilerek belirli işlem desenleri için hız optimize edilebilir (ör. twisted torus)
Topoloji Kullanım Örnekleri
- Küp biçimi: veri/tensor paralelliği için uygundur (maksimum bant genişliği)
- Doğrusal biçim (sigaramsı): boru hattı paralelliği için avantajlıdır
- Twisted torus: all-to-all iletişim gerektiğinde (ör. tensor parallel) hız artışı sağlar
Superpod (Full Pod/Superpod; TPUv4: 4096 çip/64 rack)
- Birden fazla rack, ICI ve OCS ile bağlanarak çok büyük bir sistem kurulur
- Slice topolojisi türüne göre iletişim bant genişliği ve paralel işleme performansı farklılaşır
- OCS sayesinde non-contiguous slice, twisted topology gibi esneklikler elde edilir
Multi-pod Düzeyi (Multi-pod/Multislice; TPUv4: 4096'dan fazla)
- Birden fazla pod, veri merkezi ağı (DCN) ile bağlanarak büyük ölçekli eğitim altyapısı sağlar; ancak bant genişliği ICI'ye kıyasla düşüktür
- PaLM eğitimi 2 pod (6144 TPUv4) kullanılarak yürütüldü ve toplam 6 pod kaynağı yönetildi
- Büyük ölçekli model geliştirmede, araştırmacının belirlediği ayarlara (paralellik boyutları vb.) göre XLA derleyicisi iletişim desenlerini optimize eder
- XLA, her slice ve pod arasına iletişim işlemleri ekleyerek minimum kod değişikliğiyle büyük ölçekli dağıtık eğitimi mümkün kılar
Fiziksel Donanım ve Şematik Örnekler
- TPU rack: 4x4x4 3D torus tek bir birimdir; her satırda 2 tepsi (8 çip) bulunur
- TPUv4 tray: fiilen 4 PCIe portuna sahiptir (her TPU için 1 adet)
- TPUv4 çipi: ortada ASIC, çevresinde 4 HBM yığını (2 TensorCore temelinde)
- TPUv4i (çıkarım tipi) çip floorplan'ı: 1 TensorCore, geniş CMEM alanı kaplar
Kapanış
- Google TPU Research Cloud(TRC) için araştırma desteğine değer verilmektedir
Kaynaklar
- TPU Multi-Slice Trainng
- Xu et al., GSPMD makalesi
- Jouppi et al., TPUv4i makalesi
- How to Scale Your Model - TPUs
- Bunun dışında yaklaşık 10 makale ve resmî sunum materyali
Henüz yorum yok.