Thèse soutenue

Extension des Techniques Polyedriques vers les Specifications Parallelles et les Approximations

FR  |  
EN
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 en Informatique et Mathématiques de Lyon
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
Rapporteurs / Rapporteuses : Albert Henri Cohen, J. Ram Ramanujam

Résumé

FR  |  
EN

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é.