
PyTorch 2.15 GPU nasazlıq bərpasını yaxşılaşdırmaq üçün NCCL backendini yenidən yazır
PyTorch 2.15 Nvidia-nın NCCL kitabxanası üçün yenidən yazılmış backend əlavə edir. Bu, böyük AI təlim işlərində GPU-lar birlikdə işləyərkən nasazlıqların diaqnozu və bərpasını yaxşılaşdırmağa yönəlib.
PyTorch 2.15 Nvidia-nın Kollektiv Rabitə Kitabxanasının (NCCL) yenidən yazılmış backend-ini daxil edir və bu, GPU-ların birlikdə işləməsi zamanı nasazlıqların diaqnozu və bərpasını yaxşılaşdırmaq üçün nəzərdə tutulub. Buraxılış həmçinin digər funksiyalar əlavə edir və proqramın yaradıcıları onu tədqiqatçı alətindən istehsalat AI istifadəsinə doğru aparmağa davam edir. Yeniləmə 583 töhfəçidən 3.117 commit-dən ibarət olub.
NCCL backendinin yenidən yazılması
NCCL üçün əvvəlki PyTorch backend-i, ProcessGroupNCCL adlanan, hər proses qrupu üçün onlarla kommunikator yarada bilirdi, bu da aralıq deadlock-lara və proqnozlaşdırılmayan performansa səbəb olurdu. PyTorch-un əsas developeri Tristan Rice, paylanmış hesablamalara ixtisaslaşmış Meta proqram təminatı mühəndisi, cümə axşamı canlı YouTube yayımında dedi ki, şəbəkə kitabxanasına interfeys texniki borc içində boğulduğu üçün yenidən yazılmalı idi. Yeni backend ciddi qaydadan istifadə edir: inisializasiya zamanı bir proses qrupu yalnız bir kommunikator alır. Susmaya görə bu, bir neçə kommunikator arasında crosstalk və əlaqəli mürəkkəbliyi aradan qaldırır; paralelliyə ehtiyacı olan proqramlar daha çox proses qrupu göndərməlidir.
Yenilənmiş kitabxana həmçinin daha asan yenidən konfiqurasiya imkanı verməklə geridə qalan GPU-larla daha yaxşı işləyir. Əgər GPU nasaz olursa və ya yavaş işləyirsə, üçüncü tərəf orkestrator geridə qalanı çıxara və əvəzedici worker təyin edə bilər. Flight recorder nasazlıqdan sonra yoxlana bilən snapshot-larda bütün əməliyyatları yadda saxlayır, bu da GPU klasteri timeout və ya deadlock səbəbindən dayandıqda istifadəçilərin əvvəllər aldığı ümumi mesajı əvəz edir. Rice qeyd etdi ki, təmizlənmiş NCCL backend-i, həmçinin ProcessGroupNCCL adlanır, developerlərə boş səhifə verəcək və yeni funksiyalar əlavə etməyi asanlaşdıracaq.
NCCL niyə vacibdir
NCCL, 'Nickel' kimi tələffüz olunur, PyTorch-a tək node və çox node klasterləri üçün GPU-lararası rabitə primitivləri verir. Bu, böyük neyron şəbəkələrində inference işlətmək və böyük dil modellərini qurmaq və saxlamaq üçün həyati əhəmiyyət daşıyır. Worker-lər davamlı olaraq tensorları, gradientləri, aktivasiyaları və çəkiləri mübadilə etməli və NCCL standart TCP əsaslı şəbəkə ilə müqayisədə CPU overhead-ini azaldaraq GPU-lar arasında data daşımaq üçün optimallaşdırılmış rabitə yollarından istifadə edir.
Nvidia NCCL-i SC15-də ümumi məqsədli akselerator kimi ilk dəfə buraxdı. O, PyTorch-u ilk dəfə 2016-cı ildə quranda Facebook komandası tərəfindən qəbul edildi, məqsəd Lua əsaslı Torch maşın öyrənmə kitabxanasının Python əsaslı versiyasını qurmaq idi. AI proqram təminatı provayderi Northflank-in həmtəsisçisi Will Stewart blog yazısında dedi: "Hər bir əsas ML lab (OpenAI, DeepMind, Meta, Nvidia) PyTorch istifadə edir. O, diffusion modellərindən və LLM-lərdən recommender sistemlərinə və robototexnikaya qədər hər şeyi idarə edir. Bu geniş qəbul təsadüfi deyil."
Digər 2.15 funksiyaları və rollout
Digər yeni funksiyalar asinxron biryönlü data hərəkəti üçün Python transport API-sini daxil edir, bu, çəkilərin trainer və generatorlar arasında sinxronlaşdırıldığı təlim işləri üçün uyğundur, həmçinin Apple avadanlıqları üçün paralel emal təkmilləşdirmələri və Nvidia-nın növbəti nəsil Blackwell GPU-ları üçün dəstək. Köhnə ProcessGroupNCCL rollback seçim kimi 2.15 paketində qalır. Əgər yeni NCCL backend gözləndiyi kimi işləsə, köhnə versiya gələn ilin əvvəlində planlaşdırılmış 2.16 buraxılışında silinəcək.
Mənbələr: The Register
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.