Geri Dön

PyTorch 2.15, GPU arıza kurtarmayı iyileştirmek için NCCL arka ucunu yeniden yazıyor
SiTech AI Team3 dk okuma

PyTorch 2.15, GPU arıza kurtarmayı iyileştirmek için NCCL arka ucunu yeniden yazıyor

PyTorch 2.15, GPU'ların büyük yapay zekâ eğitim işlerinde birlikte çalıştığı durumlarda arıza tanılama ve kurtarmayı iyileştirmeyi amaçlayan Nvidia'nın NCCL kitaplığı için yeniden yazılmış bir arka uç içerir.

PyTorch 2.15, GPU'ların birlikte çalıştığı durumlarda arıza tanılama ve kurtarmayı iyileştirmek için tasarlanmış, Nvidia'nın Collective Communications Library (NCCL) kitaplığına yönelik yeniden yazılmış bir arka uç içerir. Sürüm ayrıca başka özellikler de ekler ve yazılımın yaratıcıları onu bir araştırmacı aracı olmaktan üretim yapay zekâ kullanımına doğru taşımaya devam ederken gelir. Güncelleme, 583 katkıcının 3.117 commit'inden oluştu.

NCCL arka uç yeniden yazımı

NCCL için önceki PyTorch arka ucu, ProcessGroupNCCL adıyla anılıyordu ve süreç grubu başına onlarca communicator oluşturabiliyordu; bu da aralıklı kilitlenmelere ve öngörülemeyen performansa yol açabiliyordu. Dağıtık hesaplama konusunda uzmanlaşmış bir Meta yazılım mühendisi olan PyTorch çekirdek geliştiricisi Tristan Rice, Perşembe günü canlı bir YouTube yayını sırasında ağ kitaplığına yönelik arayüzün teknik borç içinde boğulduğu için yeniden yazılması gerektiğini söyledi. Yeni arka uç katı bir kural kullanır: bir süreç grubu, başlatma sırasında yalnızca bir communicator alır. Varsayılan olarak bu, birden çok communicator arasındaki çapraz konuşmayı ve ilgili karmaşıklığı ortadan kaldırır; paralellik gereken programlar daha fazla süreç grubu göndermelidir.

Güncellenmiş kitaplık, daha kolay yeniden yapılandırma sayesinde gecikenleri de daha iyi yönetir. Bir GPU çökerse veya yavaş çalışırsa, üçüncü taraf bir orkestratör geciken işçiyi dışarıda bırakıp yerine bir çalışan atayabilir. Bir uçuş kaydedici, başarısızlıktan sonra incelenebilen anlık görüntülerde tüm işlemleri yakalar ve bir GPU kümesi zaman aşımı veya kilitlenme nedeniyle durduğunda kullanıcıların daha önce aldığı genel mesajın yerini alır. Rice, temizlenmiş NCCL arka ucunun, yine ProcessGroupNCCL olarak adlandırılan, geliştiricilere temiz bir sayfa vereceğini ve yeni özellik eklemeyi kolaylaştıracağını belirtti.

NCCL neden önemlidir

NCCL, "Nickel" olarak telaffuz edilir, PyTorch'a tek düğümlü ve çok düğümlü kümeler için GPU'lar arası iletişim temel işlemleri sağlar. Bu, büyük sinir ağlarında çıkarım çalıştırmak ve büyük dil modellerini oluşturmak ve sürdürmek için hayati önemdedir. İşçiler sürekli olarak tensörleri, gradyanları, aktivasyonları ve ağırlıkları değiştirmek zorundadır ve NCCL, standart TCP tabanlı ağ oluşturmayla karşılaştırıldığında CPU ek yükünü azaltırken GPU'lar arasında veri taşımak için optimize edilmiş iletişim yolları kullanır.

Nvidia, NCCL'i ilk olarak SC15'te genel amaçlı bir hızlandırıcı olarak yayımladı. Bu, Facebook ekibi PyTorch'u ilk kez 2016'da, Lua tabanlı Torch makine öğrenimi kitaplığının Python tabanlı bir sürümünü oluşturmak amacıyla geliştirdiğinde benimsendi. Yapay zekâ yazılımı sağlayıcısı Northflank'ın kurucu ortağı Will Stewart, bir blog gönderisinde şöyle dedi: "Her büyük ML laboratuvarı (OpenAI, DeepMind, Meta, Nvidia) PyTorch kullanıyor. Diffüzyon modellerinden ve LLM'lerden öneri sistemlerine ve robotiğe kadar her şeye güç veriyor. Bu yaygın benimsenme tesadüf değil."

Diğer 2.15 özellikleri ve kullanıma sunulma

Diğer yeni özellikler arasında, ağırlıkların eğiticiler ve üreticiler arasında senkronize edildiği eğitim işlerine uygun, zaman uyumsuz tek yönlü veri hareketi için bir Python taşıma API'si; Apple donanımı için paralel işleme iyileştirmeleri; ve Nvidia'nın yeni nesil Blackwell GPU'ları için destek bulunur. Eski ProcessGroupNCCL, geri alma seçeneği olarak 2.15 paketinde kalır. Yeni NCCL arka ucu beklendiği gibi çalışırsa, eski sürüm erken gelecek yıl planlanan 2.16 sürümünde kaldırılacaktır.

Kaynaklar: The Register

SiTech

SiTech — AI destekli web geliştirme

Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.