SYLVESTRE Loic
Équipe : APR
- 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 FPGA
Les FPGA (Field-Programmable Gate Arrays) sont des circuits numériques reconfigurables : leur comportement est personnalisable par synthèse logique de spécifications au niveau transfert de registres (niveau RT), dans des langages de description de matériel comme VHDL ou Verilog.
Les FPGA sont bien adaptés pour réaliser des systèmes réactifs, directement sous forme de circuits synchrones interagissant avec l’environnement extérieur via des broches d’entrées/sorties – le synthétiseur logique garantissant que les contraintes temporelles du système sont respectées compte tenu de la fréquence d’horloge du FPGA cible.
Les FPGA sont par ailleurs utilisés pour implanter des accélérateurs matériels. Cependant, les descriptions au niveau RT de systèmes transformationnels (ou "calculs")
- ayant des latences de plusieurs cycles d’horloge
- sont difficiles à mettre au point, maintenir et optimiser manuellement. La synthèse haut niveau (High-Level Synthesis, HLS) constitue alors une solution pour exprimer plus simplement les calculs, dans un langage de programmation compilé au niveau RT.
À l’heure où les systèmes embarqués, notamment à base de FPGA, doivent exécuter toujours plus de calculs, tout en interagissant avec leur environnement, cette thèse propose un modèle de programmation pour combiner description de matériel (orientée flot de données) et calcul parallèle généraliste (orienté flot de contrôle) suivant une approche synchrone. Cela donne lieu à la conception et l’implantation d’Eclat, un langage de programmation fonctionnel-impératif, parallèle et synchrone, compilé en VHDL. Eclat est suffisamment précis pour décrire des circuits synchrones au niveau RT. Il permet de programmer simplement des accélérateurs matériels, avec une sémantique temporelle claire et prédictible par laquelle exploiter des compromis temps-espace. Tout programme Eclat est réactif, avec un mécanisme pour plonger les calculs dans les programmes et ainsi mélanger calcul et interaction. Eclat offre aussi de la mémoire partagée (réalisée sous forme de blocs RAM), conciliant concurrence et déterminisme. Il sert à développer des abstractions de programmation telles que des squelettes algorithmiques et des implantations de machines virtuelles pour des langages de haut niveau. Cela répond, à différents niveaux, au besoin d’intégrer des algorithmes généralistes à l’intérieur des applications embarquées réactives à base de FPGA.
Soutenance : 25/11/2024 - 14h - Campus Pierre et Marie Curie, Salle de réunion de l'UFR d'Ingénierie (55-65/211)
Membres du jury :
Marco Danelutto, Professeur, Università di Pisa [rapporteur]
Alan Schmitt, Directeur de Recherche, Inria Rennes [rapporteur]
Carlos Agon, Professeur, Sorbonne Université,
Emmanuel Chailloux, Professeur, Sorbonne Université
Jean-Louis Colaço, Ingénieur distingué, ANSYS
Mickaël Dardaillon, Maître de conférences, INSA Rennes
Laure Gonnord, Professeure, Grenoble INP
Jocelyn Sérot, Professeur, Univ. Clermont Auvergne
Publications 2020-2024
-
2024
- L. Sylvestre, J. Sérot, E. Chailloux : “Programming parallelism on FPGAs with Eclat”, Proceedings of 17th International Symposia on High-Level Parallel Programming and Applications HLPP 2024, Proceedings of 17th INTERNATIONAL SYMPOSIUM ON HIGH-LEVEL PARALLEL PROGRAMMING AND APPLICATIONS HLPP 2024, Pisa, Italy, pp. pp.69-88 (2024)
- L. Sylvestre, E. Chailloux, J. Sérot : “Work-in-Progress: mixing computation and interaction on FPGA”, Proceedings of the International Conference on Embedded Software, Hambourg, Germany, pp. pp.5-6, (ACM), (ISBN: 9798400702914) (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 : “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)