Mojo Academy · Oppitunti

Grafiikkasuoritinydinfunktion kirjoittaminen

Ilmaise laitekoodi Mojolla.

Oppitunti 3/413 vaihetta

Grafiikkasuoritinydinfunktion kirjoittaminen on ilmainen Mojo Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Mojo Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Mojo Academy-kurssilla on yhteensä 4 oppituntia.

Mikä kernel on

GPU:n kernel on funktio, jonka jokainen säie suorittaa. Kirjoitat yhden alkion käsittelyyn tarvittavan työn, ja laitteisto toistaa sen useille alkioille.

Ajattele yhtä säiettä

Ideana on kirjoittaa kernel yhden säikeen näkökulmasta. Jokainen säie suorittaa oman pienen osuutensa työstä.

Kernel on vain fn

Mojossa kernel on tavallinen fn. Sen tiukka, tyypitetty luonne on juuri sitä, mitä laitekoodi tarvitsee kääntyäkseen nopeasti.

fn add_kernel():
    pass

Puskurien välittäminen

Kernel ottaa parametreikseen osoittimia laitteen muistiin. Nämä puskurit sisältävät syötteet ja tulosteen, jonka kernel täyttää.

fn add_kernel(a: UnsafePointer[Float32], out: UnsafePointer[Float32]):
    pass

Tämän säikeen indeksin löytäminen

Kernelin sisällä jokainen säie laskee ensin oman sijaintinsa. Tämä indeksi valitsee alkion, jota sen on käsiteltävä.

var i = block_idx.x * block_dim.x + thread_idx.x

Rajojen suojaaminen

Tarkistakaa indeksi aina ennen muistiin koskemista. Rajojen tarkistus estää ylimääräisiä säikeitä lukemasta taulukon ulkopuolelta.

if i < n:
    out[i] = a[i] + b[i]

Alkion työn suorittaminen

Runko on pieni: luetaan syötteet, lasketaan tulos ja kirjoitetaan yksi tulos. Koko kernel mahtuu usein yhdelle laskennan riville.

out[i] = a[i] * b[i]

Kernelin käynnistäminen

Käynnistätte kernelin valitsemalla ruudukon ja lohkon koon. Käynnistys levittää yhden säikeen koodinne koko ruudukkoon.

ctx.enqueue_function[add_kernel](grid_dim=blocks, block_dim=256)

Ei paluuarvoa

Kernelit eivät palauta tuloksia kutsujalle. Ne kirjoittavat tuloksen tulospuskuriin, josta luette sen myöhemmin.

Pidä haarautuminen vähäisenä

Säikeet toimivat parhaiten lukkiutuneesti samaan suoritukseen. Voimakas haarautuminen saa suorituskaistat eriytymään ja odottamaan, joten pitäkää kernelin logiikka yksinkertaisena ja yhdenmukaisena.

Sama idea, valtava mittakaava

Yksi lyhyt kernel ja suuri ruudukko tuottavat miljoonia tuloksia. Mittakaava syntyy käynnistyksestä, ei pidemmästä koodista.

Pikatarkistus

Kirjoitatte GPU-kernelin runkoa yhdelle säikeelle.

Kertaus

Kernel on yhden säikeen fn: etsitte indeksinne, tarkistatte rajat, suoritatte yhden alkion laskennan ja käynnistätte sitten kernelin koko ruudukossa. ⚡

Aloita maksutta

Opi Mojo 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 ”Grafiikkasuoritinydinfunktion kirjoittaminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Mojo Academy-oppimispolun 3 oppituntia, myös oppitunnin “Grafiikkasuoritinydinfunktion kirjoittaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Mojo Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Grafiikkasuoritinydinfunktion kirjoittaminen”?

Ilmaise laitekoodi Mojolla. Harjoittelet Mojo Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Mojo Academy-opiskelun?

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

Kuinka kauan ”Grafiikkasuoritinydinfunktion kirjoittaminen”-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ä Mojo Academy-oppitunnilla?

Kyllä. Jokainen Mojo 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. Miksi grafiikkasuorittimia käytetään tekoälytyökuormissa
  2. Säikeet, lohkot ja ruudukot
  3. Grafiikkasuoritinydinfunktion kirjoittaminen
  4. Tietojen siirtäminen laitteelle ja laitteelta
← Takaisin: Mojo Academy