CUDA Academy · Oppitunti

CUDA-ohjelman elinkaari

Varaa, kopioi, käynnistä, kopioi takaisin ja vapauta.

Oppitunti 4/413 vaihetta

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. 🎉

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 ”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

  1. __global__-funktiomääre
  2. __device__- ja __host__-funktiot
  3. Erilliset osoiteavaruudet
  4. CUDA-ohjelman elinkaari
← Takaisin: CUDA Academy