Titre: Changement de contexte matériel sur FPGA entre équipements reconfigurables et hétérogènes dans un environnement de calcul distribué
Auteurs: Alban Bourge
Ecole/Université: Université Grenoble Alpes
Résumé: 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 oeuvre permet de vérifier la fonctionnalité voulue ainsi que les mesures et caractérisations in situ.
Extrait du sommaire:
Table des figures 5
Liste des tableaux 7
1 Introduction 9
2 Motivations et problématiques 13
2.1 Accélération matérielle 14
2.1.1 Définition, intérêt et nature 14
2.1.2 Les FPGA et l’accélération matérielle 14
2.2 Gestion d’un système 17
2.2.1 Le partage des ressources d’un système 17
2.2.2 Changement de contexte 18
2.3 Changement de contexte sur FPGA 19
2.3.1 Adaptation du changement de contexte aux FPGA 19
2.3.2 Applications d’un mécanisme de changement de contexte sur
FPGA 20
2.3.3 Hétérogénéité des FPGA 20
2.4 Synthèse de la problématique 21
3 État de l’art 23
3.1 Définitions 24
3.2 Partage de ressources reconfigurables hors
FPGA 25
3.2.1 Puces « multi-contexte » 26
3.2.2 Architectures « gros-grain » 26
3.2.3 Solutions tierces 27
3.3 Partage des FPGA 28
3.3.1 Méthode de relecture 28
3.3.2 Méthodes embarquées 29
3.3.3 Autres solutions 31
3.3.4 Plateformes existantes 32
3.4 Synthèse et choix d’une technique 32
4 Méthode 35
4.1 Flot de conception d’un circuit sur cible reconf. 36
4.1.1 Flot de conception « classique » 36
4.1.2 Flot de conception HLS 36
4.1.3 Flot de conception modifié 37
4.2 Impact de l’utilisation de la HLS 39
4.2.1 Représentation intermédiaire 39
4.2.2 Automatisation 39
4.2.3 Indépendance des circuits produits 39
4.2.4 Circuits générés 40
4.3 Contraintes et objectifs d’optimisation 40
4.3.1 Contraintes 40
4.3.2 Objectifs d’optimisation 41
5 Sélection des points de sauvegarde 43
5.1 Présentation générale 44
5.1.1 Représentation d’une tâche matérielle 44
5.1.2 Travaux connexes 44
5.1.3 Définition d’un point de sauvegarde 45
5.1.4 Application à la problématique 46
5.2 Formalisation mathématique 47
5.3 Résolution du problème 49
5.3.1 Analyse du circuit 49
5.3.2 Heuristique gloutonne 52
6 Mécanisme d’extraction de contexte 55
6.1 Contexte d’une tâche matérielle 56
6.1.1 Composition du contexte 56
6.1.2 Retour sur la sélection des points de sauvegarde 57
6.2 Équipement d’un circuit pour sa commutation 58
6.2.1 Registres 58
6.2.2 Mémoires 63
6.2.3 Organisation de la machine d’état 65
6.3 Fragmentation induite 66
6.3.1 Problème rencontré 66
6.3.2 Registres fragmentés 67
6.3.3 Mémoires fragmentées 70
6.4 Ouverture : mémoires et analyse de la durée de vie 73
6.4.1 Problème rencontré 73
6.4.2 Solution intermédiaire 74
6.4.3 Autres solutions envisagées 75
7 Mise en oeuvre et résultats 77
7.1 CP3 : CheckPoint PinPoint 78
7.1.1 Logiciel hôte 78
7.1.2 Développement d’un greffon 78
TABLE DES MATIÈRES 3
7.1.3 Environnements de test 79
7.2 Résultats de la recherche des points de sauvegarde 82
7.2.1 Impact de la latence 82
7.2.2 Premiers bénéfices 83
7.2.3 Temps moyen d’extraction 84
7.3 Surcouts 85
7.3.1 Comparaison entre CSP et CSU 86
7.3.2 Surcout matériel incrémental 88
7.3.3 Découpage de la chaîne de mémoires 90
7.4 Performances 91
7.4.1 Fréquence des circuits obtenus 91
7.4.2 Rapidité de l’obtention des circuits 93
7.4.3 Comparaison du mécanisme avec l’état de l’art 94
7.5 Analyse des mémoires 97
7.5.1 Gain de l’analyse simple 97
7.5.2 Cout de l’analyse simple 97
7.6 Synthèse des résultats 98
8 Conclusion et perspectives 101
Glossaire 105
Bibliographie 107
Publications et communications de l’auteur 117
Annexes
A Découpage des mémoires 121
B Résultats en surface des circuits obtenus 123
C Fréquence des circuits obtenus 125
Télécharger le fichier PDF: Changement de contexte matériel sur FPGA entre équipements reconfigurables et hétérogènes dans un environnement de calcul distribué.