B8563 - SISTEMI DI ELABORAZIONE ACCELERATA M

Academic Year 2025/2026

  • Moduli: Stefano Mattoccia (Modulo 1) Fabio Tosi (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Computer Engineering (cod. 6719)

Learning outcomes

At the end of the course, the student acquires advanced skills in the field of accelerated computing and modern systems for high-performance computing (HPC). In particular, he/she develops an in-depth knowledge of the available acceleration technologies, from SIMD extensions to modern GPU architectures and emerging frameworks for heterogeneous computing, developing the ability to optimize computational problems through the appropriate choice of algorithmic patterns, numerical formats and computation decomposition strategies. The student masters the programming tools for acceleration on CPUs and through CUDA for GPUs, acquiring an advanced understanding of execution models and optimization techniques specific to each platform. These skills allow to develop computationally efficient solutions in cutting-edge fields such as artificial intelligence, big data processing and high-performance scientific computing.

Course contents

Architectures and programming models for high-performance computing with a focus on computer vision and artifical intelligence.

1: Introduction to high-performance computing

  • Parallel computing principles

  • Architectures for high-performance computing: CPU multi-core, GPU, sistemi embedded

2: SIMD and Multi-threading (Module 1)

  • Introduction to SIMD

  • Multi-threading principles

3: GPU and CUDA C Programming (Module 2)

  • CUDA Programming Model

  • GPU Architectures and CUDA Execution Model

  • GPU Memory Hierarchy and Organization

  • CUDA Ecosystem: Libraries and Applications

4: Dealing with real numbers: encoding and computations (Module 1)

  • Floating point

  • Fixed point

5: Emerging technologies (Module 1)

  • FPGA (Field Programmable Gate Array)

Readings/Bibliography

Slides and source code availablein Virtuale.

For further details:

Cheng, J., Grossman, M., McKercher, T. (2014). Professional CUDA C Programming. Wrox Pr Inc. (1st edition)

Kirk, D. B., Hwu, W. W. (2013). Programming Massively Parallel Processors. Morgan Kaufmann (3rd edition)

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


Teaching methods

Each ntroduced topic will be followed by hand-on senssions with software frameworks.


Assessment methods

The assessment method consists in questions concerning topics presented in the course and in the evaluation of a project developed by studends (max 2 for each team).

Teaching tools

Software development frameworks.

Office hours

See the website of Stefano Mattoccia

See the website of Fabio Tosi