- Docente: Stefano Mattoccia
- Crediti formativi: 8
- SSD: ING-INF/05
- Lingua di insegnamento: Italiano
- Moduli: Stefano Mattoccia (Modulo 1) Fabio Tosi (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Bologna
- Corso: Laurea Magistrale in Ingegneria informatica (cod. 5826)
-
Orario delle lezioni (Modulo 1)
dal 18/09/2024 al 18/12/2024
-
Orario delle lezioni (Modulo 2)
dal 20/09/2024 al 20/12/2024
Conoscenze e abilità da conseguire
Il corso fornisce una introduzione a moderne metodologie software per la progettazione di sistemi di elaborazione di tipo embedded. I contesti applicativi di riferimento e i progetti riguardano l’elaborazione di immagini e reti per deep-learning applicate a problemi di computer vision.
Contenuti
Architetture e modelli di programmazione per calcolo a elevate prestazioni. Nel corso si farà paricolare riferimento a tematiche inerenti computer vision e intelligenza artificiale.
1: Introduzione al calcolo a elevate prestazioni
-
Concetti fondamentali del calcolo parallelo
-
Architetture per calcolo a elevate prestazioni: CPU multi-core, GPU, sistemi embedded
2: SIMD and Multi-threading
-
Introduzione al SIMD
-
Principi di multi-threading
-
SIMD e Multi-threading
3: GPU e Programmazione CUDA C
-
Modello di Programmazione CUDA
-
Architetture GPU e Modello di Esecuzione CUDA
-
Gerarchia e Organizzazione della Memoria GPU
-
Ecosistema CUDA: Librerie e Applicazioni
4: Rappresentazione ed elaborazioni con numeri reali
-
Floating point
-
Fixed point
5: Tecnologie Emergenti
-
FPGA (Field Programmable Gate Array)
Testi/Bibliografia
Lucidi e codice disponibili sul sito del corso.
Per approfondimenti:
Cheng, J., Grossman, M., McKercher, T. (2014). Professional CUDA C Programming. Wrox Pr Inc. (1^ edizione)
Kirk, D. B., Hwu, W. W. (2013). Programming Massively Parallel Processors. Morgan Kaufmann (3^ edizione)
Timothy G. Mattson, Yun (Helen) He, Alice E. Koniges, The OpenMP Common Core: Making OpenMP Simple Again, MIT Press, 2019
Jean-Michel Muller , Nicolas Brunie , Florent de Dinechin , Claude-Pierre Jeannerod , Mioara Joldes , Vincent Lefèvre , Guillaume Melquiond , Nathalie Revol , Serge Torre, Handbook of Floating-Point Arithmetic, Springer Birkhäuser 2018
Jean-Michel Muller, Elementary Functions: Algorithms and Implementation, Springer Birkhäuser 2016
Metodi didattici
Verifica delle nozioni presentate durante le lezioni mediante esercitazioni con strumenti di sviluppo software.
Modalità di verifica e valutazione dell'apprendimento
La verifica consiste nello sviluppo automomo di un progetto (gruppi di non più di due studenti) e in domande sui temi del corso.
Strumenti a supporto della didattica
Piattaforme di svilippo software.
Orario di ricevimento
Consulta il sito web di Stefano Mattoccia
Consulta il sito web di Fabio Tosi
SDGs


L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.