Validation de traduction pour compilateurs de tenseurs
Auteur / Autrice : | Basile Clément |
Direction : | Xavier Leroy, Albert Henri Cohen |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 09/09/2022 |
Etablissement(s) : | Université Paris sciences et lettres |
Ecole(s) doctorale(s) : | École doctorale Sciences mathématiques de Paris centre (Paris ; 2000-....) |
Partenaire(s) de recherche : | Laboratoire : École normale supérieure (Paris ; 1985-....). Département d'informatique |
Établissement de préparation de la thèse : École normale supérieure (Paris ; 1985-....) | |
Jury : | Président / Présidente : Xavier Rival |
Examinateurs / Examinatrices : Xavier Leroy, Albert Henri Cohen, Xavier Rival, Christophe Alias, Sandrine Blazy, Corinne Ancourt, Jonathan Ragan-Kelley | |
Rapporteur / Rapporteuse : George C. Necula, Christophe Alias |
Mots clés
Mots clés contrôlés
Résumé
Les compilateurs de tenseurs sont utilisés dans des domaines comme le traitement d'image et l'apprentissage profond pour générer du code bas niveau efficace à partir de spécification de haut niveau sur des tenseurs multi-dimensionnels. Le code généré peut présenter une structure drastiquement différente de celle de la spécification suite à l'application de transformations de boucles et de simplifications algébriques. La vérification formelle des compilateurs de tenseurs est donc une tâche ardue, qui ne peut être traitée par les techniques standard à base de bisimulations. Je propose une nouvelle méthode pour la vérification de compilateurs de tenseurs en présence de transformations algébriques et de boucles. Cette méthode s'inspire des techniques polyédriques de représentation de programmes, et s'appuie sur une association de raffinement depuis les affectations dans le code bas niveau vers les définitions de tenseurs dans la spécification fournie par le compilateur. Chaque exécution du compilateur est vérifiée par un outil de vérification indépendant implanté en OCaml, faisant donc de la méthode un validateur de traduction. Cet outil de vérification est testé sur Halide, un compilateur de tenseurs de niveau industriel.