Usean GPU:n käyttö NCCL:llä
Kollektiivinen viestintä skaalautumista varten
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. ✨
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
- Laitteiden luetteleminen ja valitseminen
- Työn jakaminen GPU:iden kesken
- Muistin vertaiskäyttö
- Usean GPU:n käyttö NCCL:llä