SON DAKİKA

Nvdia

NVIDIA Kolektif İletişim Kütüphanesi 2.26 ile Gelişmiş Performans ve İzleme Yetkinlikleri

NVIDIA Kolektif İletişim Kütüphanesi (NCCL), NVIDIA GPU’ları ve ağları için optimize edilmiş çoklu GPU ve çoklu düğüm iletişim ilkelereğini uygulayan bir yazılım kütüphanesidir. NCCL, çoklu GPU derin öğrenme eğitiminde merkezi bir yazılım parçasıdır. PCI, NVIDIA NVLink veya ağ üzerinden herhangi bir türdeki inter-GPU iletişimi yönetir. Gelişmiş topoloji tespiti, optimize edilmiş iletişim grafikleri ve ayar modelleri kullanarak, NVIDIA GPU platformlarında kutudan çıktığı gibi en iyi performansı sağlamayı hedefler.

Bu yazıda, NCCL 2.26 sürümünde yer alan yeni özellikler ve hatalar üzerinde duruyoruz. Daha fazla detay için NVIDIA/nccl GitHub reposunu ziyaret edebilirsiniz. NCCL 2.25 sürümü yalnızca NVIDIA Blackwell platform desteğine odaklandığından, bu sürümde kütüphane özellik değişiklikleri bulunmamaktadır. Bu nedenle o versiyon için bir sürüm duyurusu yayınlanmamıştır.

Sürüm Özellikleri 

NVIDIA Magnum IO NCCL, arası GPU ve çoklu düğüm iletişimini optimize etmek için tasarlanmış bir kütüphanedir. Bu kütüphane, yapay zeka ve HPC uygulamalarında verimli paralel hesaplama için kritik öneme sahiptir. NCCL’ın son sürümü, performans, izleme, güvenilirlik ve hizmet kalitesinde önemli gelişmeler sunmaktadır. Bu gelişmeler aşağıdaki özelliklerle desteklenmektedir:

  • PAT optimizasyonları: CUDA warp düzeyinde optimizasyonlarla PAT algoritmasının paralelliğini artıran geliştirmeler.
  • İçsel başlatma sırası: Bir cihazın aynı anda birden fazla iletişimci tarafından kullanılması halinde ölümlerin önlenmesi ve anahtar iş parçacıklarının başlatma konusunda yarışma tespiti.
  • GPU çekirdek ve ağ profilleme desteği: NCCL performansının daha kapsamlı bir şekilde karakterize edilmesini sağlayan yeni olaylar.
  • Ağ eklentisi QoS desteği: Kullanıcıların, mevcut ağ kaynaklarını iletişimciler arasında bölmesine olanak tanıyan iletişimci düzeyinde hizmet kalitesi (QoS) kontrolü.
  • RAS iyileştirmeleri: toplu işlemler hakkında zengin bilgi, geliştirilmiş tanı çıktıları ve daha iyi stabilite.

NCCL 2.26 Özellikleri 

Bu bölüm, aşağıdaki yeni özelliklerin detaylarına daha derinlemesine iniyor: 

  • PAT optimizasyonları 
  • İçsel başlatma sırası 
  • GPU çekirdek profilleme desteği 
  • Ağ eklentisi profilleme desteği 
  • Ağ eklenti QoS desteği 
  • RAS iyileştirmeleri 

PAT Optimizasyonu 

Bu değişiklik, NCCL 2.23 sürümünde tanıtılan PAT algoritmasını optimize ediyor. PAT adımlarının hesaplanması ve yürütülmesini farklı warplarda ayırarak, her iş parçacığının PAT adımlarını hesaplayıp sırayla yürütmesinin önüne geçiyor.

Bir iş parçacığı, PAT adımlarını hesaplamak için ayrıldı ve 16 warptan oluşan bir grup 16 adımı paralel olarak yürütebiliyor. Bu optimizasyon, çok sayıda paralel ağaç içeren durumlarda fayda sağlıyor; yani en az 32 rütbe ve küçük işlemler içeren, algoritmanın doğrusal kısmının performansı düşürdüğü durumlarda. Bu genellikle büyük ölçekli çalışmalar için geçerlidir.

İçsel Başlatma Sırası 

Birden fazla NCCL iletişimcisi kullanan cihazlarda, NCCL kullanıcıdan tüm iletişim operasyonlarının sırasını tanımlamasını ister. Aksi halde, farklı sıralarla yapılan iletişim çekirdekleri nedeniyle ölümlere neden olabilir.

NCCL 2.26, NCCL_LAUNCH_ORDER_IMPLICIT ile kontrol edilen içsel başlatma sırasını destekleyerek bu gereksinimi opsiyonel hale getiriyor. Bu özellik etkinleştirilirse, NCCL, anahtar iş parçacığında başlatma sırasına uyum sağlamak için iletişim çekirdekleri arasında bağımlılıklar ekler. Bu, kullanımı kolaylaştırıyor ama gecikmeyi artırdığı için varsayılan olarak kapalıdır. Hatalı durumlarla karşılaşılan kullanıcıların denemesi önerilir.

Etkinleştirildiğinde bile, kullanıcılar hala tüm cihazlar için anahtar tarafında başlatma sırasının uyumlu olmasını sağlamalıdır. Bu en iyi, her cihaz için bir tek anahtar iş parçacığından belirleyici bir sıralama ile yapılabilir. NCCL_LAUNCH_RACE_FATAL ile kontrol edilen tamamlayıcı bir mekanizma, aynı cihaza birden fazla anahtar iş parçacığının başlatma yarışlarını tespit etmeye çalışır. Eğer bu tetiklenirse, işlem durdurulur ve bir hata döndürülür.

GPU Çekirdek ve Ağ Profilleme Desteği 

NCCL profilleme eklenti arayüzü, 2.23 sürümünde tanıtılırken artık GPU çekirdek ve ağ tarafından tanımlanan olayları destekliyor.

Önceki 2.26 sürümünde, NCCL profilleme eklenti arayüzü yalnızca ağ proxy olayları ile sınırlıydı. Ancak bu olaylar, NCCL davranışının yalnızca bir kısmını kapsıyordu ve GPU’yu göz ardı ediyordu. Bu sınırlılığı gidermek ve kullanıcılar için daha doğru bilgi sağlamak amacıyla, NCCL çekirdeği, bağımsız ve birleşik çekirdeklerde bireysel toplu ve noktasal işlemlerin ilerlemesini izlemek için yeni bir çekirdek profilleme altyapısı ile genişletildi.

Birleşik çekirdekler, her kanal için her işlem için bir olay oluştururken, profilleme aracı bunları NCCL işlemi ile doğrudan ilişkilendirir. NCCL çekirdeği, yeni bir işlemin yürütülmesine başladığında veya bittiğinde, bunu anahtar iş parçacığına iletir. Uygun şekilde, NCCL’deki anahtar kod, profilleme startEvent veya stopEvent geri çağırmasını çağırır.

Profilleme eklenti arayüzü, NCCL anahtar kodunun gözlemlediği çekirdek etkinliğini yakalayan yeni bir ncclProfileKernelCh olayı ile genişletilmiştir. Bu, ya ncclProfileColl ya da ncclProfileP2p olayının altında bulunur.

NCCL tarafından rapor edilen çekirdek olaylarının doğruluğunun, şu anki tasarımla sınırlı olduğunu unutmamak önemlidir, bu tasarım, ağ işlemlerinin ilerlemesini izlemek için yeniden kullanılan proxy iş parçacığını kullanır. Bu sınırlama, gelecekteki NCCL sürümlerinde ele alınacaktır.

Ağ Eklentisi QoS Desteği 

Ağ iletişiminde QoS, HPC iş yüklerinde iyi performans sağlamak için kritik bir öneme sahiptir. Örneğin, LLM eğitimi sırasında, boru hattı paralelliği (PP) ve veri paralelliği (DP) iletişimi gibi, birkaç tipte ağ iletişimi üst üste gelir. PP iletişimleri genellikle kritik yolda yer alırken, DP iletişimleri yer almaz. Bu iletişimlerin üst üste binmesi halinde, her ikisi de, paylaşılan ağ kaynakları için rekabetten yavaşlar. Kritik yoldaki iletişimi önceliklendirmek, uygulamanın uçtan uca performansını önemli ölçüde artırabilir.

QoS’i etkinleştirmek için, NCCL, ncclCommInitRankConfig API’sini kullanarak her iletişimci için bir yapılandırma seçeneği sunar. NCCL, mevcut ncclConfig_t yapısına yeni bir trafficClass alanı ekledi. trafficClass, iletişimci ağ trafiği için QoS seviyesi olarak soyut bir gösterim işlevi gören bir tamsayıdır. Uygulamalar, bu alanı varsayılan bir değer veya kullanıcı tanımlı bir ayar ile ayarlayabilirler. trafficClass‘ın özel anlamı, ağ sistemi yöneticisi ve ağ yığın uygulayıcısı tarafından belirlenir.

Ağın eklenti arayüzü, her bağlantıda trafficClass‘ı kapsayan yeni bir ncclNetCommConfig_t yapısı ile genişletilmiştir. Örneğin, bağlantı fonksiyonu, ncclNetCommConfig_t* yapılandırmasını ek bir girdi argümanı olarak ekler.

Özet 

NCCL 2.26, PAT optimizasyonları, içsel başlatma sırası, GPU çekirdek profilleme desteği, ağ eklentisi profilleme desteği, ağ eklentisi QoS desteği ve RAS iyileştirmeleri gibi önemli yeni özellikler ve iyileştirmeler sunmaktadır.

NCCL hakkında daha fazla bilgi edinmek için NCCL: Çoklu GPU AI’yı Güçlendiren İletişim Kütüphanesi | GTC 25 2025 | NVIDIA İsteğe Bağlı başlıklı kaynağı inceleyebilirsiniz.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri