Sélection et ordonnancement parallèle simultanés pour la conception de processeurs spécialisés Journées compilation – Dinard, 28 Avril 2011 Antoine FLOCH.

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

Sélection et ordonnancement parallèle simultanés pour la conception de processeurs spécialisés Journées compilation – Dinard, 28 Avril 2011 Antoine FLOCH CAIRN INRIA Rennes

Informations personnelles Doctorant (3 e 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 FLOCH - CAIRN - INRIA Rennes 1

Plan Contexte et problématique Techniques de sélection dinstructions spécialisées Sélection et ordonnancement simultané Conclusion et perspectives Antoine FLOCH - CAIRN - INRIA Rennes 2

Audio Systèmes multimédias embarqués Video Traitement de signal … … Contraintes fortes –Performances –Énergie –Surface –Temps de mise sur le marché Antoine FLOCH - CAIRN - INRIA Rennes 3

Du processeur au circuit dédié Antoine FLOCH - CAIRN - INRIA Rennes 4

Conception dASIP Adéquation ArchitectureOutils Algorithmes Antoine FLOCH - CAIRN - INRIA Rennes 5 « Application Specific Instruction-Set Processor »

Conception partielle Extension de jeu dinstructions Antoine FLOCH - CAIRN - INRIA Rennes 6 Performances Consommation Complique la compilation Exemple du NIOS II pour FPGA Altera Algorithmes coûteux… … acceptable dans le contexte dapplications embarquées

Conception partielle Flot simplifié: U n processeur généraliste Un compilateur adapté Seule lextension 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 FLOCH - CAIRN - INRIA Rennes 7

Exemple (DAG : chiffrement GOST) Antoine FLOCH - CAIRN - INRIA Rennes 8

Exemple (DAG : chiffrement GOST) Antoine FLOCH - CAIRN - INRIA Rennes 9

Plan Contexte et problématique Techniques de sélection dinstructions spécialisées Sélection et ordonnancement simultané Conclusion et perspectives Antoine FLOCH - CAIRN - INRIA Rennes 10

Sélection dinstructions spécialisées (État de lart) Deux approches possibles Partitionnement HW/SW Sélection doccurrences issus dune bibliothèque de motifs Pour plus dinformations : 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 Antoine FLOCH - CAIRN - INRIA Rennes 11

Partitionnement Identifier les nœuds: Exécutés sur le cœur Exécutés sur lextension 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 dentrées limité Résolution ILP Antoine FLOCH - CAIRN - INRIA Rennes 12 MaxMISO 1 (4 in) MaxMISO 2 (3 in)

Sélection à partir dune bibliothèque Problème de couverture de graphe Bibliothèque de motifs Graphe à couvrir par ces motifs Problème doptimisation 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 FLOCH - CAIRN - INRIA Rennes 13

Plan Contexte et problématique Techniques de sélection dinstructions spécialisées Sélection et ordonnancement simultané Conclusion et perspectives Antoine FLOCH - CAIRN - INRIA Rennes 14

Lien entre la sélection et lordonnancement Antoine FLOCH - CAIRN - INRIA Rennes 15 Motif 1 Motif 2 2 Entrées / 1 Sortie Registres dans lextension

Lien entre la sélection et lordonnancement Antoine FLOCH - CAIRN - INRIA Rennes 16 Motif 1 Motif 2 3 Cycles 2 Entrées / 1 Sortie Registres dans lextension 3 Cycles Total = cycles

Lien entre la sélection et lordonnancement Antoine FLOCH - CAIRN - INRIA Rennes 17 Motif 1 Motif 2 1 Cycle 2 Entrées / 1 Sortie Registres dans lextension Total = 4 cycles 1 Cycle

Sélection dinstruction et ordonnancement simultané La sélection et lordonnancement Interdépendants Contraints par le partage des ressources Approche proposée Modéliser la sélection et lordonnancement dans un unique problème doptimisation Programmation par contraintes Utilisation dun solveur générique Contraintes globales particulièrement adaptées au partage de ressources Antoine FLOCH - CAIRN - INRIA Rennes 18

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 FLOCH - CAIRN - INRIA Rennes 19

Programmation par contraintes: exemple du sudoku Antoine FLOCH - CAIRN - INRIA Rennes 20 Pour chaque case Pour chaque ligne Pour chaque colonne Pour chaque sous-grille j i

Programmation par contraintes: exemple du sudoku Antoine FLOCH - CAIRN - INRIA Rennes 21 j i Consistance AllDiff de la colonne 1

Programmation par contraintes: exemple du sudoku Antoine FLOCH - CAIRN - INRIA Rennes 22 j i Consistance AllDiff de la ligne 2

Programmation par contraintes: exemple du sudoku Antoine FLOCH - CAIRN - INRIA Rennes 23 j i Consistance AllDiff de la première sous-grille

Programmation par contraintes Techniques de consistances : réduisent les domaines des variables Recherche dune solution Évaluation des variables non fixées Algorithme classique de séparation et évaluation Modification dune 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 FLOCH - CAIRN - INRIA Rennes 24

Problème de sélection et dordonnancement simultané Sélection Ordonnancement Architecture Antoine FLOCH - CAIRN - INRIA Rennes 25

Problème de sélection et dordonnancement simultané Recherche de toutes les occurrences de motifs dans le graphe Enoncer les contraintes (sélection, ordonnancement, architecture) Solveur: minimisation de la durée dexécution Bibliothèque de motifs Architecture cible Graphe à couvrir Graphe couvert et ordonnancé Antoine FLOCH - CAIRN - INRIA Rennes 26 M: ensemble des occurrences Problème CSP

Variables de sélection Un nœud est couvert par une seule occurrence de motif : identifiant de loccurrence sélectionnée pour le nœud n i Antoine FLOCH - CAIRN - INRIA Rennes 27

Contraintes de sélection Une occurrence sélectionnée couvre tous ses nœuds. Pour chaque occurrence : : indique si loccurrence est sélectionnée : nombre de nœuds couverts par loccurrence Antoine FLOCH - CAIRN - INRIA Rennes 28

Variables dordonnancement Pour chaque nœud : début de lexécution dun nœud : durée dun nœud Pour chaque occurrence : début de lexécution dune occurrence : durée dune occurrence n Antoine FLOCH - CAIRN - INRIA Rennes 29

Contraintes dordonnancement Les nœuds dune même occurrence sont ordonnancés simultanément Respect des dépendances de données If () then Antoine FLOCH - CAIRN - INRIA Rennes 30

Architecture cible Partage du cœur Envoi/récupération des données vers lextension Lancement de lexécution de motifs sur lextension Exécution dinstructions standard Partage de lextension Un seul motif à la fois Antoine FLOCH - CAIRN - INRIA Rennes 31 NIOS2 dAltera

Scénario dordonnancement Antoine FLOCH - CAIRN - INRIA Rennes 32 m1 m2 m3 Cycle 1

Antoine FLOCH - CAIRN - INRIA Rennes 33 m1 m2 m3 m1 Cycle 2 Scénario dordonnancement

Antoine FLOCH - CAIRN - INRIA Rennes 34 m1 m2 m3 Cycle 3 Scénario dordonnancement

Antoine FLOCH - CAIRN - INRIA Rennes 35 m1 m2 m3 Cycle 4 Scénario dordonnancement

Antoine FLOCH - CAIRN - INRIA Rennes 36 m1 m2 m3 m2 Cycle 5 Scénario dordonnancement

Antoine FLOCH - CAIRN - INRIA Rennes 37 m1 m2 m3 Cycle 6 Scénario dordonnancement

Antoine FLOCH - CAIRN - INRIA Rennes 38 m1 m2 m3 Cycle 7 m3 Scénario dordonnancement

Partage de lextension Antoine FLOCH - CAIRN - INRIA Rennes 39 mkmk din et dout varient en fonction des sources/destinations de loccurrence (extension ou cœur) m1m1 m2m2 Contrainte globale de partage Traitement dune occurrence

Partage du cœur Antoine FLOCH - CAIRN - INRIA Rennes 40 m in m XmXm out m + Extension Cœur cycles dexec m

Résultats Antoine FLOCH - CAIRN - INRIA Rennes 41

Plan Contexte et problématique Techniques de sélection dinstructions spécialisées Sélection et ordonnancement simultané Conclusion et perspectives Antoine FLOCH - CAIRN - INRIA Rennes 42

Flot de conception ASIP ASIP : utiliser une extension matérielle pour accélérer une famille dapplications Gain en performances => complexité du couple compilateur/concepteur Dans le cas de systèmes embarqués, le temps de compilation dapplications critiques nest pas un problème Antoine FLOCH - CAIRN - INRIA Rennes 43

Sélection des instruction spécialisées La sélection et lordonnancement sous contraintes de ressources : interdépendants La programmation par contraintes Formalisme permettant de modéliser lensemble des contraintes dans un unique problème doptimisation Laspect modulaire facilite lexploration du triangle dadéquation (algorithme/outil/architecture) Heuristiques: résoudre des problèmes de taille importante sans changer le modèle de contraintes Antoine FLOCH - CAIRN - INRIA Rennes 44

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 dinstructions 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 lespace 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 lextension Antoine FLOCH - CAIRN - INRIA Rennes 45

Références [Atasu05] K. Atasu, G. Dundar, and C. O ̈ zturan. An integer linear programming approach 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, 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. Automatic selection 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, ACM. [Guo03] Y. Guo, G. J. Smit, H. Broersma, and P. M. Heysters. A graph covering algorithm for a coarse grain reconfigurable system. In LCTES 03: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, pages 199–208, New York, NY, USA, ACM. Antoine FLOCH - CAIRN - INRIA Rennes 46

[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 th IEEE International Conference on Application-specific Systems, Architectures and Processors, [Floch10] A. Floch, C. Wolinski, and K. Kuchcinski. Combined scheduling and instruction selection for processors with reconfigurable cell fabric. In Application- specific Systems Architectures and Processors (ASAP), st IEEE International Conference on, pages 167 –174, Antoine FLOCH - CAIRN - INRIA Rennes 47

Antoine FLOCH - CAIRN - INRIA Rennes 48

Initial problem state Element constraint Relationship between a variable and an array of variables X[]: variables array I : index variable Y: another variable I = 2 V1 V2 V3 V4 V5 X[] I Y= V2 = {0..2} Y=X[I] A solving state

DIFF2 DIFF2(R1,R2,R3) No overlapping