Thèse soutenue

Reconnaissance d'opérations d'algèbre linéaire dans un programme polyédrique

FR  |  
EN
Auteur / Autrice : Guillaume Iooss
Direction : Alain DarteSanjay Rajopadhye
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 01/07/2016
Etablissement(s) : Lyon en cotutelle avec Colorado state university
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-....) - CASH - Compilation and Analysis, Software and Hardware
Jury : Président / Présidente : Jennifer L. Mueller
Examinateurs / Examinatrices : Alain Darte, Sanjay Rajopadhye, Jennifer L. Mueller, Philippe Clauss, Sriram Sankaranarayanan, Christophe Alias, Stéphan Thomassé, Hamidreza Chitsaz
Rapporteurs / Rapporteuses : Philippe Clauss, Sriram Sankaranarayanan

Résumé

FR  |  
EN

Durant ces dernières années, Il est de plus en plus compliqué d'écrire du code qui utilise une architecture au mieux de ses capacités. Certaines opérations clefs ont soit un accélérateur dédié, ou admettent une implémentation finement optimisée qui délivre les meilleurs performances. Ainsi, il est intéressant d'identifier ces opérations pendant la compilation d'un programme, et de faire appel à une implémentation optimisée.Nous nous intéressons dans cette thèse au problème de détection de ces opérations. Nous proposons un procédé qui détecte des sous-calculs correspondant à des opérations d'algèbre linéaire à l'intérieur de programmes polyédriques. L'idée principale de ce procédé est de découper le programme en sous-calculs isolés, et essayer de reconnaître chaque sous-calculs comme une combinaison d'opérateurs d'algèbre linéaire.Le découpage du calcul est effectué en utilisant une transformation de programme appelée tuilage monoparamétrique. Cette transformation partitionne le calcul en tuiles dont la forme est un agrandissement paramétrique d'une tuile de taille constante. Nous montrons que le programme tuilé reste polyédrique tout en permettant une paramétrisation limitée des tailles de tuile. Les travaux précédents sur le tuilage nous forçaient à choisir l'une de ces deux propriétés.Ensuite, afin d'identifier les opérateurs, nous introduisons un algorithme de reconnaissance de template, qui est une extension d'un algorithme d'équivalence de programme. Nous proposons plusieurs extensions afin de tenir compte des propriétés sémantiques communément rencontrées en algèbre linéaire.Enfin, nous combinons les deux contributions précédentes en un procédé qui détecte les sous-calculs correspondant à des opérateurs d'algèbre linéaire. Une de ses composantes est une librairie de template, inspirée de la spécification BLAS. Nous démontrons l'efficacité de notre procédé sur plusieurs applications.