année académique
2024-2025

Titulaire(s) du cours

Daniele Bonatto (Coordonnateur) et Jan LEMEIRE

Crédits ECTS

5

Langue(s) d'enseignement

anglais

Contenu du cours

La programmation parallèle d'algorithmes de traitement d'images sur GPU (Graphics Processing Unit) utilisant les langages de programmation CUDA (GPU Nvidia) et/ou HIP (GPU AMD), extensions du C/C++, et exploitant intelligemment l'architecture mémoire du GPU dans un système embarqué et/ou de calcul haute performance (HPC).

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

A la fin du cours, l’étudiant.e aura implémenté des algorithmes de traitement d’images 2D en CUDA, visant des applications en (presque) temps réel. 

Pré-requis et Co-requis

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

Compétences en programmation C/C++ (niveau intermédiaire; pas besoin de maîtriser les concepts orientés objet).

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

Le cours suit une approche « apprendre par l’exemple ».

Les travaux pratiques permettront aux étudiant.e.s de se préparer (en groupes de 2) à l’implémentation multi-tâches d’un traitement d’images 2D, décrit dans un rapport scientifique.

Contribution au profil d'enseignement

Programmation multi-tâches massive d'un algorithme d'imagerie 2D sur une unité de traitement graphique (GPU) pour l'ingénieur multimédia.

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

Autres renseignements

Contacts

Pr. Gauthier Lafruit, LISA-VR, ULB
Pr. Jan Lemeire, ETRO, VUB

Campus

Solbosch

Evaluation

Méthode(s) d'évaluation

  • Projet
  • Examen oral

Projet

Examen oral

L'évaluation repose principalement sur un examen oral, présentant un projet d'imagerie avec accélération CUDA (rapport et code source à rendre une semaine avant l'examen). Des questions complémentaires sur la théorie pourront également être posées ponctuellement lors de la présentation du projet CUDA.

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

Un mini-projet (mesure des performances GPU de base dans le modèle « roofline ») accompagné d'un rapport écrit doit être remis à mi-parcours, ce qui nous permet de vérifier si les étudiant.e.s sont prêt.e.s pour leur projet CUDA final. Il compte pour 20 % des notes ; les 80 % restants proviennent de l'examen oral lui-même.

Langue(s) d'évaluation

  • anglais
  • (éventuellement français, Néerlandais )

Programmes