Extension des Techniques Polyedriques vers les Specifications Parallelles et les Approximations
Auteur / Autrice : | Alexandre Isoard |
Direction : | Alain Darte |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 05/07/2016 |
Etablissement(s) : | Lyon |
Ecole(s) doctorale(s) : | École doctorale InfoMaths (Lyon ; 2009-....) |
Partenaire(s) de recherche : | établissement opérateur d'inscription : École normale supérieure de Lyon (2010-...) |
Laboratoire : Laboratoire de l'informatique du parallélisme (Lyon ; 1988-....) - Compilation and embedded computing systems | |
Jury : | Président / Présidente : François Irigoin |
Examinateurs / Examinatrices : Alain Darte, François Irigoin, Albert Henri Cohen, J. Ram Ramanujam, Uday Reddy Bondhugula, Samuel Bayliss | |
Rapporteur / Rapporteuse : Albert Henri Cohen, J. Ram Ramanujam |
Mots clés
Mots clés contrôlés
Résumé
Les techniques polyédriques permettent d’appliquer des analyses et transformations de code sur des structures multidimensionnelles telles que boucles imbriquées et tableaux. Elles sont en général restreintes aux programmes séquentiels dont le contrôle est affine et statique. Cette thèse consiste à les étendre à des programmes comportant par exemple des tests non analysables ou exprimant du parallélisme. Le premier résultat est l'extension de l’analyse de durée de vie et conflits mémoire, pour les scalaires et les tableaux, à des programmes à spécification parallèle ou approximée. Dans les travaux précédents sur l’allocation mémoire pour laquelle cette analyse est nécessaire, la notion de temps ordonne totalement les instructions entre elles et l’existence de cet ordre est implicite et nécessaire. Nous avons montré qu'il est possible de mener à bien de telles analyses sur un ordre partiel quelconque qui correspondra au parallélisme du programme étudié. Le deuxième résultat est d'étendre les techniques de repliement mémoire, basées sur les réseaux euclidiens, de manière à trouver automatiquement une base adéquate à partir de l'ensemble des conflits mémoire. Cet ensemble est fréquemment non convexe, cas qui était traité de façon insuffisante par les méthodes précédentes. Le dernier résultat applique les deux analyses précédentes au calcul par blocs ''pipelinés'' et notamment au cas de blocs de taille paramétrique. Cette situation donne lieu à du contrôle non-affine mais peut être traité de manière précise par le choix d’approximations adaptées. Ceci ouvre la voie au transfert efficace de noyaux de calculs vers des accélérateurs tels que GPU, FPGA ou autre circuit spécialisé.