Torna ai corsi
AI021 Professional

Guida alla Programmazione CUDA

La risorsa ufficiale e completa per gli sviluppatori per imparare il modello di programmazione CUDA e come scrivere codice ad alte prestazioni che si esegue su GPU NVIDIA. Questa guida copre l'architettura della piattaforma, l'interfaccia di programmazione, le funzionalità hardware avanzate e le specifiche tecniche.

5.0
30.0h
1762 studenti
1 mi piace
Intelligenza Artificiale
Inizia ad imparare

Panoramica del corso

📚 Riepilogo del contenuto

La risorsa ufficiale e completa per gli sviluppatori che desiderano apprendere il modello di programmazione CUDA e come scrivere codice ad alte prestazioni eseguito su GPU NVIDIA. Questa guida copre l'architettura della piattaforma, l'interfaccia di programmazione, le caratteristiche hardware avanzate e le specifiche tecniche.

Padroneggia l'arte del calcolo parallelo con la guida standard dell'industria per NVIDIA CUDA.

Autore: NVIDIA Corporation

Ringraziamenti: Copyright © 2007-2024 NVIDIA Corporation & affiliate. Tutti i diritti riservati.

🎯 Obiettivi didattici

  1. Definire i ruoli dell'host (CPU) e del dispositivo (GPU) all'interno di un sistema eterogeneo.
  2. Spiegare il modello di programmazione SIMT e l'organizzazione gerarchica di thread, blocchi e griglie.
  3. Distinguere tra PTX (Parallel Thread Execution) e codice binario (cubins) e spiegare come la compilazione Just-in-Time (JIT) faciliti la compatibilità.
  4. Sviluppare e compilare kernel CUDA: scrivere funzioni global, configurare l'esecuzione con la notazione a tripla freccia e gestire il flusso di compilazione NVCC.
  5. Ottimizzare la memoria e il movimento dei dati: distinguere tra modelli di memoria Unified, Esplicita e Mappata, e implementare la memoria host bloccata a pagina per trasferimenti efficienti.
  6. Gestire l'esecuzione parallela: utilizzare CUDA Streams, Eventi e Cooperative Groups per gestire compiti asincroni e sincronizzare operazioni CPU-GPU.
  7. Eseguire aritmetica di puntatori complessa e identificare i collo di bottiglia architettonici (von Neumann vs. Harvard).
  8. Implementare pattern di esecuzione CUDA avanzati, inclusi lanci kernel dipendenti dal programma e trasferimenti batch multipli eterogenei.
  9. Utilizzare funzionalità specifiche dell'hardware come Thread Scopes, Proxy asincroni e Pipeline per massimizzare la concorrenza.
  10. Configurare e ottimizzare le prestazioni della memoria Unified tramite prefetching, suggerimenti d'uso e gestione delle dimensioni delle pagine.

Lezioni