72943 - SISTEMI DIGITALI M

Anno Accademico 2024/2025

  • 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)

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

Istruzione di qualità Imprese innovazione e infrastrutture

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