Vai al contenuto

Videocorso CUDA per GPU NVIDIA CGFA

Programmare la scheda video: kernel, thread, memoria, prestazioni e uno sguardo al calcolo per l'intelligenza artificiale

  • Partenza: Base
  • 16 ore con gli esercizi
  • 10 lezioni in 3 livelli
  • 2 lezioni gratis

A chi serve

Programmatori C o C++ che vogliono sfruttare la potenza di una GPU NVIDIA per calcoli paralleli, grafica, scienza e intelligenza artificiale

Cosa serve per iniziare

  • Conoscere le basi del C o del C++ (variabili, funzioni, puntatori, cicli)
  • Un PC con scheda video NVIDIA (GeForce, RTX, Quadro) oppure un account Google gratuito per usare Google Colab
  • Sistema Windows o Linux per l'installazione locale

Cosa installare

CUDA Toolkit (versione 13)Si scarica gratis da developer.nvidia.com/cuda-downloads. Contiene il compilatore nvcc, le librerie e gli strumenti di analisi. Richiede il driver NVIDIA aggiornato
Google ColabGratis, nel browser su colab.research.google.com: scegli Runtime, Cambia tipo di runtime, GPU. Nessuna installazione e nessuna scheda video propria necessaria. Ottimo per fare tutti gli esercizi
nvidia-smiComando incluso con il driver: mostra la scheda, la memoria usata e la temperatura
Visual Studio (Windows) o gcc (Linux)nvcc ha bisogno di un compilatore C++ del sistema: Visual Studio Community su Windows, gcc su Linux
Nsight Systems e Nsight ComputeStrumenti gratuiti NVIDIA, inclusi con il Toolkit, per misurare dove il programma perde tempo

A cosa ti serve

  • Intelligenza artificiale e deep learning (addestrare e far girare i modelli)
  • Calcolo scientifico e simulazioni
  • Elaborazione di immagini, video e grafica 3D
  • Finanza e analisi di grandi quantità di dati
  • Ottimizzazione di software ad alte prestazioni

Programma del corso

10 lezioni in 3 livelli. Ogni lezione: video, spiegazione, codice da copiare o provare, esercizio con soluzione e quiz.

Progetto finale: Filtro per immagini sulla GPU

Realizza un programma che schiarisce un'immagine in scala di grigi di 1920 x 1080 pixel usando un kernel 2D, misura il tempo con gli eventi CUDA e lo confronta con la versione CPU. Metterai insieme griglie 2D, memoria unificata, controllo errori e misura delle prestazioni.

I passi

  1. Crea un array di 1920 x 1080 byte con valori da 0 a 255 (memoria unificata).
  2. Scrivi il kernel luminosita con indici x e y e il controllo dei limiti.
  3. Lancia il kernel con blocchi da 16 x 16 e una griglia calcolata per eccesso.
  4. Aggiungi la macro CHECK dopo ogni chiamata CUDA.
  5. Misura il tempo con cudaEvent e stampalo.
  6. Scrivi la stessa operazione con un ciclo sulla CPU e verifica che i risultati siano uguali.
  7. Extra: usa Nsight Systems per vedere la timeline e prova blocchi da 8 x 8, 16 x 16 e 32 x 32.

Esame e attestato

Alla fine del corso fai l'esame: 15 domande, serve il 75% di risposte giuste. Superato l'esame ottieni l'attestato stampabile con nome, ore, punteggio e un codice di controllo che chiunque può verificare.

Vai all'esame

Glossario di CUDA

Host
La CPU del computer con la sua memoria RAM.
Device
La GPU con la sua memoria, detta VRAM.
Kernel
Una funzione __global__ che gira sulla GPU eseguita da migliaia di thread.
Thread
La più piccola unità di esecuzione: ognuno lavora su un dato diverso.
Blocco
Un gruppo di thread che possono collaborare e condividere memoria.
Griglia
L'insieme di tutti i blocchi lanciati da un kernel.
Warp
Un gruppo di 32 thread che eseguono la stessa istruzione insieme.
Memoria globale
La memoria grande ma lenta della GPU, visibile a tutti i thread.
Memoria condivisa
Una memoria piccola e veloce, condivisa dai thread dello stesso blocco.
Stream
Una coda di lavori sulla GPU; stream diversi possono sovrapporsi.
Operazione atomica
Un'operazione di lettura, calcolo e scrittura indivisibile, che evita le corse tra thread.
Tensor Core
Un'unità speciale delle GPU recenti che moltiplica piccole matrici in una sola istruzione.

Le prime 2 lezioni sono gratis

Per il corso completo, scuole e aziende: chiedi le condizioni.