Dağıtılmış Hesaplama ve Yapay Zeka Uygulamaları
Yapay zeka ve bilimsel hesaplama uygulamaları, dağıtılmış hesaplama problemlerinin mükemmel örnekleridir. Bu tür problemler, bir tek makinede çalıştırılamayacak kadar büyük ve hesaplamaları çok yoğun olduğundan, hesaplamalar paralel görevlere bölünerek, binlerce işlem motoruna, örneğin CPU ve GPU’lara dağıtılır.
İş Yüklerinin Dağıtımı
Ölçeklenebilir performansa ulaşmak için sistem, eğitim verileri, model parametreleri veya her ikisi gibi iş yüklerini birden fazla düğüm arasında böler. Bu düğümler, model eğitiminde geri yayılım sırasında yeni işlenmiş model hesaplamalarının gradyanları gibi bilgileri sık sık paylaşmak zorundadır. Bu durum, tüm düğümleri kapsayan toplu iletişim işlemlerine ihtiyaç duyar. Bu işlemler arasında örneğin tüm azaltma (all-reduce), yayma (broadcast) ve toplama-dağıtma (gather-scatter) işlemleri bulunmaktadır.
Kolektif İletişimin Önemi
Bu toplu iletişim düzenleri, dağıtılmış sistemde model parametrelerinin senkronizasyonunu ve yakınsamayı sağlamak için gereklidir. Bu işlemlerin verimliliği, iletişim gecikmelerini en aza indirmek ve paralel hesaplamayı maksimum düzeye çıkarmak için kritik öneme sahiptir. Zayıf optimize edilmiş kolektif iletişimler, darboğazlara neden olabilir ve ölçeklenebilirliği sınırlayabilir.
Darbe Yöntemlerini Aşmak
Darbe noktaları, çeşitli faktörlerden kaynaklanmaktadır:
- Gecikme ve bant genişliği sınırlamaları: Kolektif işlemler, düğümler arasında yüksek hızlı veri transferlerine dayanır ve bunlar fiziksel ağın gecikme ve bant genişliği ile sınırlıdır. Sistem ölçeği arttıkça, değişim gereken veri miktarı da büyür ve iletişim süresi, hesaplamanın önüne geçmeye başlar.
- Senkronizasyon yükü: Birçok toplu işlem, tüm katılımcı düğümlerin aynı duruma ulaşmasını gerektiren senkronizasyon noktaları gerektirir. Bazı düğümler yavaşsa, tüm sistem gecikmelere maruz kalır, bu da verimsizlikler yaşanmasına neden olur.
- Ağda rekabet: Ağ, çok sayıda düğümün aynı anda iletişim kurmasıyla daha yoğun hale geldikçe, bant genişliği ve ağ kaynakları için rekabet artar ve bu da kolektif işlemleri daha da yavaşlatır.
- Optimizasyona uygun iletişim düzenleri: Bazı toplu iletişim algoritmaları (örneğin, ağaç tabanlı azaltmalar veya halka tabanlı tüm azaltmalar), büyük ölçekli sistemler için her zaman iyi optimize edilmemiştir ve bu da mevcut kaynakların verimsiz kullanımına ve artırılmış gecikmelere yol açar.
NVIDIA SHARP’nin Oluşumu
Temel toplu iletişimler, tüm hesaplama motorlarının veri alışverişi yapmasını sağlar. Bu iletişimin bir NIC veya sunucu üzerinde yönetilmesi, büyük miktarda veri aktarımını gerektirir ve sunucu titremesi adı verilen gecikme dalgalanmalarına maruz kalır.
Bu sorunu aşmanın bir yolu, kolektif iletişimlerin yönetimini ve yürütülmesini anahtar devresine taşımaktır. Bu, transfer edilen veri miktarını yarı yarıya azaltır ve titremeyi minimize eder. NVIDIA’nın Ölçeklenebilir Hiyerarşik Toplama ve Azaltma Protokolü (SHARP), bu konsepti uygulayan bir teknolojidir ve in-network computing (ağ içi hesaplama) kavramını tanıtır. Bu teknoloji, anahtar devresi içinde yer alır ve dağıtılmış hesaplama sistemlerinde toplu iletişimi hızlandırmak için tasarlanmıştır.
NVIDIA SHARP’nin Gelişim Aşamaları
SHARP’ın ilk nesli, bilimsel hesaplama uygulamalarına özel olarak tasarlanmış ve küçük mesaj azaltma işlemlerine odaklanmıştır. NVIDIA EDR 100Gb/s anahtar nesli ile tanıtılmıştır ve önde gelen Mesaj Geçiş Arayüzü (MPI) kütüphaneleri tarafından hızlıca desteklenmiştir. SHARPv1 küçük mesaj azaltma işlemleri, birden fazla bilimsel hesaplama uygulamasını eş zamanlı desteklemiştir.
Ohio Eyalet Üniversitesi’nden MVAPICH2, MPI standartlarının yüksek performanslı hesaplama (HPC) ortamları için özel olarak tasarlanmış açık kaynak kodlu bir uygulamasıdır. MVAPICH MPI kütüphanesi için sorumlu ekip, SHARP’ın Texas Gelişmiş Hesaplama Merkezi Frontera süper bilgisayarındaki performansını göstermiştir. MPI AllReduce için 5 kat daha yüksek performans ve MPI Barrier toplu iletişimleri için ise 9 kata kadar yüksek performans elde edilmiştir.
İkinci nesil SHARP, NVIDIA HDR 200Gb/s Kuantum InfiniBand anahtar nesli ile tanıtılmış ve AI iş yüklerine destek eklenmiştir. SHARPv2, tek bir iş yüküne destek verecek şekilde büyük mesaj azaltma işlemlerini içerir. Bu sürüm, daha karmaşık veri türleri ve toplama işlemlerini destekleyerek teknolojinin ölçeklenebilirliğini ve esnekliğini daha da artırmıştır.
SHARPv2’nin performans avantajı, NVIDIA’nın MLPerf başvurusu ve sonuçları ile gösterilmiştir; Haziran 2021’de 17% daha yüksek BERT eğitim performansı elde edilmiştir. Ayrıntılı bilgi için MLPerf v1.0 Eğitim Ölçümlerine göz atabilirsiniz.
SHARP ile Uçtan Uca AI Sistemi Optimizasyonu
SHARP’ın güçlü bir örneği, tüm azaltma (all-reduce) işlemidir. Model eğitiminde, çoklu GPU veya düğümler arasında gradyanlar toplanır, ve SHARP gradyanları ağ içinde toplar; bu sayede GPU’lar veya düğümler arasında tam veri setlerini göndermeye ihtiyaç duyulmaz. Bu durum, iletişim süresini azaltır ve AI iş yükleri için daha hızlı iterasyon süreleri ve daha yüksek throughput sağlar.
Süper bilgisayarlardaki SHARP, üretkenliğini artırarak işletmelerin yapay zeka uygulamalarında büyük bir rekabet avantajı kazanmasına yardımcı olur. SHARP teknolojisi, HPC süper bilgisayar merkezleri için bilimsel hesaplama iş yükleri ve AI süper bilgisayarları için AI uygulamaları için kullanılmaktadır.
SHARPv4’ün Geleceği
SHARPv4, önde gelen AI eğitim uygulamalarında kullanılan daha geniş bir yelpazede toplu iletişimleri destekleyecek yeni algoritmalar getiriyor. Bu, NVIDIA Quantum-X800 XDR InfiniBand anahtar platformları ile birlikte yayınlanacak ve ağ içi hesaplamada bir sonraki aşamaya taşıyacaktır.