უკან დაბრუნება

PyTorch 2.15 NCCL-ის ბექენდს გადაწერს, რომ GPU-ების ხარვეზებისგან აღდგენა გააუმჯობესოს
SiTech AI Team3 წთ. საკითხავი

PyTorch 2.15 NCCL-ის ბექენდს გადაწერს, რომ GPU-ების ხარვეზებისგან აღდგენა გააუმჯობესოს

PyTorch 2.15 მოიცავს Nvidia-ს NCCL ბიბლიოთეკისთვის გადაწერილ ბექენდს, რომელიც მიზნად ისახავს GPU-ების ერთობლივი მუშაობისას ხარვეზების დიაგნოსტიკისა და აღდგენის გაუმჯობესებას ხელოვნური ინტელექტის სწავლების დიდ სამუშაოებში.

PyTorch 2.15 მოიცავს Nvidia-ს Collective Communications Library (NCCL) ბიბლიოთეკისთვის გადაწერილ ბექენდს, რომელიც შექმნილია GPU-ების ერთობლივი მუშაობისას ხარვეზების დიაგნოსტიკისა და აღდგენის გასაუმჯობესებლად. გამოშვება ასევე ამატებს სხვა ფუნქციებს და გამოდის იმ დროს, როცა პროგრამული უზრუნველყოფის შემქმნელები განაგრძობენ მის გადასვლას მკვლევრის ინსტრუმენტიდან AI-ის წარმოებაში გამოყენებისკენ. განახლება მოიცავდა 3 117 კომიტს 583 კონტრიბუტორისგან.

NCCL-ის ბექენდის გადაწერა

NCCL-ისთვის PyTorch-ის წინა ბექენდს, სახელწოდებით ProcessGroupNCCL, შეეძლო პროცესის ჯგუფზე ათეულობით კომუნიკატორის შექმნა, რაც იწვევდა დროდადრო წარმოქმნილ ჩიხებს და არაპროგნოზირებად წარმადობას. PyTorch-ის ძირითადი დეველოპერი ტრისტან რაისი, Meta-ს პროგრამული უზრუნველყოფის ინჟინერი, რომელიც განაწილებულ გამოთვლებზე სპეციალიზდება, ხუთშაბათს YouTube-ის პირდაპირ ეთერში ამბობდა, რომ ქსელური ბიბლიოთეკის ინტერფეისს გადაწერა სჭირდებოდა, რადგან ის ტექნიკურ ვალში იხრჩობოდა. ახალი ბექენდი მკაცრ წესს იყენებს: ინიციალიზაციის დროს ერთ პროცესის ჯგუფს მხოლოდ ერთი კომუნიკატორი ეკუთვნის. ნაგულისხმევად, ეს აღმოფხვრის რამდენიმე კომუნიკატორს შორის ჩარევასა და მასთან დაკავშირებულ სირთულეს; პროგრამებმა, რომლებსაც პარალელიზმი სჭირდებათ, მეტი პროცესის ჯგუფი უნდა გამოიყენონ.

განახლებული ბიბლიოთეკა ასევე უკეთ უმკლავდება ჩამორჩენილ worker-ებს, რადგან ხელახალი კონფიგურაცია უფრო მარტივი ხდება. თუ GPU ჩავარდება ან ნელა მუშაობს, მესამე მხარის ორკესტრატორს შეუძლია ჩამორჩენილი გამორიცხოს და შემცვლელი worker მიუჩინოს. Flight recorder აღბეჭდავს ყველა ოპერაციას სნეპშოტებში, რომლებიც ხარვეზის შემდეგ შეიძლება შემოწმდეს; ეს ცვლის ზოგად შეტყობინებას, რომელსაც მომხმარებლები ადრე იღებდნენ, როცა GPU-ების კლასტერი ტაიმაუტის ან ჩიხის გამო ჩერდებოდა. რაისმა აღნიშნა, რომ გაწმენდილი NCCL-ის ბექენდი, რომელსაც ასევე ProcessGroupNCCL ეწოდება, დეველოპერებს სუფთა ფურცელს მისცემს და ახალი ფუნქციების დამატებას გააადვილებს.

რატომ არის NCCL მნიშვნელოვანი

NCCL, რომელიც იკითხება როგორც „Nickel“, PyTorch-ს აძლევს GPU-ებს შორის კომუნიკაციის პრიმიტივებს ერთკვანძიანი და მრავალკვანძიანი კლასტერებისთვის. ეს სასიცოცხლოდ მნიშვნელოვანია დიდ ნეირონულ ქსელებზე ინფერენსის გასაშვებად და დიდი ენობრივი მოდელების შესაქმნელად და შესანარჩუნებლად. worker-ებმა მუდმივად უნდა გაცვალონ ტენზორები, გრადიენტები, აქტივაციები და წონები, ხოლო NCCL იყენებს ოპტიმიზებულ საკომუნიკაციო გზებს GPU-ებს შორის მონაცემების გადასატანად და CPU-ის დატვირთვას ამცირებს სტანდარტულ TCP-ზე დაფუძნებულ ქსელთან შედარებით.

Nvidia-მ NCCL თავდაპირველად SC15-ზე გამოუშვა როგორც ზოგადი დანიშნულების აქსელერატორი. ის Facebook-ის გუნდმა მიიღო, როცა 2016 წელს პირველად ქმნიდა PyTorch-ს, Lua-ზე დაფუძნებული Torch-ის მანქანური სწავლების ბიბლიოთეკის Python-ზე დაფუძნებული ვერსიის შექმნის მიზნით. AI პროგრამული უზრუნველყოფის მიმწოდებლის Northflank-ის თანადამფუძნებელმა უილ სტიუარტმა ბლოგ პოსტში თქვა: „ყველა დიდი ML ლაბორატორია (OpenAI, DeepMind, Meta, Nvidia) იყენებს PyTorch-ს. ის ამუშავებს ყველაფერს დიფუზიური მოდელებიდან და LLM-ებიდან რეკომენდაციების სისტემებამდე და რობოტიკამდე. ეს ფართო გავრცელება შემთხვევითი არ არის.“

2.15-ის სხვა ფუნქციები და დანერგვა

სხვა ახალ ფუნქციებს შორისაა Python-ის transport API ასინქრონული ცალმხრივი მონაცემთა გადაადგილებისთვის, რომელიც გამოდგება ტრენინგის ამოცანებისთვის, სადაც წონები სინქრონდება trainer-ებსა და generator-ებს შორის, ასევე Apple-ის მოწყობილობებისთვის პარალელური დამუშავების გაუმჯობესებები და Nvidia-ს შემდეგი თაობის Blackwell GPU-ების მხარდაჭერა. ძველი ProcessGroupNCCL რჩება 2.15 პაკეტში უკან დაბრუნების ვარიანტად. თუ ახალი NCCL ბექენდი მოსალოდნელად იმუშავებს, ძველი ვერსია ამოღებული იქნება 2.16 გამოშვებაში, რომელიც მომავალი წლის დასაწყისშია დაგეგმილი.

წყაროები: The Register

გააზიარე ციფრული გამოცდილება

SiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.