De threadhiërarchie
Threads vormen blocks en blocks vormen een grid.
De threadhiërarchie is een gratis CUDA Academy-les op CoddyKit. Dit is les 1 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.
Veel threads, één taak
Een CUDA-kernel draait parallel over veel threads, waarbij elke thread hetzelfde werk uitvoert op zijn eigen deel van de gegevens. 🧵
Threads hebben structuur nodig
Miljoenen losse threads starten zou chaotisch zijn. CUDA organiseert ze in een duidelijke hiërarchie, zodat de hardware ze goed kan inplannen.
Threads vormen blokken
Threads worden gegroepeerd in een blok. Elke thread in een blok voert dezelfde kernel uit en kan nauw samenwerken met zijn buren.
Blokken vormen het raster
Alle blokken voor één start vormen samen het raster. De keten is dus eenvoudig: threads leven in blokken en blokken leven in het raster.
Waarom twee niveaus?
Dankzij dit ontwerp op twee niveaus kan één kernel meegroeien van een kleine GPU tot een enorme. Je beschrijft het werk één keer en het raster past zich aan.
De vorm kiezen bij het starten
Je kiest het aantal blokken en het aantal threads per blok direct bij de start, met de syntaxis met drievoudige punthaken.
myKernel<<<numBlocks, threadsPerBlock>>>(data);Een concreet voorbeeld
Stel dat je 4 blokken met 256 threads start. Dat geeft 4 maal 256, oftewel 1024 threads die allemaal tegelijk draaien.
Blokken zijn onafhankelijk
Verschillende blokken mogen geen bepaalde volgorde aannemen en kunnen niet rechtstreeks met elkaar communiceren. Juist dankzij deze onafhankelijkheid kan de GPU ze in elke volgorde uitvoeren.
Threads binnen een blok werken samen
Binnen één blok kunnen threads snel geheugen op de chip delen en met elkaar synchroniseren. Die samenwerking is de superkracht van een blok.
Rasters en blokken kunnen 3D zijn
Zowel het raster als elk blok kan 1D, 2D of 3D zijn. Met het type dim3 kun je natuurlijke toewijzingen maken voor afbeeldingen of volumes.
dim3 block(16, 16);
dim3 grid(32, 32);Eén thread, één element
Het algemene doel is om elke thread precies één gegevenselement te laten verwerken. De hiërarchie bepaalt alleen hoe je die koppeling bereikt.
Korte controle
Laten we controleren hoe de onderdelen in elkaar genest zijn.
Samenvatting: de hiërarchie
Je hebt de CUDA-ladder geleerd: threads vormen een block en blocks vormen het grid. Onafhankelijke blocks schalen goed, terwijl threads binnen een block samenwerken. 🎯
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 “De threadhiërarchie” gratis?
Ja — de volledige tekst van “De threadhiërarchie” 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 “De threadhiërarchie”?
Threads vormen blocks en blocks vormen een grid. 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 1 van 4.
Hoe lang duurt de les “De threadhiërarchie”?
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 threadhiërarchie
- threadIdx, blockIdx, blockDim
- Waarom blocks bestaan
- Het aantal threads per block kiezen