Profilare, ottimizzare, distribuire
Chiudere il ciclo con le metriche di Nsight
Profilare, ottimizzare, distribuire è 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.
Misurare, non tirare a indovinare
L'ottimizzazione inizia dai dati, non dalle supposizioni. Esegua sempre prima il profiling per capire dove viene impiegato davvero il tempo, prima di modificare anche una sola riga. 🔍
Iniziare dalla timeline
Apra Nsight Systems per vedere l'esecuzione completa: kernel, copie e intervalli vuoti. La timeline mostra se i trasferimenti e l'elaborazione si sovrappongono davvero.
Individuare il kernel più impegnativo
Di solito uno stadio è predominante. La timeline rivela il kernel con il tempo di esecuzione più lungo: è proprio da lì che dovrebbe iniziare il lavoro di ottimizzazione.
Analizzare in dettaglio con Nsight Compute
Per il kernel più impegnativo, passi a Nsight Compute. Questo strumento fornisce metriche per kernel, come throughput della memoria, stalli e occupancy raggiunta.
Leggere il roofline
Il roofline indica se un kernel è limitato dalla memoria o dal calcolo. Questa singola informazione stabilisce quali ottimizzazioni valga la pena provare.
Correggere i kernel limitati dalla memoria
Se il limite è la memoria, punti al coalescing, al tiling nella memoria condivisa e ai caricamenti vettoriali. Alimentare più velocemente i dati è l'unica strada per aumentare la velocità.
Correggere i kernel limitati dal calcolo
Se il limite è il calcolo, aumenti l'ILP con l'unrolling, elimini i calcoli ridondanti oppure passi a una precisione inferiore. In questo caso, il limite è costituito dalle unità aritmetiche.
Annotare il codice con NVTX
Racchiuda gli stadi della pipeline in intervalli NVTX, così la timeline mostrerà barre denominate invece di kernel anonimi. I profili leggibili sono più rapidi da analizzare.
nvtxRangePush("blur");
blurKernel<<<grid, block>>>(d_in, d_out);
nvtxRangePop();Cambiare una sola cosa alla volta
Applichi una singola ottimizzazione e poi ripeta il profiling. Questo stretto ciclo dimostra che ogni modifica è stata utile e impedisce di confondere due effetti diversi.
Sapere quando fermarsi
Quando un kernel si avvicina al proprio limite del roofline, ulteriori ottimizzazioni producono poco. Riconosca i rendimenti decrescenti e dedichi il tempo al prossimo collo di bottiglia.
Convalidare, poi distribuire
Prima del rilascio, confermi la correttezza rispetto a un riferimento e verifichi che l'aumento di velocità sia stabile. Una pipeline veloce ma errata non è pronta per la distribuzione. 🚢
Verifica rapida
Nsight Compute indica che il kernel più impegnativo è limitato dalla memoria. Quale correzione dovrebbe provare per prima?
Riepilogo
Ha imparato a eseguire il profiling con Nsight, a leggere il roofline per classificare i kernel, ad applicare correzioni mirate una alla volta e a convalidare il risultato prima di distribuire una pipeline veloce e corretta. 🏁
Impara C++ con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Profilare, ottimizzare, distribuire» è gratuita?
Sì — il testo completo di «Profilare, ottimizzare, distribuire» è 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 «Profilare, ottimizzare, distribuire»?
Chiudere il ciclo con le metriche di Nsight 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 «Profilare, ottimizzare, distribuire»?
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
- Progettare la pipeline di elaborazione
- Fondere i filtri in un unico kernel
- Elaborare tile in streaming per immagini grandi
- Profilare, ottimizzare, distribuire