Flytta data till och från enheten
Hantera minnesöverföringar mellan värd och enhet.
Flytta data till och från enheten är en gratis lektion i Mojo Academy på CoddyKit. Detta är lektion 4 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.
Två separata minnen
CPU:n och GPU:n har var sitt minne. GPU:n kan inte läsa dina host-arrayer förrän datan finns på devicet.
Host och device
Vi kallar CPU-sidan för host och GPU-sidan för device. Att flytta data mellan dem är en central del av GPU-arbete.
Allokera på devicet
Först reserverar du plats på GPU:n för dina data. Den här device-bufferten är där indata och utdata kommer att finnas.
var d_a = ctx.enqueue_create_buffer[DType.float32](n)Kopiera över indata
Nu kopierar du dina host-arrayer till device-buffertarna. Den här uppladdningen förser GPU:n med talen den behöver.
ctx.enqueue_copy(d_a, h_a)Köra kernelen
När datan finns på devicet startar du kernelen. Den läser från och skriver till device-buffertarna, aldrig till host-buffertarna.
ctx.enqueue_function[kernel](grid_dim=blocks, block_dim=256)Kopiera tillbaka resultaten
Resultatet ligger på GPU:n tills du hämtar det. En nedladdning kopierar resultatbufferten tillbaka till host-minnet.
ctx.enqueue_copy(h_out, d_out)Arbetet köas, det sker inte direkt
Dessa anrop köas på GPU:n och blir inte klara direkt. Du måste synkronisera innan du kan lita på resultaten på hosten.
ctx.synchronize()Hela rundturen
Hela cykeln är uppladdning, beräkning och nedladdning. Föreställ dig data som gör en rundtur från host till device och tillbaka.
Överföringar kostar tid
Det går långsamt att kopiera över bussen jämfört med att beräkna. Varje överföring kan äta upp din hastighetsvinst om du gör den för ofta.
Behåll data på devicet
Kedja flera kernels på samma buffertar innan du kopierar tillbaka. Genom att minimera rundturerna behåller du GPU-vinsten.
Frigör det du allokerar
Device-minnet är begränsat, så frigör buffertar du inte längre behöver. Mojos ägarskapsregler hjälper till att frigöra dem vid rätt tidpunkt.
Snabb kontroll
Du vill att ett GPU-program faktiskt ska köras snabbare från början till slut.
Sammanfattning
Ladda upp indata till devicet, kör kernelen, ladda sedan ned resultaten och synkronisera, samtidigt som du minimerar kostsamma överföringar. 🔁
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 ”Flytta data till och från enheten” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Mojo Academy, inklusive ”Flytta data till och från enheten”, 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 ”Flytta data till och från enheten”?
Hantera minnesöverföringar mellan värd och enhet. 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 4 av 4.
Hur lång tid tar lektionen ”Flytta data till och från enheten”?
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