CUDA Academy · Lektion

Beräknings- eller minnesbegränsad

Läs roofline-diagrammet för att planera åtgärder.

Lektion 3 av 413 steg

Beräknings- eller minnesbegränsad är en gratis lektion i CUDA Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för CUDA Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i CUDA Academy innehåller totalt 4 lektioner.

Två typer av begränsningar

Varje kernel stöter på en av två begränsningar. Den är antingen beräkningsbegränsad och begränsas av matematik, eller minnesbegränsad och begränsas av dataförflyttning. ⚖️

Beräkningsbegränsad – definition

En beräkningsbegränsad kernel håller beräkningsenheterna sysselsatta och väntar sällan på minne. Begränsningen är den råa aritmetiska genomströmningen.

Minnesbegränsad – definition

En minnesbegränsad kernel tillbringar sin tid med att vänta på data. Kärnorna står overksamma medan byte långsamt hämtas från globalt minne.

Aritmetisk intensitet

Det viktiga förhållandet är aritmetisk intensitet: antalet matematiska operationer per inläst byte. Hög intensitet pekar mot beräkningar, låg intensitet mot minne.

Roofline-bilden

I ett roofline-diagram når kernels med låg intensitet det lutande minnestaket, medan kernels med hög intensitet når det plana beräkningstaket.

Varför diagnosen är viktig

Att åtgärda fel begränsning slösar tid och arbete. Att lägga till matematik i en minnesbegränsad kernel förändrar ingenting; ni måste minska datatrafiken i stället.

Åtgärda minnesbegränsade kernels

För att snabba upp en minnesbegränsad kernel bör ni samordna åtkomster, återanvända data i delat minne och cacha värden för att läsa mindre.

Åtgärda beräkningsbegränsade kernels

För beräkningsbegränsat arbete kan ni öka parallellismen, använda snabbare matematik eller utnyttja tensor-kärnor för att passera beräkningstaket.

De flesta kernels är minnesbegränsade

I praktiken är majoriteten av CUDA-kernels minnesbegränsade. Bandbredd, inte aritmetik, är vanligtvis den knappa resursen.

Låt profileraren avgöra

Gissa inte vilken begränsning som gäller. Roofline i Nsight Compute placerar automatiskt er kernel under rätt tak.

Ett enkelt sätt att tänka

Ställ en fråga: ligger kärnorna eller minnesbussarna närmast topprestanda? Den resurs som är mättad visar vilken begränsning ni har.

Snabb kontroll

En kernel har mycket låg aritmetisk intensitet.

Sammanfattning

Diagnostisera begränsningen först: minnesbegränsade kernels behöver mindre trafik, medan beräkningsbegränsade kernels behöver mer matematik. Roofline visar vilken som gäller. 👏

Gratis att börja

Lär dig C++ 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 ”Beräknings- eller minnesbegränsad” gratis?

Ja – hela texten till ”Beräknings- eller minnesbegränsad” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i CUDA Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i CUDA Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Beräknings- eller minnesbegränsad”?

Läs roofline-diagrammet för att planera åtgärder. Ni övar på CUDA 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 CUDA Academy?

Du behöver inga förkunskaper. Utbildningen i CUDA 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 ”Beräknings- eller minnesbegränsad”?

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 CUDA Academy-lektionen?

Ja. Varje CUDA 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. Tidslinjevyn i Nsight Systems
  2. Kernelmätvärden i Nsight Compute
  3. Beräknings- eller minnesbegränsad
  4. Annotera kod med NVTX
← Tillbaka till CUDA Academy