Trådhierarkiet
Tråder grupperes i blokker, og blokker i et rutenett
Trådhierarkiet er en gratis leksjon i CUDA Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i CUDA Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i CUDA Academy inneholder totalt 4 leksjoner.
Mange tråder, én oppgave
En CUDA-kernel kjører parallelt på tvers av mange tråder, og hver tråd utfører det samme arbeidet på sin egen del av dataene. 🧵
Tråder trenger struktur
Det ville vært kaotisk å starte millioner av løse tråder. CUDA organiserer dem i et ryddig hierarki, slik at maskinvaren kan planlegge kjøringen effektivt.
Tråder danner blokker
Trådene grupperes i en blokk. Alle trådene i en blokk kjører den samme kernel-en og kan samarbeide tett med naboene sine.
Blokker danner grid-et
Alle blokkene i én oppstart utgjør til sammen grid-et. Kjeden er altså enkel: tråder ligger i blokker, og blokker ligger i grid-et.
Hvorfor to nivåer?
Designet med to nivåer gjør at én kernel kan skaleres fra en liten GPU til en stor. De beskriver arbeidet én gang, så tilpasses grid-et størrelsen.
Velg formen ved oppstart
De velger antallet blokker og antallet tråder per blokk direkte ved oppstarten, ved å bruke syntaksen med triple vinkelparenteser.
myKernel<<<numBlocks, threadsPerBlock>>>(data);Et konkret eksempel
Si at De starter 4 blokker med 256 tråder. Da får De 4 ganger 256, altså 1024 tråder som kjører samtidig.
Blokker er uavhengige
Forskjellige blokker kan ikke anta noen bestemt rekkefølge eller kommunisere direkte med hverandre. Denne uavhengigheten er nettopp det som lar GPU-en kjøre dem i hvilken som helst rekkefølge.
Tråder i en blokk samarbeider
Inne i én blokk kan tråder dele raskt minne på brikken og synkronisere med hverandre. Dette samarbeidet er blokkens superkraft.
Grid-er og blokker kan være 3D
Både grid-et og hver blokk kan være 1D, 2D eller 3D. Typen dim3 lar Dem tilordne arbeidet naturlig til bilder eller volumer.
dim3 block(16, 16);
dim3 grid(32, 32);Én tråd, ett element
Det vanlige målet er å gi hver tråd nøyaktig ett dataelement å behandle. Hierarkiet beskriver bare hvordan du finner denne tilordningen.
Rask kontroll
La oss sjekke hvordan delene bygges inn i hverandre.
Oppsummering: Hierarkiet
Du har lært CUDA-stigen: tråder danner en blokk, og blokker danner grid-et. Uavhengige blokker kan skaleres, mens trådene i en blokk samarbeider. 🎯
Lær deg C++ med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Trådhierarkiet» gratis?
Ja – hele teksten i «Trådhierarkiet» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av CUDA Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i CUDA Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Trådhierarkiet»?
Tråder grupperes i blokker, og blokker i et rutenett Du øver på CUDA Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med CUDA Academy?
Ingen tidligere erfaring er nødvendig. CUDA Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Trådhierarkiet»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne CUDA Academy-leksjonen?
Ja. Alle CUDA Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.