510 likes | 586 Views
Sélection et ordonnancement parallèle simultanés pour la conception de processeurs spécialisés. Journées compilation – Dinard, 28 Avril 2011. Antoine FLOC’H CAIRN INRIA Rennes. a ntoine.floch@irisa.fr. Informations personnelles. Doctorant (3 e année) : U niversité de Rennes 1
E N D
Sélection et ordonnancement parallèle simultanés pour la conception de processeurs spécialisés Journées compilation – Dinard, 28 Avril 2011 Antoine FLOC’H CAIRN INRIA Rennes antoine.floch@irisa.fr
Antoine FLOC’H - CAIRN - INRIA Rennes Informations personnelles • Doctorant (3e année) : • Université de Rennes 1 • Équipe CAIRN • Thèse: • «Reconnaissance de motifs pour l'extension de jeux d'instructions de processeurs» • Sous la direction de Christophe Wolinski • Financement INRIA dans le cadre de NANO2012 (partenariat avec ST microeletronics)
Antoine FLOC’H - CAIRN - INRIA Rennes Plan • Contexte et problématique • Techniques de sélection d’instructions spécialisées • Sélection et ordonnancement simultané • Conclusion et perspectives
Antoine FLOC’H - CAIRN - INRIA Rennes Systèmes multimédias embarqués … Traitement de signal Contraintes fortes • Performances • Énergie • Surface • Temps de mise sur le marché … Audio Video
Antoine FLOC’H - CAIRN - INRIA Rennes Du processeur au circuit dédié
Antoine FLOC’H - CAIRN - INRIA Rennes Conception d’ASIP « Application Specific Instruction-Set Processor » Algorithmes Adéquation Architecture Outils
Antoine FLOC’H - CAIRN - INRIA Rennes Conception partielle Performances Consommation • Extension de jeu d’instructions Complique la compilation Algorithmes coûteux… … acceptable dans le contexte d’applications embarquées Exemple du NIOS II pour FPGA Altera
Antoine FLOC’H - CAIRN - INRIA Rennes Conception partielle • Flot simplifié: • Un processeur généraliste • Un compilateur adapté • Seule l’extension reste à définir • Instructions spécialisées • Comment les identifier ? • Lesquelles sélectionner pour un programme donné ? • La majorité des méthodes utilisent des graphes • Regroupement de nœud => Instruction spécialisée
Antoine FLOC’H - CAIRN - INRIA Rennes Exemple (DAG : chiffrement GOST)
Antoine FLOC’H - CAIRN - INRIA Rennes Exemple (DAG : chiffrement GOST)
Antoine FLOC’H - CAIRN - INRIA Rennes Plan • Contexte et problématique • Techniques de sélection d’instructions spécialisées • Sélection et ordonnancement simultané • Conclusion et perspectives
Antoine FLOC’H - CAIRN - INRIA Rennes Sélection d’instructions spécialisées(État de l’art) • Deux approches possibles • Partitionnement HW/SW • Sélection d’occurrences issus d’une bibliothèque de motifs • Pour plus d’informations : C. Galuzzi and K. Bertels, The Instruction-Set Extension Problem: A Survey, ACM Transactions on Reconfigurable Technology and Systems (TRETS), Vol. 4, Issue 2, June2011 http://ce.et.tudelft.nl/~carlo/
Antoine FLOC’H - CAIRN - INRIA Rennes Partitionnement • Identifier les nœuds: • Exécutés sur le cœur • Exécutés sur l’extension • Heuristique itérative [Atasu05] • A chaque itération: trouver le motif qui minimise le chemin critique du graphe • MaxMISO[Galuzi06] • Trouver les motifs MISO de tailles maximales • Nombre d’entrées limité • Résolution ILP MaxMISO 2 (3 in) MaxMISO 1 (4 in)
Antoine FLOC’H - CAIRN - INRIA Rennes Sélection à partir d’une bibliothèque • Problème de couverture de graphe • Bibliothèque de motifs • Graphe à couvrir par ces motifs • Problème d’optimisation NP • min (motifs sélectionnés) [Guo03] • max (nœuds couverts) [Liao98] • min (instances de motifs) ) [Scharw07] • min (durée exécution)[Martin09,Floch10] • min (dissipation énergie) • min (consommation) • min (taille de code) • ...
Antoine FLOC’H - CAIRN - INRIA Rennes Plan • Contexte et problématique • Techniques de sélection d’instructions spécialisées • Sélection et ordonnancement simultané • Conclusion et perspectives
Antoine FLOC’H - CAIRN - INRIA Rennes Lien entre la sélection et l’ordonnancement 2 Entrées / 1 Sortie Registres dans l’extension Motif 2 Motif 1
Antoine FLOC’H - CAIRN - INRIA Rennes Lien entre la sélection et l’ordonnancement 3 Cycles 3 Cycles Total = 3 + 3 + 1 cycles 2 Entrées / 1 Sortie Registres dans l’extension Motif 2 Motif 1
Antoine FLOC’H - CAIRN - INRIA Rennes Lien entre la sélection et l’ordonnancement 1 Cycle 1 Cycle 1 Cycle 1 Cycle Total = 4 cycles 2 Entrées / 1 Sortie Registres dans l’extension Motif 2 Motif 1
Antoine FLOC’H - CAIRN - INRIA Rennes Sélection d’instruction et ordonnancement simultané • La sélection et l’ordonnancement • Interdépendants • Contraints par le partage des ressources • Approche proposée • Modéliser la sélection et l’ordonnancement dans un unique problème d’optimisation • Programmation par contraintes • Utilisation d’un solveur générique • Contraintes globales particulièrement adaptées au partage de ressources
Antoine FLOC’H - CAIRN - INRIA Rennes Programmation par contraintes • Ensemble de variables à domaines finis • Ensemble de contraintes • Contrainte = relation entre variables • unaire, binaire, ternaire • n-aire (contrainte globale) • Techniques de consistances: réduction des domaines des variables
Antoine FLOC’H - CAIRN - INRIA Rennes Programmation par contraintes: exemple du sudoku • Pour chaque case • Pour chaque ligne • Pour chaque colonne • Pour chaque sous-grille j i
Antoine FLOC’H - CAIRN - INRIA Rennes Programmation par contraintes: exemple du sudoku j Consistance AllDiff de la colonne 1 i
Antoine FLOC’H - CAIRN - INRIA Rennes Programmation par contraintes: exemple du sudoku j Consistance AllDiff de la ligne 2 i
Antoine FLOC’H - CAIRN - INRIA Rennes Programmation par contraintes: exemple du sudoku j Consistance AllDiff de la première sous-grille i
Antoine FLOC’H - CAIRN - INRIA Rennes Programmation par contraintes • Techniques de consistances : réduisent les domaines des variables • Recherche d’une solution • Évaluation des variables non fixées • Algorithme classique de séparation et évaluation • Modification d’une variable => appliquer les consistances des contraintes associées à cette variable • Personnalisation/optimisation de la recherche • Ordre de sélection des variables évaluées • Parcours des domaines des variables évaluées
Antoine FLOC’H - CAIRN - INRIA Rennes Problème de sélection et d’ordonnancement simultané Sélection Architecture Ordonnancement
Antoine FLOC’H - CAIRN - INRIA Rennes Problème de sélection et d’ordonnancement simultané Graphe à couvrir Recherche de toutes les occurrences de motifs dans le graphe Bibliothèque de motifs M: ensemble des occurrences Enoncer les contraintes (sélection, ordonnancement, architecture) Architecture cible Problème CSP Solveur: minimisation de la durée d’exécution Graphe couvert et ordonnancé
Antoine FLOC’H - CAIRN - INRIA Rennes Variables de sélection Un nœud est couvert par une seule occurrence de motif • : identifiant de l’occurrence sélectionnée pour le nœud ni
Antoine FLOC’H - CAIRN - INRIA Rennes Contraintes de sélection Une occurrence sélectionnée couvre tous ses nœuds. Pour chaque occurrence : • : indique si l’occurrence est sélectionnée • : nombre de nœuds couverts par l’occurrence
Antoine FLOC’H - CAIRN - INRIA Rennes Variables d’ordonnancement • Pour chaque nœud • : début de l’exécution d’un nœud • : durée d’un nœud • Pour chaque occurrence • : début de l’exécution d’une occurrence • : durée d’une occurrence n
Antoine FLOC’H - CAIRN - INRIA Rennes Contraintes d’ordonnancement • Les nœuds d’une même occurrence sont ordonnancés simultanément • Respect des dépendances de données If ( ) then
Antoine FLOC’H - CAIRN - INRIA Rennes Architecture cible • Partage du cœur • Envoi/récupération des données vers l’extension • Lancement de l’exécution de motifs sur l’extension • Exécution d’instructions standard • Partage de l’extension • Un seul motif à la fois NIOS2 d’Altera
Antoine FLOC’H - CAIRN - INRIA Rennes Scénario d’ordonnancement m2 m1 m3 Cycle 1
Antoine FLOC’H - CAIRN - INRIA Rennes Scénario d’ordonnancement m2 m1 m1 m3 Cycle 2
Antoine FLOC’H - CAIRN - INRIA Rennes Scénario d’ordonnancement m2 m1 m3 Cycle 3
Antoine FLOC’H - CAIRN - INRIA Rennes Scénario d’ordonnancement m2 m1 m3 Cycle 4
Antoine FLOC’H - CAIRN - INRIA Rennes Scénario d’ordonnancement m2 m1 m2 m3 Cycle 5
Antoine FLOC’H - CAIRN - INRIA Rennes Scénario d’ordonnancement m2 m1 m3 Cycle 6
Antoine FLOC’H - CAIRN - INRIA Rennes Scénario d’ordonnancement m2 m1 m3 m3 Cycle 7
Antoine FLOC’H - CAIRN - INRIA Rennes Partage de l’extension Contrainte globale de partage Traitement d’une occurrence mk m1 m2 din et doutvarient en fonction des sources/destinations de l’occurrence (extension ou cœur)
Antoine FLOC’H - CAIRN - INRIA Rennes Partage du cœur dexecm Extension m cycles Cœur inm Xm + outm cycles
Antoine FLOC’H - CAIRN - INRIA Rennes Résultats
Antoine FLOC’H - CAIRN - INRIA Rennes Plan • Contexte et problématique • Techniques de sélection d’instructions spécialisées • Sélection et ordonnancement simultané • Conclusion et perspectives
Antoine FLOC’H - CAIRN - INRIA Rennes Flot de conception ASIP • ASIP : utiliser une extension matérielle pour accélérer une famille d’applications • Gain en performances => complexité du couple compilateur/concepteur • Dans le cas de systèmes embarqués, le temps de compilation d’applications critiques n’est pas un problème
Antoine FLOC’H - CAIRN - INRIA Rennes Sélection des instruction spécialisées • La sélection et l’ordonnancement sous contraintes de ressources : interdépendants • La programmation par contraintes • Formalisme permettant de modéliser l’ensemble des contraintes dans un unique problème d’optimisation • L’aspect modulaire facilite l’exploration du triangle d’adéquation (algorithme/outil/architecture) • Heuristiques: résoudre des problèmes de taille importante sans changerle modèle de contraintes
Antoine FLOC’H - CAIRN - INRIA Rennes Travaux en cours • Collaboration avec Steven Derrien (CAIRN) et Sanjay Rajopadhye (Mélange-CSU) dans le cadre de l’équipe associée LRS • Il existe des interactions fortes entre les transformations de nids de boucles et la sélection d’instructions • Exploration des ordonnancements polyédriques légaux dans le contexte ASIP embarqué • Connaissance fine du couple architecture/compilateur • Contraintes non linéaires pour réduire l’espace de recherche ? • Exploration coûteuse moins problématique • Fusion/distribution + ordo de « statements » (style Pluto/POCC) à une granularité plus fine • Faire apparaître des motifs pertinents • Déporter des données sur l’extension
Antoine FLOC’H - CAIRN - INRIA Rennes Références • [Atasu05] K. Atasu, G. Dundar, and C. Özturan. An integerlinearprogrammingapproach for identifying instruction-set extensions. In CODES+ISSS ’05: Proceedings of the 3rd IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis, pages 172–177, New York, NY, USA, 2005. ACM. • [Galuzzi11] C. Galuzzi and K. Bertels, The Instruction-Set Extension Problem: A Survey, ACM Transactions on Reconfigurable Technology and Systems (TRETS), Vol. 4, Issue 2, June 2011 • [Galuzi06] C. Galuzzi, E. M. Panainte, Y. Yankova, K. Bertels, and S. Vassiliadis. Automaticselection of application- specific instruction-set extensions. In CODES+ISSS ’06: Proceedings of the 4th international conference on Hardware/software codesign and system synthesis, pages 160–165, New York, NY, USA, 2006. ACM. • [Guo03] Y. Guo, G. J. Smit, H. Broersma, and P. M. Heysters. A graph coveringalgorithm for a coarse grain reconfigurable system. In LCTES ’03: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embeddedsystems, pages 199–208, New York, NY, USA, 2003. ACM.
Antoine FLOC’H - CAIRN - INRIA Rennes • [Liao98] • [Scharw07] • [Martin09] K. Martin, C. Wolinski, K. Kuchcinski, A. Floch, and F. Charot. Constraint-driven instructions selection and application scheduling in the durase system. In ASAP 2009- 20th IEEE International Conference on Application-specificSystems, Architectures and Processors, 2009. • [Floch10] A. Floch, C. Wolinski, and K. Kuchcinski. Combinedscheduling and instruction selection for processors with reconfigurable cellfabric. In Application-specificSystems Architectures and Processors (ASAP), 2010 21st IEEE International Conference on, pages 167 –174, 2010.
Element constraint • Relationship between a variable and an array of variables • X[]: variables array • I : index variable • Y: another variable Y=X[I] Initial problem state A solving state X[] V1 I Y= V2 = {0..2} V2 I = 2 V3 V4 V5