Mojo Academy · Lektion

Skriva en GPU-kärnfunktion

Uttryck enhetskod i Mojo.

Lektion 3 av 413 steg

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():
    pass

Skicka 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]):
    pass

Hitta 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.x

Skydda 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. ⚡

Gratis att börja

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

  1. Varför GPU:er för AI-arbetsbelastningar
  2. Trådar, block och grid
  3. Skriva en GPU-kärnfunktion
  4. Flytta data till och från enheten
← Tillbaka till Mojo Academy