Műszaki ÚTMUTATÓ

Kollektív kommunikáció és NCCL

A kollektív kommunikáció az, ahogyan a GPU-k egy csoportja cseréli és egyesíti az adatokat, az NCCL pedig az NVIDIA könyvtára, amely az adatcseréket rendkívül gyorssá teszi.

2 perc olvasásUtoljára frissítve

Áttekintés

Operations like all-reduce are the heartbeat of distributed training, synchronizing gradients across every GPU each step.

Mély merülés

Egy nagy modell betanítása azt jelenti, hogy minden GPU a saját adatszeletén számítja ki a gradienseket, majd minden GPU-nak meg kell állapodnia a kombinált eredményben a következő lépés előtt. Ez a koordináció kollektív műveletekkel történik: minden GPU-n keresztül összegzi az értékeket, és mindenkinek megadja az eredményt; az all-gather minden GPU-darabot egy teljes másolatba gyűjti mindegyiken; a broadcast egy GPU adatait küldi a többinek; redukáló-szórású kombájnokat, majd szétválik. Az NCCL (NVIDIA Collective Communications Library) hatékonyan valósítja meg ezeket a szervereken lévő GPU-k és szerverek között, topológiatudatos algoritmusok, például a gyűrű és a fa teljes redukciója segítségével. Kihasználja az NVLink-et egy csomóponton belül, az InfiniBandot vagy a RoCE-t a csomópontok között, és a PyTorch DDP, FSDP, DeepSpeed ​​és Megatron kommunikációs gerince.

Technikai betekintés

A csengetés teljes csökkentése a klasszikus algoritmus: a GPU-k egy logikai gyűrűt alkotnak, és az adatok olyan darabokra oszlanak, amelyek keringenek, így minden lépés átfedi a kommunikációt, így a teljes átviteli sávszélesség optimális és nagyjából független a GPU-számtól. Számos csomópont esetében a fa alapú algoritmusok az eredmények hierarchikus kombinálásával csökkentik a várakozási időt. Az NCCL automatikusan felismeri a topológiát, kiválasztja a legjobb algoritmust, és az NVIDIA SHARP segítségével a hálózatba töltheti a redukciós számításokat, felére csökkentve a linkeken áthaladó adatokat.

Stratégiai hatás

Költség és költségvetés

Az építészeti döntések évekig növelik a teljesítményt és a működési költségeket.

Tisztább döntések

A technikai oktatás segít a csapatoknak a megfelelő verem kiválasztásában, nem csak a legújabb készletben.

Minőségellenőrzés

A jobb mérnöki döntések csökkentik a termelés megbízhatósági incidenseit.

A kollektív kommunikáció és az NCCL jövője

Ahogy a klaszterek több százezer GPU-ra méreteződnek, a kommunikáció egyre inkább uralja a képzési időt, így a kollektív könyvtárak forró határt jelentenek. Várható mélyebb hálózaton belüli számítástechnika (a redukciót végző kapcsolók), a számítás és a kommunikáció jobb átfedése a késleltetés elrejtése érdekében, valamint alacsonyabb pontosságú csoportok, amelyek csökkentik az áthelyezett bájtokat. A verseny is erősödik a gyártók közötti erőfeszítésekkel és az Ethernet-alapú RDMA-alternatívákkal, miközben az NCCL folyamatosan erősíti az integrációt az NVLink-kel, az NVSwitch-el és a feltörekvő optikai szövetekkel.

Valós megvalósítás

Gradiensek szinkronizálása minden edzési lépésben az összes GPU-n a PyTorch DistributedDataParallel all-reduce használatával

Az optimalizáló állapotok felosztása és a paraméterek igény szerinti összegyűjtése az összes összegyűjtéssel és a szórás csökkentésével az FSDP vagy a DeepSpeed ZeRO segítségével

A kezdeti modellsúlyok közvetítése egyik GPU-ról az összes többire az edzés kezdetén

Csengetés teljes csökkentése az NVLink és az InfiniBand felett a sávszélesség magas tartása érdekében a több csomópontos GPU-fürtökben

Kockázatok és védőkorlátok

Egy benchmark optimalizálása elrejtheti a rendszer általános hiányosságait.

Az infrastrukturális és karbantartási költségeket gyakran alábecsülik.

A biztonsági és megfigyelhetőségi hiányosságok a rendszerek bonyolultabbá válásával nőhetnek.

Végrehajtási ütemterv

1

Határozza meg a késleltetési, minőségi és költségcélokat a megvalósítás előtt.

2

Benchmark reális terhelési és adatviszonyok mellett.

3

Műszerfigyelés a hibák, az eltolódás és a felhasználói hatások szempontjából.

4

A méretezés előtt készítse elő a visszagörgetési és az incidensre adott válaszútvonalakat.

Folytassa a felfedezést

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Collective Communication and NCCL quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Kezdő kvíz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Következő útmutató

Online és offline funkciók kiszolgálása ferde

Gyakran ismételt kérdések

What is Collective Communication and NCCL?

A kollektív kommunikáció az, ahogyan a GPU-k egy csoportja cseréli és egyesíti az adatokat, az NCCL pedig az NVIDIA könyvtára, amely az adatcseréket rendkívül gyorssá teszi. Az olyan műveletek, mint az all-reduce, az elosztott edzés szívverését jelentik, minden GPU-n lépésenként szinkronizálva a gradienseket.

Mit ér el egy mindent csökkentő művelet az elosztott képzésben?

Minden GPU-ban összegez (vagy más módon kombinál) egy értéket, és az azonos eredményt mindegyikhez visszaosztja, így szinkronizálják a színátmeneteket.

Mit jelent az NCCL mozaikszó?

Az NCCL az NVIDIA Collective Communications Library, amely gyors, több GPU-t és több csomópontot tartalmazó kollektív műveleteket valósít meg.

Miért tekinthető a csengetés teljes csökkentése a sávszélesség szempontjából optimálisnak?

Az adatok feldarabolásával és egy logikai gyűrűn áthaladva minden linket egyszerre használunk, és a teljes átvitel nagyjából függetlenné válik a GPU-k számától.

Melyik kollektív művelet gyűjti össze az egyes GPU-k adatait egy teljes másolatba, amelyet az összes GPU tárol?

Az All-Gather minden GPU-ból összegyűjti a különálló darabokat, és mindegyikre összeállítja a teljes készletet, amelyet erősen használnak az olyan szilánkos képzésekben, mint az FSDP.

Mit tesz az NVIDIA SHARP a kollektív műveletekhez?

A SHARP a hálózaton belüli számítástechnikát hajt végre, a redukció egy részét a kapcsolón belül hajtja végre, így kevesebb adatnak kell áthaladnia a linkeken, felgyorsítva a csoportokat.