0Pricing
CUDA Academy · Lezione

Scegliere i thread per blocco

Imposti valori ragionevoli come 128 e 256.

Scegliere i thread per blocco è una lezione CUDA Academy gratuita su CoddyKit. Questa è la lezione 4 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.

Una scelta concreta

Quando avvia un kernel, deve scegliere quanti thread per block utilizzare. Questa piccola scelta influisce concretamente sulle prestazioni. 🎚️

Multipli di 32

La GPU esegue i thread in gruppi di 32 chiamati warp, quindi scelga sempre un multiplo di 32. Le dimensioni non adatte sprecano lane in un warp parziale.

Valori predefiniti sicuri

Un buon primo tentativo consiste nell'usare 128 o 256 thread per block. Sono multipli di 32 e funzionano bene su quasi tutte le GPU.

int threadsPerBlock = 256;

Il limite massimo rigido

Le GPU attuali possono contenere al massimo 1024 thread in un block. Se ne richiede di più, l'avvio fallisce semplicemente con un errore.

Troppi pochi thread

I block molto piccoli, ad esempio da 32 thread, possono lasciare la GPU sottoutilizzata. Lo scheduler ha meno warp con cui nascondere la latenza della memoria.

Troppi thread

I block enormi possono esaurire i registri o la memoria condivisa, quindi su ogni multiprocessore è possibile inserire meno block. Più grande non significa sempre migliore.

Calcolare il numero di block

Una volta impostato il numero di thread per block, arrotondi per eccesso il numero di block, in modo da coprire ogni elemento anche quando la divisione non è esatta.

int blocks = (n + threadsPerBlock - 1) / threadsPerBlock;

Aggiunga sempre un controllo dei limiti

L'arrotondamento per eccesso crea alcuni thread aggiuntivi. Protegga il kernel con un if, così non accederanno alla memoria oltre la fine dell'array.

if (i < n) out[i] = a[i] + b[i];

Lasci che CUDA suggerisca una dimensione

Può chiedere automaticamente a CUDA una buona dimensione del block tramite l'helper per l'occupancy, quindi ottimizzare a partire dal suggerimento.

cudaOccupancyMaxPotentialBlockSize(&grid, &block, kernel);

Misuri, non faccia supposizioni

La dimensione migliore dipende effettivamente dal kernel e dalla GPU. Parta da 256, poi esegua il benchmark di alcuni valori e conservi quello più veloce.

Una regola pratica

Per la maggior parte dei kernel adatti ai principianti, 256 thread per block insieme a un numero di block arrotondato per eccesso è un punto di partenza affidabile e veloce.

Verifica rapida

Scelga l'opzione più appropriata per il numero di thread per block.

Riepilogo: dimensionare i block

Ha imparato a dimensionare i block: usi multipli di 32, imposti 256 come valore predefinito, rimanga sotto 1024, arrotondi per eccesso il numero di block ed esegua un benchmark. 🏁

Domande Frequenti

La lezione «Scegliere i thread per blocco» è gratuita?

Sì — il testo completo di «Scegliere i thread per blocco» è 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 «Scegliere i thread per blocco»?

Imposti valori ragionevoli come 128 e 256. 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 4 di 4.

Quanto tempo richiede la lezione «Scegliere i thread per blocco»?

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. La gerarchia dei thread
  2. threadIdx, blockIdx, blockDim
  3. Perché esistono i blocchi
  4. Scegliere i thread per blocco
← Torna a CUDA Academy