Streams maken en gebruiken
Voer onafhankelijk werk uit via afzonderlijke wachtrijen.
Streams maken en gebruiken is een gratis CUDA Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject CUDA Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus CUDA Academy bevat in totaal 4 lessen.
Onafhankelijke werkwachtrijen
Een niet-standaard stream is je eigen werkwachtrij. Twee streams draaien onafhankelijk, zodat de GPU aan beide tegelijk voortgang kan boeken. 🧵
De streamreferentie
Een stream leeft in een cudaStream_t-referentie. Je maakt deze één keer aan, geeft hem door aan je aanroepen en vernietigt hem wanneer je klaar bent.
cudaStream_t stream;Een stream maken
Roep cudaStreamCreate aan om een nieuwe stream te maken. Deze reserveert de wachtrij die het stuurprogramma gebruikt om het werk van die stream in te plannen.
cudaStreamCreate(&stream);Een kernel in een stream starten
De startconfiguratie van een kernel heeft een vierde argument: de grootte van het gedeelde geheugen, gevolgd door de stream. Geef je stream door om de kernel daarin te plaatsen.
kernel<<<grid, block, 0, stream>>>(d_data);Twee streams, twee taken
Zet één taak op streamA en een andere op streamB. Als er geen afhankelijkheid tussen beide is, kan de GPU ze allebei gelijktijdig uitvoeren.
kA<<<g, b, 0, streamA>>>(a);
kB<<<g, b, 0, streamB>>>(d);Van nature asynchroon
Stream-aanroepen zijn asynchroon: de host retourneert onmiddellijk en gaat verder. De GPU werkt de wachtrij op zijn eigen tempo af.
Wachten op één stream
Gebruik cudaStreamSynchronize om de host te blokkeren totdat alleen die stream klaar is, in plaats van op het hele apparaat te wachten.
cudaStreamSynchronize(stream);Controleren zonder te blokkeren
Wil je even kijken? cudaStreamQuery retourneert cudaSuccess als de stream klaar is en cudaErrorNotReady als deze nog bezig is, zonder je te laten wachten.
cudaStreamQuery(stream);Opruimen
Wanneer je een stream niet meer nodig hebt, geef je deze vrij met cudaStreamDestroy. Werk dat nog in behandeling is, wordt eerst voltooid voordat de referentie wordt vrijgegeven.
cudaStreamDestroy(stream);Niet-blokkerende streams
Maak een stream met de vlag cudaStreamNonBlocking, zodat deze niet impliciet synchroniseert met de oude standaardstream.
cudaStreamCreateWithFlags(&s, cudaStreamNonBlocking);Meer streams, meer overlap
Door onafhankelijke delen over meerdere streams te verdelen, kan de planner de engines bezig houden. Na een paar streams neemt de opbrengst af omdat de hardware vol raakt.
Korte controle
Hoe plaats je een kernel in een specifieke stream?
Samenvatting
Je kunt nu streams maken, kernels erin starten, synchroniseren of opvragen, en ze vernietigen. Onafhankelijke streams maken echte gelijktijdigheid mogelijk. ✨
Leer C++ met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Streams maken en gebruiken” gratis?
Ja — de volledige tekst van “Streams maken en gebruiken” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus CUDA Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus CUDA Academy bevat in totaal 4 lessen.
Wat leer ik in “Streams maken en gebruiken”?
Voer onafhankelijk werk uit via afzonderlijke wachtrijen. Je oefent met CUDA Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met CUDA Academy te beginnen?
Ervaring vooraf is niet nodig. CUDA Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Streams maken en gebruiken”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over CUDA Academy?
Ja. Elke les over CUDA Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- De valkuil van de default stream
- Streams maken en gebruiken
- Events voor timing en synchronisatie
- Kopie en berekening overlappen