CUDA Academy · Oppitunti

Usean GPU:n käyttö NCCL:llä

Kollektiivinen viestintä skaalautumista varten

Oppitunti 4/413 vaihetta

Usean GPU:n käyttö NCCL:llä on ilmainen CUDA Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu CUDA Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. CUDA Academy-kurssilla on yhteensä 4 oppituntia.

Käsin rakennettu ratkaisu vaikeutuu

Peer-kopioiden kytkeminen käsin useiden GPU:iden välille muuttuu nopeasti hankalaksi. Todellista skaalausta varten tarvitsette kirjaston, joka on rakennettu kollektiivista viestintää varten.

Tutustukaa NCCL:ään

NVIDIAn ratkaisu on NCCL, kollektiivisen viestinnän kirjasto. Se siirtää dataa GPU:iden välillä käyttäen automaattisesti nopeimpia löytämiään yhteyksiä.

Mikä kollektiivinen operaatio on

Kollektiivinen operaatio on yksi operaatio, johon kaikki GPU:t osallistuvat yhdessä, esimerkiksi kunkin kortin sisältämän arvon summaaminen. Kaikki laitteet toimivat yhteistyössä yhden kutsun aikana.

Tärkein kollektiivinen operaatio: AllReduce

Työjuhta on AllReduce. Se yhdistää jokaisen GPU:n puskurin esimerkiksi summaamalla ne ja palauttaa saman tuloksen kaikille GPU:ille.

ncclAllReduce(send, recv, n, ncclFloat, ncclSum, comm, stream);

Muita kollektiivisia operaatioita

NCCL tarjoaa myös Broadcast-operaation yhden GPU:n datan jakamiseen kaikille sekä AllGather- ja ReduceScatter-operaatiot muihin yleisiin vaihtomalleihin.

Kommunikaattori

Yhdessä kommunikoivat GPU:t muodostavat ryhmän, jota seurataan kommunikaattorin avulla. Jokainen kollektiivinen kutsu välittää tämän kahvan, jotta NCCL tietää osallistujat.

Rankit tunnistavat GPU:t

Kommunikaattorin sisällä jokainen GPU saa numeron, jota kutsutaan rankiksi, alkaen nollasta. Rankien avulla voitte määrittää, kuka lähettää, kuka vastaanottaa ja kuka on juuri.

Kommunikaattorien rakentaminen

Yhdessä prosessissa oleville GPU:ille ncclCommInitAll alustaa kaikki kommunikaattorit kerralla antamanne laitetunnisteiden luettelon perusteella.

ncclCommInitAll(comms, nGpus, devs);

Streamien huomioiminen

Jokainen NCCL-kutsu saa parametrikseen streamin. Operaatiot jonoutuvat siihen ja suoritetaan kernelien rinnalla, joten viestintä voi limittyä laskennan kanssa.

Kutsujen ryhmittely

Jotta kollektiiviset operaatiot voidaan suorittaa useilla GPU:illa ilman lukkiutumista, sijoittakaa ne ncclGroupStart- ja ncclGroupEnd-kutsujen väliin, jolloin NCCL käynnistää ne yhdessä.

ncclGroupStart();
// per-GPU calls
ncclGroupEnd();

Miksi koulutus pitää siitä

Syväoppimisessa gradientit synkronoidaan GPU:iden välillä jokaisella askeleella. AllReduce tekee juuri tämän, minkä vuoksi NCCL tehostaa lähes kaikkea usean GPU:n koulutusta.

Pikatarkistus

Muistakaa NCCL:n kollektiivinen operaatio, joka summaa puskurin GPU:iden välillä ja palauttaa tuloksen niille kaikille.

Kertaus

NCCL suorittaa AllReduce-toiminnon kaltaisia kollektiivisia operaatioita nopeita yhteyksiä pitkin. Operaatiot järjestetään GPU-laitteiden rankeista koostuvan kommunikaattorin avulla. Se on usean GPU:n koulutuksen perusta. Kurssi suoritettu. ✨

Aloita maksutta

Opi C++ tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Usean GPU:n käyttö NCCL:llä” ilmainen?

Kyllä – oppitunnin ”Usean GPU:n käyttö NCCL:llä” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko CUDA Academy-kurssin, päivitä CoddyKit PROhon. CUDA Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Usean GPU:n käyttö NCCL:llä”?

Kollektiivinen viestintä skaalautumista varten Harjoittelet CUDA Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni CUDA Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin CUDA Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Usean GPU:n käyttö NCCL:llä”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä CUDA Academy-oppitunnilla?

Kyllä. Jokainen CUDA Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Laitteiden luetteleminen ja valitseminen
  2. Työn jakaminen GPU:iden kesken
  3. Muistin vertaiskäyttö
  4. Usean GPU:n käyttö NCCL:llä
← Takaisin: CUDA Academy