Leveraging Hardware Construction Languages for Flexible Design Space Exploration on FPGA
Utilisation de langages de construction matérielle pour une exploration flexible des espaces de conception sur FPGA
Résumé
In a world where required computational capacitities grow exponentially, FPGA based hardware accelerators are imposing themselves as energy efficient alternatives to general purpose CPU. However, while software development methodologies can rely from new paradigms and techniques toimprove productivity, designing a digital circuit remains a daunting task where both expertise and time are primordial.In order to increase hardware developers productivity, we explore the possibility of using a novel design paradigm called Hardware Construction Languages, which enables building parameterized design generators — increasing both code reusability and parametrization — and exploiting high level features such as object-oriented or functional programming.The first contribution of this project aims at easing accelerator comparison by exposing different estimation metrics and methodologies, in order to provide designers and tools with interesting feedbacks.We then consider leveraging this new paradigm to generate and compare accelerators — introducing two complementary methodologies: meta design and meta exploration. Meta design is based on prior analysis of a given algorithm to provide a parameterized design generator, where every generateddesign belongs to a design space to be explored. Meta exploration is then used to leverage user expertise on both application domain and target board for efficient exploration of so defined design space.We choose Chisel as an HCL candidate, and introduce QECE — Quick Exploration using Chisel Estimators — as a demonstrator for both contributions — as Chisel is built on top of Scala, we hence bring high level features from software development to the hardware world. We finally leverage theintroduced methodologies by developing various representative FPGA applicative kernels, and expose various scenarii of estimation and exploration.This thesis is an initiative to enhance hardware developers expressivity, providing them with powerful features such as functional programming and object-oriented development.
Dans un monde où le besoin de ressources de calcul croit exponentiellement, les accélérateurs matériels à base de FPGA s’imposent comme alternatives à haute efficacité énergétique aux processeurs généralistes. Cependant, alors que les méthodes de développement logiciel profitent de nouveaux paradigmes pour améliorer la productivité, la conception de circuits numériques demeurent une tâche compliquée où le temps et l’expertise restent cruciaux.Afin d’améliorer la productivité des développeurs matériel, nous explorons la possibilité d’utiliser un nouveau paradigme basé sur les langages de construction matérielle, qui permettent de construire des générateurs paramétriques de circuits, améliorant à la fois la réutilisabilité et la paramétrisation, et d’utiliser des fonctionnalités de haut niveau telles que la programmation orientée objet ou encore laprogrammation fonctionnelle.La première contribution de ce projet vise à faciliter la comparaison d’accélérateurs en exposant différentes métriques et méthodologies d’estimation de circuits, afin de fournir aux développeurs et aux outils des retours constructifs sur le processus de développement.Nous nous intéressons ensuite à l’exploitation de ce nouveau paradigme pour la génération et la comparaison d’architectures, et introduisons deux méthodologies complémentaires: la méta conception et la méta exploration. La méta conception est basée sur une analyse préalable de l’algorithme cible afin de concevoir un générateur paramétrique de circuits, où chaque implémentation générée s’intègredans un espace de conception à explorer. La méta exploration est ensuite utilisée afin de mettre à profit l’expertise de l’utilisateur à propos du domaine applicatif et du matériel cible, permettant une exploration efficace de l’espace ainsi généré.Parmis les langages de construction matérielle disponibles, nous choisissons Chisel afin de concevoir QECE — Quick Exploration using Chisel Estimators — comme démonstrateur pour les deux contributions. Comme Chisel est basé sur Scala, nous amenons ce faisant des fonctionnalités de haut niveau du développement logiciel au monde du matériel. Finalement, nous démontronsl’utilisabilité des méthodologies présentées en développant un ensemble de noyaux applicatifs représentatifs de l’utilisation des FPGA, et en mettant en avant différents scénarios d’estimation et d’exploitation.Cette thèse est une initiative pour améliorer l’expressivité des développeurs matériels, en leur fournissant des fonctionnalités à fort potentiel telles que la programmation fonctionnelle ou le développement orienté objet.
Origine | Version validée par le jury (STAR) |
---|