Course teacher(s)
Daniele Bonatto (Coordinator) and Jan LEMEIREECTS credits
5
Language(s) of instruction
english
Course content
Parallel programming of image processing algorithms on GPU (Graphics Processing Unit) using the CUDA (Nvidia GPUs) and/or HIP (AMD GPUs) languages that are multi-threaded extensions of C/C++, and smartly exploiting the GPU’s memory architecture in an embedded and/or High-Performance Computing (HPC) system.
Objectives (and/or specific learning outcomes)
By the end of the course, the student will have implemented 2D image processing algorithms in CUDA, targeting (near) real-time applications.
Prerequisites and Corequisites
Required and Corequired knowledge and skills
C/C++ programming skills (medium level; no need to master Object-Oriented concepts).
Teaching methods and learning activities
The course follows a “learn by example” approach.
The exercises will prepare the students (in groups of 2) to the parallel implementation of a 2D image processing algorithm described in a scientific report.
Contribution to the teaching profile
Massive multi-threads programming of a 2D imaging algorithm on a Graphical Processing Unit (GPU) for the multimedia engineer.
References, bibliography, and recommended reading
- 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.
Course notes
- Université virtuelle
Other information
Contacts
Prof. Gauthier Lafruit, LISA-VR, ULB
Prof. Jan Lemeire, ETRO, VUB
Campus
Solbosch
Evaluation
Method(s) of evaluation
- Project
- Oral presentation
Project
Oral presentation
The evaluation is mainly based on an oral exam, presenting an imaging project with CUDA acceleration (report and source code to be submitted, one week prior to the exam). Complementary questions on the theory might also be punctually asked during the CUDA project presentation.
Mark calculation method (including weighting of intermediary marks)
A mini-project (typically measuring basic GPU performance figures in the roofline model) with written report has to be delivered mid-term, enabling us to check whether the students are ready for their final CUDA project. It counts for 20% of the marks; the remaining 80% come from the oral exam itself.
Language(s) of evaluation
- english
- (if applicable french, Dutch )