Hardware task context switch on FPGA between heterogeneous reconfigurable devices in a cloud-FPGA environment.
Changement de contexte matériel sur FPGA entre équipements reconfigurables et hétérogènes dans un environnement de calcul distribué.
Résumé
Current informatics greatly rely on hardware accelerators.
Their mission is to accelerate domain-specific computation often too complex for a general purpose
processor.
A certain family of electronic devices, as known as reconfigurables, has been considered for
accelerating computation in some cases: low volume production, need for recurrent updates, flexible
use cases etc.
However, they are still not being used enough compared with the benefits they offer.
In order to facilitate a wider adoption, we propose to give more flexibility when using this kind
of technology.
This thesis presents and studies the capacity of reconfigurable resources to be shared.
In order to do that, one should be able to switch between tasks executing on the resource.
This technique is called context-switch, and has been in the literature for quite some time.
In this work we propose to use a high-level synthesis flow in conjunction with this scheme.
Thanks to the high-level synthesis flow, context-switchable circuit construction is automated.
The produced circuits are portable because generically built.
In addition, we add two steps in the high-level flow in order to give better characteristics to the
final circuits.
One checkpoint selection limits the states where context-switch is allowed.
Moreover, an embedded mechanism is built.
Thanks to these two steps, the produced circuits overheads and performances are better than circuits
with naive mechanisms.
A demonstration platform using FPGAs from different vendors is presented.
It allows to test functionally and qualitatively the produced circuit used within a complex
system.
Les accélérateurs matériels occupent un rôle déterminant dans l'informatique actuelle.
Leur mission est d'assurer des calculs spécifiques trop complexes pour les systèmes génériques basés
sur des processeurs.
Une famille de composants électroniques dits « reconfigurables », sont depuis des années
considérés comme des candidats idéaux pour assurer l'accélération matérielle dans de nombreux cas :
production à faible volume, besoin de mise à jour régulière, besoins d'utilisation flexible etc.
En pratique, ils ne sont pas utilisés à la hauteur des gains qu'ils pourraient apporter.
Afin de faciliter leur adoption on cherche à rendre l'utilisation d'une telle technologie plus
flexible.
Dans cette thèse, on propose donc d'étudier et d'améliorer la capacité des puces reconfigurables à
être partagées.
Pour partager une ressource reconfigurable, il faut prévoir la commutation des tâches s'y déroulant.
Cette technique, la commutation de tâches matérielles sur cible reconfigurable, n'est pas nouvelle
et appartient à l'état de l'art.
On propose dans ces travaux d'utiliser cette technique avantageuse en conjonction avec un flot de
conception actuel dit de synthèse de haut niveau.
Grâce au flot de synthèse de haut niveau, on peut automatiser la génération de circuits commutables
portables car non spécifiques à une architecture de puce reconfigurable.
Deux propositions viennent compléter la méthode.
Celle-ci visent à tirer parti du niveau de manipulation des circuits afin d'améliorer les
performances d'un système utilisant des tâches commutables.
Dans un premier temps, on sélectionne un ensemble de points de sauvegarde lors desquels la
commutation est autorisée.
On additionne ensuite un mécanisme d'extraction à la description matérielle de la tâche.
Grâce à ces deux contributions ainsi que leur utilisation à haut niveau, on parvient à automatiser
la génération de circuits flexibles et ayant un surcout limité compte tenu des caractéristiques
additionnelles obtenues.
Un démonstrateur utilisant plusieurs technologies de FPGA est présenté.
Sa mise en œuvre permet de vérifier la fonctionnalité voulue ainsi que les mesures et
caractérisations in situ.