année académique
2024-2025

Titulaire(s) du cours

Daniele Bonatto (Coordonnateur)

Crédits ECTS

5

Langue(s) d'enseignement

anglais

Contenu du cours

Parallel programming of image-processing algorithms on GPUs (Graphics Processing Units) using CUDA (Nvidia GPUs) and/or HIP (AMD GPUs) — both C/C++ extensions. The course emphasizes efficient use of GPU memory architecture in embedded systems and/or high-performance computing (HPC). By mastering these techniques, students can not only accelerate their programs by several orders of magnitude, but also gain insight into the principles that drive today’s deep-learning frameworks.


Course content includes:

  • GPU Architecture
  • Parallel Thinking
  • Algorithms


The course introduces many of the most widely used algorithms in parallel processing, with direct relevance to real-world applications that can often be mapped to these patterns. More importantly, students will learn to think in parallel, developing an understanding of how to adapt algorithms to the constraints and opportunities of GPU architectures.

Objectifs (et/ou acquis d'apprentissages spécifiques)

By the end of the course, students will have implemented 2D/3D image-processing algorithms in CUDA, targeting (near) real-time applications.

Pré-requis et Co-requis

Connaissances et compétences pré-requises ou co-requises

  • Intermediate C/C++ programming skills

  • No need for object-oriented programming experience

Méthodes d'enseignement et activités d'apprentissages

The course follows a “learn by example” approach.

Practical sessions will prepare students, working in pairs, to design and implement a multi-threaded 2D/3D image-processing application, documented in a short scientific-style report.

The course is highly interactive, with many in-class examples. At the same time, the slides are designed to be self-contained. Intuition is first built during the lectures and then reinforced through the slides.

Références, bibliographie et lectures recommandées

  • John Cheng, Max Grossman, Ty McKercher, "Professional CUDA C Programming," John Wiley & Sons, 2014.
  • Yifan Sun, Trinayan Baruah, David Kaeli, "Accelerated computing with HIP," Advanced Micro Devices, Inc, December 2022.

Support(s) de cours

  • Université virtuelle

Contribution au profil d'enseignement

Massively parallel programming of 2D/3D imaging algorithms on GPUs for multimedia engineering.

Autres renseignements

Informations complémentaires

Use of AI tools
AI tools may be used as a support for coding and learning. They can help with syntax, debugging, or exploring alternative approaches. However, they are not a substitute for personal understanding. During evaluation, students must be able to explain all parts of their code and show that they fully understand the programming language, the concepts, and the architecture involved.

Contacts

Pr. Daniele Bonatto, LISA-VR, ULB

Campus

Solbosch

Evaluation

Méthode(s) d'évaluation

  • Projet
  • Examen oral

Projet

Examen oral

Assessment is based primarily on an oral exam, where students present a CUDA-accelerated imaging project. A written report and the project’s source code must be submitted around one week before the exam.

During the presentation, complementary theoretical questions may also be asked.

Construction de la note (en ce compris, la pondération des notes partielles)

  • Midterm mini-project (measuring basic GPU performance using the roofline model, with short report) → 20%

  • Final CUDA project + oral exam80%

The mini-project serves as a checkpoint to ensure students are ready for their final CUDA project.

Langue(s) d'évaluation

  • anglais
  • (éventuellement français, Italien )

Programmes