Skriva en GPU-kärnfunktion
Uttryck enhetskod i Mojo.
Skriva en GPU-kärnfunktion är en gratis lektion i Mojo Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Mojo Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Mojo Academy innehåller totalt 4 lektioner.
Vad en kernel är
En GPU-kernel är funktionen som varje tråd kör. Du skriver arbetet för ett element, och hårdvaran upprepar det för många element.
Tänk i termer av en tråd
Tricket är att skriva en kernel ur en enda tråds perspektiv. Varje tråd utför sin egen lilla del av arbetet.
En kernel är bara en fn
I Mojo är en kernel en vanlig fn. Dess strikta, typade natur är precis vad device-kod behöver för att kompileras snabbt.
fn add_kernel():
passSkicka in buffertar
En kernel tar pekare till device-minne som parametrar. Dessa buffertar innehåller indata och resultatet som den ska fylla i.
fn add_kernel(a: UnsafePointer[Float32], out: UnsafePointer[Float32]):
passHitta den här trådens index
Inuti kernelen beräknar varje tråd först sin egen position. Detta index väljer vilket element den ska bearbeta.
var i = block_idx.x * block_dim.x + thread_idx.xSkydda gränserna
Kontrollera alltid indexet innan du rör minnet. En gräns-kontroll hindrar överblivna trådar från att läsa efter arrayens slut.
if i < n:
out[i] = a[i] + b[i]Utföra elementets arbete
Kroppen är liten: läs indata, beräkna och skriv ett resultat. Hela kernelen ryms ofta på en enda matematisk rad.
out[i] = a[i] * b[i]Starta kernelen
Du startar den genom att välja ett grid och en blockstorlek. Starten sprider ut din kod för en tråd över hela gridet.
ctx.enqueue_function[add_kernel](grid_dim=blocks, block_dim=256)Inget returvärde
Kernels returnerar inte resultat till anroparen. De skriver till resultatbufferten, som du läser tillbaka efteråt.
Håll grenarna få
Trådar fungerar bäst i låsteg. Omfattande förgrening får lanes att divergera och vänta, så håll kernel-logiken enkel och enhetlig.
Samma idé i massiv skala
En kort kernel plus ett stort grid ger miljontals resultat. Skalan kommer från starten, inte från längre kod.
Snabb kontroll
Du skriver kroppen till en GPU-kernel för en tråd.
Sammanfattning
En kernel är en fn för en tråd: hitta ditt index, skydda gränserna, utför matematiken för ett element och starta sedan över ett grid. ⚡
Lär dig Mojo med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”Skriva en GPU-kärnfunktion” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Mojo Academy, inklusive ”Skriva en GPU-kärnfunktion”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Mojo Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Skriva en GPU-kärnfunktion”?
Uttryck enhetskod i Mojo. Ni övar på Mojo Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Mojo Academy?
Du behöver inga förkunskaper. Utbildningen i Mojo Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Skriva en GPU-kärnfunktion”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Mojo Academy-lektionen?
Ja. Varje Mojo Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Varför GPU:er för AI-arbetsbelastningar
- Trådar, block och grid
- Skriva en GPU-kärnfunktion
- Flytta data till och från enheten