Grafiikkasuoritinydinfunktion kirjoittaminen
Ilmaise laitekoodi Mojolla.
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():
passPuskurien 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]):
passTä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.xRajojen 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. ⚡
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
- Miksi grafiikkasuorittimia käytetään tekoälytyökuormissa
- Säikeet, lohkot ja ruudukot
- Grafiikkasuoritinydinfunktion kirjoittaminen
- Tietojen siirtäminen laitteelle ja laitteelta