SYLVESTRE Loic
Équipe : APR
Date d'arrivée : 01/10/2021
- Sorbonne Université - LIP6
Boîte courrier 169
Couloir 25-26, Étage 3, Bureau 331
4 place Jussieu
75252 PARIS CEDEX 05
Tel: 01 44 27 88 04, Loic.Sylvestre (at) nulllip6.fr
https://perso.lip6.fr/Loic.Sylvestre
Direction de recherche : Emmanuel CHAILLOUX
Co-encadrement : SEROT Jocelyn (CNRS/UCA/SIGMA)
Programmation sûre expressive et efficace de circuits reprogrammables de type FPGA
Largement utilisées depuis un vingtaine d’années par la communauté des concepteurs de circuits numériques, les circuits reconfigurables de type FPGA (Field Programmable Gate Array) font l’objet d’un intérêt croissant de la part des programmeurs au sens large, en particulier pour les applications embarquées à performance ou sûreté critique. En permettant de « tailler sur mesure » le matériel aux besoins du logiciel, ce type de circuit offre en effet un moyen inédit de contourner les limitations des processeurs classiques. Dans l’état de l’art, la programmation efficace de ce type de circuit passe toutefois par l’usage de langages dédiés à la description de matériel (Hardware Description Languages) comme VHDL ou Verilog. Ces langages, s’ils permettent un contrôle fin et une exploitation optimale des ressources matérielles disponibles sont néanmoins caractérisés par un faible niveau d’abstraction, ce qui rend leur usage délicat par un public non familier des réalisations matérielles. Pour répondre à ces difficultés, on propose une approche hybride. L’idée consiste d’une part à faire exécuter le programme principal, écrit dans un langage hôte de haut niveau (fonctionnel, impératif, …), par une machine virtuelle implémentée sur un processeur « softcore » – ce qui donne accès à toute la puissance expressive du langage hôte – et d’autre part à n’effectuer la traduction au niveau RT (Register Transfer) – traduction que l’on qualifiera ici d’ « inlining » matériel – que pour un certain nombre de fonctions spécifiques, dûment identifiées. L’identification de ces fonctions, dans ce cadre, est du ressort du programmeur, compte-tenu de son domaine d’application et des objectifs poursuivis. Celui-ci pourra ainsi choisir d’« inliner » certaines fonctions parce que leur exécution via la machine virtuelle sur le processeur « softcore » est trop lente – ce qui correspond à utiliser le matériel environnant comme un accélérateur matériel configurable dynamiquement – ou parce que, dans un contexte embarqué critique par exemple, il veut garantir certaines propriétés liées à l’exécution de ces fonctions (sûreté, vivacité, temps d’exécution borné, ...). La formulation des fonctions à « inliner » se fera non pas directement dans le langage hôte mais via un langage dédié (DSL). Ce DSL sera, par construction, susceptible d’une traduction efficace et certifiable en une description au niveau RT (on entend par là que l’on peut prouver que ladite description produit un circuit dont le comportement est identique à celui déduit de la sémantique formelle du DSL). Il sera, par ailleurs, exécutable directement par le langage hôte (soit par interprétation soit par traduction directe dans ce langage). Enfin, il doit permettre d’exprimer les propriétés que l’on désire associer aux fonctions définies. La définition, et l’implémentation, de ce DSL constitue un point clé puisqu’il conditionne in fine d’une part la faisabilité de la traduction RTL et l’efficacité du code produit et d’autre part la nature des propriétés vérifiables associées aux fonctions ainsi décrites
Publications 2020-2024
-
2024
- L. Sylvestre, J. Sérot, E. Chailloux : “Hardware Implementation of OCaml Using a Synchronous Functional Language”, Practical Aspects of Declarative Languages, vol. 14512, Lecture Notes in Computer Science, Londres, United Kingdom, pp. 151-168, (Springer Nature Switzerland), (ISBN: 978-3-031-52037-2) (2024)
-
2023
- L. Sylvestre, E. Chailloux, J. Sérot : “Work-in-Progress: mixing computation and interaction on FPGA”, International Conference on Embedded Software (EMSOFT 2023), Hambourg, Germany (2023)
- L. Sylvestre, E. Chailloux, J. Sérot : “Accelerating OCaml Programs on FPGA”, International Journal of Parallel Programming, vol. 51 (Special Issue on High-Level Parallel Programming and Applications (HLPP 2022)), pp. 186–207, (Springer Verlag) (2023)
-
2022
- L. Sylvestre, E. Chailloux, J. Sérot : “Accelerating OCaml programs on FPGA”, 15th International Symposium on High-level Parallel Programming and Applications (HLPP 2022), Porto, Portugal (2022)
- L. Sylvestre, J. Sérot, E. Chailloux : “A Virtual Machine Approach for High-level FPGA Programming”, 2022 IEEE 30th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), New York City, United States, (IEEE) (2022)
- L. Sylvestre, J. Sérot, E. Chailloux : “Macle : un langage dédié à l’accélération de programmes OCaml sur circuits FPGA”, Journées Francophones des Langages Applicatifs, Saint-Médard-d'Excideuil, France, pp. 93-109 (2022)
-
2020
- L. Sylvestre, E. Chailloux : “Expérimentations pédagogiques en Learn-OCaml”, 31e Journées Francophones des Langages Applicatifs, Gruissan, France (2020)