Ce tutoriel vise à présenter comment exploiter, de manière efficace, les architectures parallèles (GPU) et hétérogènes (Multi-CPU/Multi-GPU) dans le but d’améliorer les performances des méthodes de traitement d’objets multimédias, telles que celles utilisées dans des algorithmes de traitement d’images et de vidéos de haute définition, des applications médicales ainsi que l’analyse et le suivi de mouvements en temps réel. L’intérêt pour l’accélération de ces méthodes est dû principalement à l’augmentation de l’intensité de calcul de ce type d’applications, et à la forte croissance de la taille des objets multimédias (HD/Full HD) ces dernières années.
Nous proposons un schéma de développement conçu pour le traitement d’objets multimédias (image unique, images multiples, vidéos multiples, vidéo en temps réel) basé sur l’exploitation de l’intégralité de la puissance de calcul des machines hétérogènes. Ce schéma permet de choisir les ressources à utiliser (CPU ou/et GPU) ainsi que les méthodes à appliquer selon la nature des médias à traiter et la complexité des algorithmes. Le modèle proposé s’appuie sur des stratégies d’ordonnancement efficaces assurant une exploitation optimale des ressources hybrides. Il permet également de réduire les temps de transfert de données grâce à une gestion efficace des mémoires GPU ainsi qu’au recouvrement des copies de données par les fonctions d’exécution sur les GPU multiples. Ce modèle est utilisé pour la mise en œuvre de plusieurs algorithmes tels que l’extraction efficace de contours, la détection de points d’intérêt, la soustraction d’arrière-plan (background), la détection des silhouettes et le calcul des vecteurs du flot optique permettant l’estimation du mouvement. Ces mises en œuvre ont été exploitées pour accélérer différentes applications telles la segmentation des vertèbres dans des images médicales, l’indexation de séquences vidéo et le suivi de mouvements en temps réel à partir d’une caméra mobile.
Des résultats expérimentaux ont été obtenus par l’application du modèle proposé sur différents types de médias (images et vidéos HD/Full HD, bases d’images médicales). Ces résultats montrent des accélérations globales allant d’un facteur de 5 à 100 par rapport à une implémentation séquentielle sur CPU.
Intervenants
- Sidi Ahmed Mahmoudi, Université de Mons. Umons. Belgique, sidi.mahmoudi@umons.ac.be, http://www.ig.fpms.ac.be/users/mahmoudisi
Programme
Ce tutoriel sera présenté en cinq parties principales:
- Présentation des GPU
- Programmation des GPU
- Exploitation des architectures hétérogènes
- Application au traitement d'objets multimédias
- Traitement d'images sur architectures Multi-CPU/Multi-GPU
- Traitement Multi-GPU de vidéos HD/Full HD en temps réel
- Traitement d'images sur architectures Multi-CPU/Multi-GPU
- Résultats Expérimentaux
Démonstration
A la fin de ce tutoriel, une démonstration des résultats sera présentée sous forme de séquences vidéo montrant des traitements de vidéos HD/Full HD en temps réel.