Compilation efficace d'applications de traitement d'images pour processeurs manycore

Résumé : Nous assistons à une explosion du nombre d’appareils mobiles équipés de capteurs optiques : smartphones, tablettes, drones... préfigurent un Internet des objets imminent. De nouvelles applications de traitement d’images (filtres, compression, réalité augmentée) exploitent ces capteurs mais doivent répondre à des contraintes fortes de vitesse et d’efficacité énergétique. Les architectures modernes — processeurs manycore, GPUs,... — offrent un potentiel de performance, avec cependant une hausse sensible de la complexité de programmation.L’ambition de cette thèse est de vérifier l’adéquation entre le domaine du traitement d’images et ces architectures modernes : concilier programmabilité, portabilité et performance reste encore aujourd’hui un défi. Le domaine du traitement d’images présente un fort parallélisme intrinsèque, qui peut potentiellement être exploité par les différents niveaux de parallélisme offerts par les architectures actuelles. Nous nous focalisons ici sur le domaine du traitement d’images par morphologie mathématique, et validons notre approche avec l’architecture manycore du processeur MPPA de la société Kalray.Nous prouvons d’abord la faisabilité de chaînes de compilation intégrées, composées de compilateurs, bibliothèques et d’environnements d’exécution, qui à partir de langages de haut niveau tirent parti de différents accélérateurs matériels. Nous nous concentrons plus particulièrement sur les processeurs manycore, suivant les différents modèles de programmation : OpenMP ; langage flot de données ; OpenCL ; passage de messages. Trois chaînes de compilation sur quatre ont été réalisées, et sont accessibles à des applications écrites dans des langages spécifiques au domaine du traitement d’images intégrés à Python ou C. Elles améliorent grandement la portabilité de ces applications, désormais exécutables sur un plus large panel d’architectures cibles.Ces chaînes de compilation nous ont ensuite permis de réaliser des expériences comparatives sur un jeu de sept applications de traitement d’images. Nous montrons que le processeur MPPA est en moyenne plus efficace énergétiquement qu’un ensemble d’accélérateurs matériels concurrents, et ceci particulièrement avec le modèle de programmation flot de données. Nous montrons que la compilation d’un langage spécifique intégré à Python vers un langage spécifique intégré à C permet d’augmenter la portabilité et d’améliorer les performances des applications écrites en Python.Nos chaînes de compilation forment enfin un environnement logiciel complet dédié au développement d’applications de traitement d’images par morphologie mathématique, capable de cibler efficacement différentes architectures matérielles, dont le processeur MPPA, et proposant des interfaces dans des langages de haut niveau.
Type de document :
Thèse
Ordinateur et société [cs.CY]. PSL Research University, 2016. Français. 〈NNT : 2016PSLEM022〉
Liste complète des métadonnées

Littérature citée [92 références]  Voir  Masquer  Télécharger

https://pastel.archives-ouvertes.fr/tel-01531196
Contributeur : Abes Star <>
Soumis le : jeudi 1 juin 2017 - 12:26:09
Dernière modification le : mardi 27 mars 2018 - 16:06:21
Document(s) archivé(s) le : mercredi 6 septembre 2017 - 18:35:26

Fichier

2016PSLEM022_archivage.pdf
Version validée par le jury (STAR)

Identifiants

  • HAL Id : tel-01531196, version 1

Collections

Citation

Pierre Guillou. Compilation efficace d'applications de traitement d'images pour processeurs manycore. Ordinateur et société [cs.CY]. PSL Research University, 2016. Français. 〈NNT : 2016PSLEM022〉. 〈tel-01531196〉

Partager

Métriques

Consultations de la notice

1330

Téléchargements de fichiers

807