Reconnaissance d'opérations d'algèbre linéaire dans un programme polyédrique
Auteur / Autrice : | Guillaume Iooss |
Direction : | Alain Darte, Sanjay 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 |
Mots clés
Résumé
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.