0Pricing
CUDA Academy · Lezione

L'avvio con tripla parentesi angolare

Chiami un kernel con >>.

L'avvio con tripla parentesi angolare è una lezione CUDA Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento CUDA Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CUDA Academy include 4 lezioni in totale.

L’avvio è diverso

Non chiamate un kernel come una normale funzione. Lo avviate, indicando alla GPU quanti thread creare contemporaneamente. 🚀

La sintassi <<< >>>

L’avvio usa le speciali parentesi angolari triple di CUDA. Al loro interno indicate la configurazione dell’avvio, prima del normale elenco di argomenti.

myKernel<<<blocks, threads>>>(args);

Primo numero: i blocchi

Il primo valore imposta quanti blocchi avviare. Un blocco è un gruppo di thread che vengono eseguiti insieme e condividono memoria rapida sul chip.

myKernel<<<4, threads>>>(args); // 4 blocks

Secondo numero: thread per blocco

Il secondo valore imposta il numero di thread per blocco. Il totale dei thread avviati è uguale al numero di blocchi moltiplicato per i thread per blocco.

myKernel<<<4, 256>>>(args); // 1024 threads

Gli argomenti vengono dopo

Dopo le parentesi, passate i normali argomenti del kernel tra parentesi tonde, proprio come in qualsiasi chiamata C++.

doubleIt<<<1, 256>>>(devicePtr);

Gli avvii sono asincroni

Un avvio è asincrono: la CPU accoda il lavoro e prosegue immediatamente. La GPU esegue il kernel in background.

Le configurazioni possono essere variabili

I numeri dell’avvio non devono essere necessariamente valori letterali. Spesso calcolate il numero di blocchi in fase di esecuzione a partire dalla dimensione dei dati.

int blocks = (n + 255) / 256;
add<<<blocks, 256>>>(c, a, b, n);

Usare dim3 per il 2D

Per griglie e blocchi in 2D o 3D, usate un valore dim3. Questo raggruppa le dimensioni x, y e z nell’avvio.

dim3 threads(16, 16);
blur<<<grid, threads>>>(img);

Scegliere i thread per blocco

Un valore predefinito sicuro per i thread per blocco è 128 o 256. I valori devono essere multipli di 32 e non superare 1024.

kernel<<<blocks, 128>>>(data);

Una configurazione errata causa un errore

Se chiedete troppi thread per blocco, l’avvio non riesce senza messaggi evidenti. Dovete controllare gli errori subito dopo l’avvio.

kernel<<<1, 2048>>>(p); // too big, fails

Leggetelo da sinistra a destra

Interpretate un avvio così: eseguite questo kernel su questo numero di blocchi, ciascuno con questo numero di thread, usando questi argomenti. È semplice una volta compreso il meccanismo.

vectorAdd<<<grid, block>>>(c, a, b, n);

Verifica rapida

È il momento di verificare la configurazione dell’avvio.

Riepilogo: l’avvio

Fate l’avvio con kernel<<>>(args). Il prodotto di blocchi e thread dà il totale e gli avvii sono asincroni. Ormai avviate i kernel come veri professionisti! 🎉

Domande Frequenti

La lezione «L'avvio con tripla parentesi angolare» è gratuita?

Sì — il testo completo di «L'avvio con tripla parentesi angolare» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso CUDA Academy, passa a CoddyKit PRO. Il corso CUDA Academy include 4 lezioni in totale.

Cosa imparerò in «L'avvio con tripla parentesi angolare»?

Chiami un kernel con >>. Eserciti CUDA Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare CUDA Academy?

Non è richiesta alcuna esperienza precedente. CUDA Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «L'avvio con tripla parentesi angolare»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione CUDA Academy?

Sì. Ogni lezione CUDA Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Anatomia di un kernel
  2. L'avvio con tripla parentesi angolare
  3. printf dentro un kernel
  4. Spiegazione di cudaDeviceSynchronize
← Torna a CUDA Academy