Les premiers GPU programmables avec un langage de programmation de haut niveau sont apparus en 2007. Cela a permis d’exploiter ces processeurs, initialement dédiés aux tâches de rendu graphique et disposant donc d’un grand nombre d’unités de calcul vectoriel, pour réaliser du calcul généraliste. Ils permettent d’implanter plus efficacement qu’un CPU, coût/consommation énergétique par FLOPS plus faible, des algorithmes présentant un fort parallélisme de données. Les GPU constituent donc une cible de prédilection pour l’implantation de nombreux algorithmes de traitement du signal et de l’image.
Toutefois, pour tirer meilleur parti de ces architectures, le programmeur doit mettre le parallélisme de l’algorithme en exergue et également prendre en compte les caractéristiques du GPU ciblé. Cela implique une réflexion sur le placement des données en mémoire, les séquences d’accès à celles-ci ainsi que de régler différents paramètres architecturaux, e.g. taille des blocs, de la grille de blocs… Une expertise certaine est requise pour profiter au mieux des performances offertes par les GPU. Aussi des travaux de recherche visant à simplifier l’utilisation des GPU, autotuning, programation générique, la parallélisation automatique, animent la communauté scientifique.
Aujourd’hui, l’utilisation des processeurs graphiques programmables s’étend au monde de l’embarqué, e.g. processeur NVIDIA Tegra X1 et d’autres architectures massivement parallèles, e.g. Intel Xeon PHI, les FPGA avec l’introduction du modèle de programmation OpenCL dans les flots matériels, viennent concurrencer les GPU. Plus généralement, le développement et l’utilisation d’architectures massivement parallèles ne fait que s’amplifier : dans un monde où les performances des processeurs séquentiels n’évoluent plus, seule la multiplication du nombre de cœurs permet de gagner en puissance de calcul. La problématique du parallélisme est donc aujourd’hui incontournable.
Objectifs de l'école thématique
Former à la programmation de GPUs et plus particulièrement aux dernières évolutions de ces architectures et des environnements de développement associés,
être un lieu d'échange sur les problématiques de recherche liées à l'utilisation des GPU pour le traitement du signal et de l'image, avec une ouverture vers les architectures parallèles concurrentes.
Mots clefs
GPU, Traitement d'image, Parallélisme, Architecture
>> Programme et inscription
