-
Partager cette page
GPU computing
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 exam → 80%
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 )