Contattataci

Struttura del corso

Elaborazione GPU e architettura CUDA

  • Differenze architetturali tra CPU e GPU
  • Modello streaming multiprocessore NVIDIA GPU
  • Panoramica del modello di programmazione CUDA
  • Elaborazione eterogenea e paradigma host-device

Configurazione dell'ambiente di sviluppo CUDA

  • Installazione della CUDA Toolkit 13.x
  • Compilatore NVCC e flusso di lavoro di build
  • Verifica dell'ambiente con query sul dispositivo
  • Integrazione IDE e strumenti di sviluppo

Scrittura e avvio dei kernel CUDA

  • Sintassi degli identificatori qualificati per le funzioni kernel
  • Configurazione dell'avvio ed esecuzione
  • Addizione di vettori e pattern paralleli dati di base
  • Macro per il controllo degli errori CUDA

Gerarchia dei thread CUDA e modello di esecuzione

  • Organizzazione di griglie, blocchi e thread
  • Indicizzazione dei thread e calcolo dell'ID globale
  • Esecuzione delle warp e modello SIMT
  • Occupazione e utilizzo delle risorse

Architettura della memoria GPU e gestione

  • Tipi di memoria: globale, condivisa, costante, registri
  • Allocazione e liberazione della memoria del dispositivo
  • Trasferimenti host-to-device e device-to-host
  • Memoria condivisa per la collaborazione intra-blocco

Memoria unificata e migrazione dei dati

  • Modello di memoria unificata e allocazioni gestite
  • Migrazione delle pagine e paging on-demand
  • Prefetching asincrono con cudaMemPrefetchAsync
  • Suggerimenti per i comportamenti d'accesso alla memoria

Profilazione di sistema con Nsight Systems

  • Analisi temporale con Nsight Systems
  • Identificazione dei punti di sincronizzazione CPU-GPU
  • Visualizzazione dell'esecuzione dei kernel e dei trasferimenti di memoria
  • Interpretazione dei dati di prestazioni a livello di sistema

Ottimizzazione dei kernel con Nsight Compute

  • Profilazione interattiva dei kernel con Nsight Compute
  • Analisi del throughput e della banda di memoria
  • Utilizzo computazionale e statistiche sullo stato delle warp
  • Analisi guidata e regole di ottimizzazione

Stream concorrenti e operazioni asincrone

  • Stream CUDA e stream predefinito
  • Sovrapposizione dell'esecuzione dei kernel con i trasferimenti dati
  • Sincronizzazione degli stream ed eventi CUDA
  • Pattern di progettazione per pipeline multi-stream

Gestione degli errori e strumenti di debug

  • Codici di errore dell'API CUDA e strategie di recupero
  • Compute-sanitizer per il controllo degli accessi alla memoria
  • cuda-gdb per il debug dei kernel
  • Assert e rilevamento sincrono degli errori

Flusso di lavoro di ottimizzazione basata sulla profilazione

  • Metodologia iterativa di profiling
  • Identificazione e prioritizzazione dei colli di bottiglia
  • Test di regressione delle prestazioni
  • Documentazione delle decisioni di ottimizzazione

Progetto applicativo accelerato end-to-end

  • Progettazione di una soluzione completa accelerata su GPU
  • Integrazione della profilazione durante tutto lo sviluppo
  • Benchmark delle prestazioni e reportistica
  • Considerazioni per il deployment in produzione

Requisiti

  • Competenza base nella programmazione C/C++, inclusi tipi di variabili, cicli, istruzioni condizionali, funzioni e manipolazione degli array
  • Conoscenza della compilazione e dell'esecuzione di programmi da riga di comando
  • Nessuna esperienza precedente con GPU o programmazione CUDA richiesta

Pubblico obiettivo

  • Sviluppatori software ed ingegneri che desiderano accelerare le applicazioni C/C++ con GPU
  • Ricercatori scientifici e professionisti HPC in transizione da elaborazione solo CPU a computazione eterogenea
  • Leader tecnici che valutano l'accelerazione GPU per carichi di lavoro in produzione
 8 ore

Numero di Partecipanti


Prezzo per partecipante

Corsi in Arrivo

Categorie relative