Méthodologie de placement d'algorithmes de traitement d'images sur architecture massivement parallèle
Auteur / Autrice : | Florian Gouin |
Direction : | François Irigoin, Corinne Ancourt |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique temps réel, robotique et automatique - Fontainebleau |
Date : | Soutenance le 05/07/2019 |
Etablissement(s) : | Paris Sciences et Lettres (ComUE) |
Ecole(s) doctorale(s) : | Ecole doctorale Ingénierie des Systèmes, Matériaux, Mécanique, Énergétique (Paris) |
Partenaire(s) de recherche : | Laboratoire : Centre de recherche en informatique (Fontainebleau, Seine et Marne) |
établissement de préparation de la thèse : École nationale supérieure des mines (Paris ; 1783-....) | |
Jury : | Président / Présidente : Frédéric Magoulès |
Examinateurs / Examinatrices : François Irigoin, Corinne Ancourt, Lionel Lacassagne, David Defour, Christophe Guettier | |
Rapporteurs / Rapporteuses : Lionel Lacassagne, David Defour |
Mots clés
Résumé
Dans le secteur industriel, la course à l’amélioration des définitions des capteurs vidéos se répercute directement dans le domaine du traitement d’images par une augmentation des quantités de données à traiter. Dans le cadre de l’embarqué, les mêmes algorithmes ont fréquemment pour contrainte supplémentaire de devoir supporter le temps réel. L’enjeu est alors de trouver une solution présentant une consommation énergétique modérée, une puissance calculatoire soutenue et une bande passante élevée pour l’acheminement des données.Le GPU est une architecture adaptée pour ce genre de tâches notamment grâce à sa conception basée sur le parallélisme massif. Cependant, le fait qu’un accélérateur tel que le GPU prenne place dans une architecture globale hétérogène, ou encore ait de multiples niveaux hiérarchiques, complexifient sa mise en œuvre. Ainsi, les transformations de code visant à placer un algorithme sur GPU tout en optimisant l’exploitation des capacités de ce dernier, ne sont pas des opérations triviales. Dans le cadre de cette thèse, nous avons développé une méthodologie permettant de porter des algorithmes sur GPU. Cette méthodologie est guidée par un ensemble de critères de transformations de programme. Certains d’entre-eux sont définis afin d’assurer la légalité du portage, tandis que d’autres sont utilisés pour améliorer les temps d’exécution sur cette architecture. En complément, nous avons étudié les performances des différentes mémoires ainsi que la gestion du parallélisme gros grain sur les architectures GPU Nvidia.Ces travaux sont une étape préalable à l’ajout de nouveaux critères dans notre méthodologie, visant à maximiser l’exploitation des capacités de ces GPUs. Les résultats expérimentaux obtenus montrent non seulement la fiabilité du placement mais aussi une accélération des temps d’exécution sur plusieurs applications industrielles de traitement d’images écrites en langage C ou C++.