Titre: Génération rapide d’accélérateurs matériels par synthèse d’architecture sous contraintes de ressources
Auteurs: A. Prost-Boucle
Ecole/Université: EEATS
Résumé: DAns le domaine du calcul générique, les circuits FPGA sont très attrayants pour leur performance et leur faible consommation. Cependant, leur présence reste marginale, notamment à cause des limitations des logiciels de développement actuels. En effet, ces limitations obligent les utilisateurs à bien maîtriser de nombreux concepts techniques. Ils obligent à diriger manuellement les processus de synthèse, de façon à obtenir une solution à la fois rapide et conforme aux contraintes des cibles matérielles visées. Une nouvelle méthodologie de génération basée sur la synthèse d’architecture est proposée afin de repousser ces limites. L’exploration des solutions consiste en l’application de transformations itératives à un circuit initial, ce qui accroît progressivement sa rapidité et sa consommation en ressources. La rapidité de ce processus, ainsi que sa convergence sous contraintes de ressources, sont ainsi garanties. L’exploration est également guidée vers les solutions les plus pertinentes grâce à la détection, dans les applications à synthétiser, des sections les plus critiques pour le contexte d’utilisation réel. Cette information peut être affinée à travers un scénario d’exécution transmis par l’utilisateur.
Un logiciel démonstrateur pour cette méthodologie, AUGH, est construit. Des expérimentations sont menées sur plusieurs applications reconnues dans le domaine de la synthèse d’architecture. De tailles très différentes, ces applications confirment la pertinence de la méthodologie proposée pour la génération rapide et autonome d’accélérateurs matériels complexes, sous des contraintes de ressources strictes.
La méthodologie proposée est très proche du processus de compilation pour les microprocesseurs, ce qui permet son utilisation même par des utilisateurs non spécialistes de la conception de circuits numériques. Ces travaux constituent donc une avancée significative pour une plus large adoption des FPGA comme accélérateurs matériels génériques, afin de rendre les machines de calcul simultanément plus rapides et plus économes en énergie.
Extrait du sommaire:
1 Introduction 13
2 Problématique 17
2.1 La synthèse de haut niveau 18
2.1.1 Évolution depuis la conception RTL 18
2.1.2 Contexte d’utilisation et public visé 19
2.1.3 Limites des flots de HLS actuels 21
2.2 Enjeux de la problématique 22
2.2.1 Génération de circuits rapides 22
2.2.2 Respect de contraintes matérielles 23
2.2.3 Rapidité du flot de génération 24
2.2.4 Autonomie et polyvalence 27
2.3 Synthèse de la problématique 28
3 État de l’art 29
3.1 Techniques de génération en HLS 30
3.1.1 Ordonnancement 31
3.1.2 Allocation et assignation 32
3.1.3 Transformation des circuits 33
3.1.4 Détection des sections critiques pour la latence 35
3.2 Gestion des contraintes matérielles 35
3.2.1 Contraintes matérielles imposées par l’utilisateur 35
3.2.2 Estimation des caractéristiques globales des circuits 35
3.2.3 Corrections afin de cibler une fréquence donnée 36
3.2.4 Routabilité 38
3.3 Exploration autonome des solutions 38
3.3.1 Techniques d’exploration au niveau système 39
3.3.2 Techniques d’exploration au niveau HLS 40
3.3.3 Techniques exploitant OpenCL 41
3.4 Synthèse sur les approches existantes 41
4 Proposition d’une nouvelle méthode 43
4.1 Le flot de synthèse proposé 44
4.1.1 Principe général 44
4.1.2 Complexité 47
4.1.3 Scénario d’exécution 48
4.1.4 Correction pour le respect d’une fréquence donnée 50
4.1.5 Pertinence pour d’autres types de contraintes 53
4.1.6 Intégration dans un logiciel de HLS 54
4.2 Détail des étapes principales 55
4.2.1 Synthèse initiale 55
4.2.2 Analyse des transformations possibles 55
4.2.3 Sélection des transformations 56
4.2.4 Évaluation précise des caractéristiques d’un circuit 57
4.3 Discussion sur l’optimalité des solutions 58
4.3.1 Distance aux solutions de Pareto 58
4.3.2 Optima locaux 59
4.3.3 Progression non monotone du coût en ressources durant l’exploration 60
4.4 Variantes 61
4.4.1 Pondération exacte des transformations 61
4.4.2 Application de plusieurs transformations par itération 61
4.4.3 Re-considérer les transformations marquées impossibles 62
4.4.4 Raffinement autour de la solution finale 63
4.5 Synthèse sur le flot proposé 64
TABLE DES MATIÈRES 7
5 Construction d’un démonstrateur 65
5.1 Logiciel de HLS hôte 66
5.2 Structure du circuit généré 67
5.3 Bibliothèque d’opérateurs et calibration pour une technologie donnée 68
5.4 Allocation initiale 70
5.5 Ordonnancement et assignation 71
5.6 Transformations disponibles et pondérations 71
5.6.1 Extension de l’allocation : ajout d’opérateurs et de ports aux mémoires 71
5.6.2 Câblage de condition 75
5.6.3 Déroulement de boucle 77
5.6.4 Remplacement d’un banc de mémoire par des registres indépendants 78
5.6.5 Remplacement de mémoire ROM 79
5.7 Sélection des transformations à appliquer 79
5.8 Évaluation précise des solutions durant l’exploration 80
5.9 Synthèse sur le développement effectué à partir de UGH 81
5.10 Synthèse sur la construction du logiciel démonstrateur 82
6 Expériences et résultats 83
6.1 Applications de test et points d’intérêt 84
6.2 Évolution de la latence et de la surface des solutions explorées 85
6.3 Impact des annotations 87
6.4 Respect des contraintes de ressources 90
6.5 Précision des estimateurs 91
6.6 Impact de la précision des pondérations 93
6.7 Précision de l’évaluation des circuits 98
6.8 Temps d’exploration comparé aux logiciels aval 100
6.9 Comparaison avec d’autres approches 101
6.10 Synthèse sur les expérimentations 103
7 Conclusions et perspectives 105
Publications et présentations des travaux 109
Glossaire 111
Bibliographie 113
Annexes
A Précision des estimateurs 119
Télécharger le fichier PDF: Génération rapide d’accélérateurs matériels par synthèse d’architecture sous contraintes de ressources