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
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.
Base
GPU, kernel, thread e memoria
Intermedio
Memoria condivisa, prestazioni e librerie
Avanzato
Operazioni atomiche, matrici, intelligenza artificiale e strumenti
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
- Crea un array di 1920 x 1080 byte con valori da 0 a 255 (memoria unificata).
- Scrivi il kernel luminosita con indici x e y e il controllo dei limiti.
- Lancia il kernel con blocchi da 16 x 16 e una griglia calcolata per eccesso.
- Aggiungi la macro CHECK dopo ogni chiamata CUDA.
- Misura il tempo con cudaEvent e stampalo.
- Scrivi la stessa operazione con un ciclo sulla CPU e verifica che i risultati siano uguali.
- 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.
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.