Misurare il primo incremento di velocità
Misuri GPU e CPU sulla stessa attività.
Misurare il primo incremento di velocità è 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.
Ora misuri il vantaggio
Ora che ha un kernel corretto, la domanda interessante è quanto sia più veloce della CPU. Misurare trasforma un’ipotesi in un numero concreto. ⏱️
Cronometrare la baseline CPU
Inizi con una baseline equa: misuri la stessa somma eseguita in un normale ciclo CPU. Le serve un termine di confronto per la GPU.
Non cronometrare nel modo sbagliato
Eviti di includere nel tempo una cudaMemcpy che non ha atteso. L’avvio è asincrono, quindi i cronometri ingenui possono restituire risultati senza senso.
Usare gli eventi CUDA
Lo strumento giusto è una coppia di oggetti cudaEvent. Registrano direttamente sul device i timestamp della GPU, permettendo di misurare il kernel con precisione.
cudaEvent_t start, stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);Delimitare il kernel
Registri start subito prima dell’avvio e stop subito dopo. Gli eventi vengono accodati nello stream insieme al kernel.
cudaEventRecord(start);
vecAdd<<<blocks, threads>>>(d_A, d_B, d_C, n);
cudaEventRecord(stop);Attendere, poi leggere
Chiami cudaEventSynchronize su stop, così la CPU attende la GPU. Solo a quel punto il tempo trascorso è pronto per essere letto.
cudaEventSynchronize(stop);
float ms = 0;
cudaEventElapsedTime(&ms, start, stop);Eseguire prima il warm-up
Il primo avvio sostiene costi di configurazione una tantum. Esegua un avvio di warm-up senza scopo prima della misurazione, così questi costi non alterano il risultato.
Calcolare la media di più esecuzioni
Un solo campione è rumoroso, quindi misuri il kernel alcune volte e calcoli la media. Valori stabili rendono affidabili le dichiarazioni sull’aumento di velocità.
Contare le copie
Sia onesto su ciò che misura. Il tempo del solo kernel sembra straordinario, ma l’aumento di velocità reale deve includere anche i trasferimenti PCIe.
Calcolare lo speedup
Lo speedup è semplicemente il tempo CPU diviso per il tempo GPU. Un array piccolo può persino essere più lento sulla GPU una volta conteggiate le copie.
float speedup = cpu_ms / gpu_ms;Gli array più grandi danno risultati migliori
La GPU dà il meglio quando c’è abbastanza lavoro da nascondere il costo dei trasferimenti. Aumenti n e osservi lo speedup crescere, mentre il parallelismo diventa predominante. 📈
Controllo rapido
Quale strumento fornisce una misurazione accurata del tempo di esecuzione di un kernel GPU?
Riepilogo
Ha misurato il suo primo speedup con gli eventi CUDA: warm-up, delimitazione del kernel, sincronizzazione e divisione del tempo CPU per quello GPU. Problemi più grandi, vantaggi maggiori. 🎉
Domande Frequenti
La lezione «Misurare il primo incremento di velocità» è gratuita?
Sì — il testo completo di «Misurare il primo incremento di velocità» è 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 «Misurare il primo incremento di velocità»?
Misuri GPU e CPU sulla stessa attività. 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 «Misurare il primo incremento di velocità»?
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
- Il kernel di somma di vettori
- Collegare il lato host
- Verificare il risultato sulla CPU
- Misurare il primo incremento di velocità