CUDA-ohjelman elinkaari
Varaa, kopioi, käynnistä, kopioi takaisin ja vapauta.
CUDA-ohjelman elinkaari 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.
Toistuva rytmi
Lähes jokainen CUDA-ohjelma noudattaa samaa viisivaiheista kaavaa. Kun opitte rytmin kerran, osaatte lukea mitä tahansa GPU-koodia. 🕺
Vaihe 1: Varaa
Varaa ensin syöte- ja tulostiedoille laitemuisti cudaMalloc-funktiolla, koska GPU ei voi käyttää isäntäkoneen puskureita suoraan.
cudaMalloc(&d_a, bytes);
cudaMalloc(&d_b, bytes);Vaihe 2: Kopioi sisään
Lataa seuraavaksi syötetiedot isäntäkoneelta laitteelle cudaMemcpy-funktiolla. Nyt GPU:lla on oma kopionsa käsiteltäväksi.
cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);Vaihe 3: Käynnistä
Käynnistä nyt kernel useilla säikeillä. Tässä vaiheessa rinnakkainen työ todella suoritetaan laitteella. 🚀
myKernel<<<blocks, threads>>>(d_a, d_b, n);Vaihe 4: Kopioi takaisin
Kun laskenta on valmis, lataa tulokset laitteelta isäntäkoneelle, jotta CPU voi lukea ja käyttää niitä.
cudaMemcpy(h_b, d_b, bytes, cudaMemcpyDeviceToHost);Vaihe 5: Vapauta
Lopuksi vapauta jokainen laitepuskuri cudaFree-funktiolla. Jos jätät tämän väliin, GPU-muistia vuotaa ja sitä ei voida käyttää muussa työssä.
cudaFree(d_a);
cudaFree(d_b);Muista synkronoida
Koska käynnistykset ovat asynkronisia, kutsu cudaDeviceSynchronize-funktiota ennen tulosten lukemista varmistaaksesi, että GPU on todella valmis.
cudaDeviceSynchronize();Kopiointi vie aikaa
Kopiointivaiheet kulkevat hidasta PCIe-väylää pitkin, joten tiedonsiirto on usein todellinen pullonkaula, ei kernel itse.
Käytä puskureita uudelleen
Muistin varaaminen kerran ja puskureiden käyttäminen uudelleen useissa käynnistyksissä on tehokkaampaa kuin uuden muistin varaaminen jokaisella silmukan kierroksella.
Kaavan symmetria
Huomaatteko symmetrian: jokaista cudaMalloc-kutsua vastaa cudaFree, ja jokaista sisään kopiointia vastaa lopulta ulos kopiointi.
Elinkaari yhdellä hengenvedolla
Lausukaa se mantran tavoin: varaa, kopioi sisään, käynnistä, kopioi takaisin, vapauta. Tämä yksi rivi muodostaa lähes jokaisen kernel-ohjelman rungon.
Pikatarkistus
Tarkistetaan CUDA-ohjelman vakiomuotoinen elinkaari.
Kertaus
Opitte CUDA:n viisivaiheisen elinkaaren: varaa, kopioi sisään, käynnistä, kopioi takaisin, vapauta sekä synkronoinnin ennen tulosten lukemista. 🎉
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 ”CUDA-ohjelman elinkaari” ilmainen?
Kyllä – oppitunnin ”CUDA-ohjelman elinkaari” 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 ”CUDA-ohjelman elinkaari”?
Varaa, kopioi, käynnistä, kopioi takaisin ja vapauta. 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 ”CUDA-ohjelman elinkaari”-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
- __global__-funktiomääre
- __device__- ja __host__-funktiot
- Erilliset osoiteavaruudet
- CUDA-ohjelman elinkaari