SIMT: la stessa istruzione, molti thread
Il modello di esecuzione che rende veloci le GPU.
SIMT: la stessa istruzione, molti thread è 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.
Come fa la GPU a rimanere occupata
Migliaia di core hanno bisogno di un modo intelligente per ricevere istruzioni. La risposta della GPU è SIMT: Single Instruction, Multiple Threads. ⚡
Un'istruzione, molti thread
In SIMT, un'istruzione viene trasmessa contemporaneamente a un intero gruppo di thread. Ogni thread esegue lo stesso passaggio, ma sui propri dati.
La stessa ricetta, ingredienti diversi
Immaginate una cucina in cui ogni cuoco segue esattamente lo stesso passaggio della ricetta, ma lavora su un piatto diverso. Quel passaggio condiviso è la vostra istruzione. 🍳
Ecco il warp
La GPU raggruppa i thread in gruppi di 32 chiamati warp. Un warp è la vera unità che viene eseguita insieme, in lockstep, un'istruzione alla volta.
Perché gruppi da 32
Emettere un'istruzione per 32 thread contemporaneamente è molto più economico che impartire 32 comandi separati. È proprio da questa condivisione che deriva l'efficienza della GPU.
Ogni thread ha i propri dati
I thread di un warp condividono l'istruzione, ma mantengono registri privati. Quindi il thread 0 e il thread 5 eseguono la stessa somma, semplicemente su numeri diversi.
SIMT non è proprio SIMD
Il SIMD classico elabora vettori di ampiezza fissa. SIMT conserva l'idea delle istruzioni condivise, ma consente a ogni thread di comportarsi in modo più indipendente quando necessario.
Il problema dei branch
Che cosa succede se metà di un warp segue un branch if e l'altra metà no? I thread di un warp vogliono procedere insieme, quindi un branch può dividere il gruppo.
if (x > 0) {
y = x * 2;
} else {
y = -x;
}Divergenza del warp
Quando i thread di un warp non concordano su un branch, il warp esegue ogni percorso a turno e disabilita gli altri. Questa ripetizione seriale viene chiamata divergenza.
La divergenza riduce la velocità
Poiché i percorsi divergenti vengono eseguiti uno dopo l'altro, perdete parallelismo. Mantenere un warp sullo stesso percorso è fondamentale per ottenere kernel veloci.
Perché SIMT scala così bene
Con un'istruzione che alimenta 32 thread e molti warp in esecuzione, la GPU mantiene piene le proprie unità di calcolo. È così che SIMT si traduce in puro throughput.
Verifica rapida
Assicuriamoci di conoscere bene il vocabolario di SIMT.
Riepilogo: SIMT
SIMT trasmette un'istruzione a un warp di 32 thread, ciascuno sui propri dati. Evitate i branch divergenti per mantenere tutti i thread sincronizzati. 👍
Domande Frequenti
La lezione «SIMT: la stessa istruzione, molti thread» è gratuita?
Sì — il testo completo di «SIMT: la stessa istruzione, molti thread» è 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 «SIMT: la stessa istruzione, molti thread»?
Il modello di esecuzione che rende veloci le GPU. 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 «SIMT: la stessa istruzione, molti thread»?
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
- CPU contro GPU: latenza e throughput
- SIMT: la stessa istruzione, molti thread
- Che cos'è davvero CUDA
- Problemi ideali per la GPU