Felhőalapú GPU-szolgáltatók NVLink vagy InfiniBand kapcsolattal
A nagy sávszélességű GPU-kapcsolatok, mint az NVLink (akár 900 GB/s) és az InfiniBand (akár 400 Gb/s), elengedhetetlenek a hatékony több-GPU-s és több-csomópontos tanításhoz. Gyors kapcsolat nélkül a gradiens szinkronizáció lesz a szűk keresztmetszet az elosztott tanítás során, ami jelentősen csökkenti a skálázási hatékonyságot. Ez az útmutató felsorolja azokat a szolgáltatókat, amelyek NVLink vagy InfiniBand kapcsolódást kínálnak GPU-példányaikhoz.
United States Mit is csinálnak valójában az NVLink és az InfiniBand, amikor több GPU-s számítást bérel
Az NVLink és az InfiniBand ugyanazt az alapvető problémát oldja meg a gép két különböző oldaláról: az adatokat olyan gyorsan mozgatják a GPU-k között, hogy a gyorsítók inkább számolással töltsék az idejüket, ne várakozással. A fenti szűrő a felhőalapú példányokat szűkíti le, amelyek egy vagy mindkét ilyen összeköttetést biztosítják. Ezek nem helyettesíthetők egymással — az egyik egy csomóponton belüli hálózat, amely egyetlen szerveren belül köti össze a GPU-kat, a másik pedig egy csomópontok közötti hálózat, amely szervereket köt össze klaszterré. Bármilyen olyan munkaterhelés esetén, amely több GPU-t érint, az összeköttetés gyakran a közel lineáris skálázódás és az olyan konfiguráció között dönt, ahol a GPU-k hozzáadása alig segít.
NVLink: a gyors sáv a GPU-k között egy dobozon belül
Az NVLink az NVIDIA közvetlen GPU-GPU összeköttetése. Ahelyett, hogy a forgalmat a host PCIe buszon és a CPU-n keresztül irányítaná, az NVLink összeköti a GPU-kat egymással (és néhány platformon NVSwitch keresztkapcsolaton keresztül), így a csomóponton belül minden GPU magas sávszélességgel és alacsony késleltetéssel tud kommunikálni a többi GPU-val. Amikor NVLink-kel felszerelt példányt bérel, a gyakorlatban ez a következő előnyöket jelenti:
- Sokkal magasabb GPU-GPU sávszélesség, mint a csak PCIe-s csomópontok esetén, ami fontos, amikor gradiens, aktiváció vagy modell darabok cseréje történik minden lépésben.
- GPU-k közötti megosztott memória a gyakorlatban — egyetlen GPU VRAM-jánál nagyobb modellt az NVLink tartományon belül lehet szétosztani, a GPU-k közötti forgalom a gyors hálózaton marad, nem kúszik át a PCIe-n.
- Alacsonyabb szinkronizációs költség kollektív műveleteknél, mint az all-reduce, amelyek dominálják az adatpárhuzamos tanítást.
Az NVLink egyetlen csomóponton belül működik, így jellemzően 2, 4 vagy 8 GPU-ra terjed ki a szerver kialakításától függően. Ha egy szolgáltató a fenti listán 8-GPU-s csomópontot hirdet “NVLink-kel”, az azt jelenti, hogy ezek a nyolc kártya szorosan összekapcsolt. Ez önmagában nem mond semmit arról, hogy az adott csomópont hogyan kapcsolódik más csomópontokhoz.
InfiniBand: a hálózat, amely sok szervert egy klaszterré alakít
Az InfiniBand egy hálózati technológia, amely különálló GPU-s szervereket köt össze. Amikor a tanítási feladatok kinövik az egy csomópontos keretet, a szűk keresztmetszet a dobozon belülről a dobozok közé helyeződik, és a hagyományos Ethernet hálózat akadályozhatja a GPU-kat. Az InfiniBand ezt nagyon magas linkenkénti átbocsátóképességgel, alacsony és kiszámítható késleltetéssel, valamint RDMA-val (távoli közvetlen memória-hozzáférés) kezeli, amely lehetővé teszi, hogy egy szerver a másik szerver memóriáját CPU bevonása nélkül olvassa vagy írja. A GPUDirect RDMA-val párosítva az adatok GPU-ról GPU-ra mozoghatnak csomópontok között, miközben nagyrészt megkerülik a host memória másolásokat.
Több csomópontos tanítás esetén ez tartja hatékonynak a skálázást. Az oka annak, hogy egy tucat vagy akár száz GPU-ból álló klaszter ésszerű idő alatt tud nagy modellt tanítani, az, hogy a csomópontok közötti hálózat lépést tart az algoritmus által megkövetelt kollektív kommunikációval. Ha visszatérünk a hagyományos hálózathoz, ugyanaz a feladat az idő nagy részét a hálózatra várakozással töltheti.
Milyen munkaterheléseknek van erre valóban szükségük
Az NVLink vagy InfiniBand szerinti szűrés akkor ésszerű, ha a kommunikáció, nem csak a nyers számítás, kritikus útvonalon van:
- Nagy modell tanítása és finomhangolása, amely paramétereket, optimalizáló állapotot vagy rétegeket oszt meg GPU-k között (tenzor, csővezeték vagy teljesen megosztott adatpárhuzamosság) — ezek a sémák állandó GPU-k közötti forgalmat generálnak, és leginkább az NVLink előnyeit élvezik csomóponton belül, valamint az InfiniBandét csomópontok között.
- Több csomópontos elosztott tanítás, ahol a feladat egyszerűen nem fér el egy szerveren — itt az InfiniBand a döntő tényező a skálázási hatékonyságban.
- Nagy teljesítményű számítástechnika és tudományos szimuláció, amely szoros folyamatközi kommunikációt igényel, és évek óta az InfiniBandra és RDMA-ra támaszkodik.
- Nagy kontextusú vagy nagy modell inferencia, amely egyetlen modellt több GPU között oszt meg, ahol az NVLink csökkenti a GPU-k közötti figyelem és súlyhozzáférés késleltetési büntetését.
Egyetlen GPU-s munkáknál valóban túlzás. Egy kis modell finomhangolása, egyetlen kártyára illő kötegelt inferencia, a legtöbb renderelési feladat és kísérletezés gond nélkül fut egy önálló GPU-n. Egy szorosan összekapcsolt csomópont vagy InfiniBand klaszter prémiumáért fizetni nem hoz előnyt, ha a feladat soha nem lépi át a GPU-k határait.
Mire figyeljen, mielőtt bérel
A két összeköttetést gyakran összekeverik a marketing szövegekben, ezért ellenőrizze a részleteket a fenti összehasonlítás alapján:
- Hatókör — erősítse meg, hogy a lista NVLinket (csomóponton belüli GPU-kapcsolat) vagy InfiniBandet (csomópontok közötti hálózat) jelent-e. Egyetlen csomópontos példánynak lehet NVLinke, de egyáltalán nem InfiniBandje.
- Topológia és szélesség — hány GPU osztozik az NVLink tartományon (teljes NVSwitch minden-minden kapcsolat vagy részleges hidak), az InfiniBand linksebessége és hogy engedélyezett-e az RDMA/GPUDirect.
- Generáció — az újabb GPU generációk nagyobb sávszélességű NVLinket hordoznak; az “NVLink” címke önmagában nem árulja el a sebességet.
- Több csomópontos elérhetőség — hogy valóban lefoglalhat-e több összekapcsolt csomópontot, és hogy ezek egyazon hálózaton belül helyezkednek-e el, nem pedig szétszórva az adatközpontban.
- Szoftvertámogatás — hogy az NCCL, MPI és az Ön keretrendszere látja és használja-e a hálózatot; a hibás konfiguráció csendben lassú útvonalra vált.
Az ár és elérhetőség tekintetében az összeköttetésben gazdag példányok a spektrum magasabb végén helyezkednek el. NVLinkkel felszerelt több GPU-s csomópontok és InfiniBand kapcsolt klaszterek prémium hardvert használnak és folyamatos kereslet van rájuk, így az azonnali kapacitás szűkösebb, és a spot vagy megszakítható opciók ritkábbak, mint az egyedi, általános GPU-knál. Különösen a több csomópontos InfiniBand foglalások gyakran korlátozottak, előre lefoglaltak vagy nagyobb blokkokban értékesítettek. A fenti táblázat árait tekintse élő referenciaáraknak, mivel az árak mozognak és szolgáltatónként eltérnek.
Gyakran ismételt kérdések
Szükségem van mind NVLinkre, mind InfiniBandre?
Ez a skálától függ. Egyetlen csomópontos több GPU-s feladatnak csak NVLinkre van szüksége. Amint a tanítás több szervert érint, szüksége lesz InfiniBandre is, amely összeköti ezeket a csomópontokat — a kettő különböző rétegeken működik, így egy nagy klaszter általában NVLinkre támaszkodik minden dobozon belül, és InfiniBandre dobozok között.
Gyorsabban fut-e az egy GPU-s munkám NVLink vagy InfiniBand példányon?
Nem. Mindkét összeköttetés csak akkor számít, ha adat mozog GPU-k között vagy csomópontok között. Egyetlen GPU-ra illő munkaterhelés soha nem érinti egyik hálózatot sem, így prémiumot fizetne olyan kapacitásért, amit nem használ. Csak akkor szűrjön ezekre, ha több GPU-ra skáláz.
Miért fontosabb az összeköttetés, mint az egy GPU-s specifikációk nagy tanítási feladatoknál?
Az elosztott tanítás minden lépés nagy részét a gradiens és aktiváció cserével tölti. Ha a hálózat nem tud lépést tartani, a GPU-k tétlenek maradnak a szinkronizációra várva, és több GPU hozzáadása egyre kisebb hasznot hoz. Egy gyors összeköttetés biztosítja a közel lineáris skálázódást, ahogy gyorsítókat ad hozzá.
Minden több GPU-s példány rendelkezik NVLinkkel?
Nem. Néhány több GPU-s csomópont csak PCIe-n keresztül kapcsolja össze a kártyákat, amely sokkal alacsonyabb GPU-GPU sávszélességet biztosít. Több GPU jelenléte nem garantálja az NVLinket, ezért az összehasonlításban kifejezetten ellenőrizze az összeköttetést, ne csak a GPU-k számából feltételezze.