Gpu computing

A.A. 2020/2021
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Italiano
Learning objectives
L'obiettivo di questo insegnamento è l'apprendimento delle principali tecniche di programmazione parallela e disegno di algoritmi paralleli per lo sviluppo di applicazioni su architetture many-core, come le GPU (Graphics Processing Units), progettate per il calcolo parallelo ad elevate prestazioni.
Expected learning outcomes
Ci si attende che lo studente maturi una decisa attitudine alla progettazione orientata a sistemi ibridi CPU-GPU, al fine di:
- affrontare il processo di disegno logico volto ad individuare sotto-task effettivamente parallelizzabili
- analizzare in modo critico l'uso di risorse hw richieste dai diversi livelli di concorrenza
- consolidare il fondamentale processo di valutazione e ottimizzazione delle prestazioni
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Course syllabus and organization

Edizione unica

Responsabile
Periodo
Secondo semestre
Il corso in fase emergenziale verrà erogato a distanza, possibilmente in modalità sincrona usando la piattaforma Zoom. Le lezioni verranno comunque registrate, salvate su Ariel, e resteranno accessibili per l'intero semestre.

Materiali di riferimento:
Il programma e il materiale di riferimento non subiranno variazioni.

Modalità di verifica dell'apprendimento e criteri di valutazione:
La modalità d'esame e i criteri di valutazioni non cambiano rispetto a quanto stabilito nel syllabus (situazione non emergenziale).
Lo svolgimento degli scritti avverrà in presenza oppure a distanza (nei casi previsti dall'Ateneo) sulla piattaforma exam.net (modalità illustrate sul portale di Ateneo).

Programma
- Introduzione ai sistemi di calcolo eterogenei basati su CPU e GPU
- Il concetto di GPGPU (General Purpose GPU) programming
- Architetture di calcolo parallelo
- Il modello di programmazione CUDA
- Il modello di esecuzione CUDA
- Il modello di memoria CUDA
- Stream, concorrenza e ottimizzazione delle prestazioni
- Librerie di CUDA SDK accelerate da GPU
- Programmazione e computazione multi-GPU
- Pattern di parallelismo negli algoritmi
- Sviluppo e implementazione di applicazioni su GPU NVIDIA
Prerequisiti
Sono requisiti essenziali le basi di teoria e pratica della programmazione e una buona conoscenza del linguaggio ANSI C standard
Metodi didattici
Il corso è strutturato in lezioni frontali ed esercitazioni di laboratorio basate sul linguaggio di programmazione CUDA C.
Materiale di riferimento
I lucidi delle lezioni, i testi di riferimento e i documenti tecnici sono reperibili sulla pagina web del corso http://gpu.di.unimi.it/
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste di due parti:
- Prova scritta: domande aperte sugli argomenti trattati a lezione (fino a un massimo 24/30 punti)
- Progetto: sviluppo di un progetto basato sul linguaggio CUDA C (fino a un massimo 10/30 punti)
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente: Grossi Giuliano
Professor(s)
Ricevimento:
Su appuntamento (da prendere per email)
Stanza 4016, 4° piano di via Celoria 18