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’HCAIRN
INRIA Rennes
2
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
3
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
4
Audio
Systèmes multimédias embarqués
Video
Traitement de signal …
… Contraintes fortes– Performances– Énergie– Surface– Temps de mise
sur le marché
Antoine FLOC’H - CAIRN - INRIA Rennes
5
Du processeur au circuit dédié
Antoine FLOC’H - CAIRN - INRIA Rennes
6
Conception d’ASIP
Adéquation
Architecture Outils
Algorithmes
Antoine FLOC’H - CAIRN - INRIA Rennes
« Application Specific Instruction-Set Processor »
7
Conception partielle• Extension de jeu d’instructions
Antoine FLOC’H - CAIRN - INRIA Rennes
Performances
Consommation
Complique la compilation
Exemple du NIOS II pour FPGA Altera
Algorithmes coûteux…
… acceptable dans le contexte d’applications embarquées
8
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
9
Exemple (DAG : chiffrement GOST)
Antoine FLOC’H - CAIRN - INRIA Rennes
10
Exemple (DAG : chiffrement GOST)
Antoine FLOC’H - CAIRN - INRIA Rennes
11
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
12
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, June 2011
http://ce.et.tudelft.nl/~carlo/
Antoine FLOC’H - CAIRN - INRIA Rennes
13
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
Antoine FLOC’H - CAIRN - INRIA Rennes
MaxMISO 1 (4 in)
MaxMISO 2 (3 in)
14
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
15
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
16
Lien entre la sélection et l’ordonnancement
Antoine FLOC’H - CAIRN - INRIA Rennes
Motif 1 Motif 2
2 Entrées / 1 SortieRegistres dans l’extension
17
Lien entre la sélection et l’ordonnancement
Antoine FLOC’H - CAIRN - INRIA Rennes
Motif 1 Motif 2
3 Cycles
2 Entrées / 1 SortieRegistres dans l’extension
3 Cycles
Total = 3 + 3 + 1 cycles
18
Lien entre la sélection et l’ordonnancement
Antoine FLOC’H - CAIRN - INRIA Rennes
Motif 1 Motif 2
1 Cycle
2 Entrées / 1 SortieRegistres dans l’extension
Total = 4 cycles
1 Cycle 1 Cycle 1 Cycle
19
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
20
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
21
Programmation par contraintes: exemple du sudoku
Antoine FLOC’H - CAIRN - INRIA Rennes
• Pour chaque case
• Pour chaque ligne
• Pour chaque colonne
• Pour chaque sous-grille
j
i
22
Programmation par contraintes: exemple du sudoku
Antoine FLOC’H - CAIRN - INRIA Rennes
j
i
Consistance AllDiffde la colonne 1
23
Programmation par contraintes: exemple du sudoku
Antoine FLOC’H - CAIRN - INRIA Rennes
j
i
Consistance AllDiffde la ligne 2
24
Programmation par contraintes: exemple du sudoku
Antoine FLOC’H - CAIRN - INRIA Rennes
j
i
Consistance AllDiffde la première sous-grille
25
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
26
Problème de sélection et d’ordonnancement simultané
Sélection
Ordonnancement
Architecture
Antoine FLOC’H - CAIRN - INRIA Rennes
27
Problème de sélection et d’ordonnancement simultané
Recherche de toutes les occurrences de motifs dans le
graphe
Enoncer les contraintes (sélection, ordonnancement, architecture)
Solveur: minimisation de la durée d’exécution
Bibliothèque de motifs
Architecture cible
Graphe à couvrir
Graphe couvert et ordonnancé
Antoine FLOC’H - CAIRN - INRIA Rennes
M: ensemble des occurrences
Problème CSP
28
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
29
Contraintes de sélectionUne 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
30
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
31
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
32
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
Antoine FLOC’H - CAIRN - INRIA Rennes
NIOS2 d’Altera
33
Scénario d’ordonnancement
Antoine FLOC’H - CAIRN - INRIA Rennes
m1 m2
m3
Cycle 1
34Antoine FLOC’H - CAIRN - INRIA Rennes
m1 m2
m3
m1
Cycle 2
Scénario d’ordonnancement
35Antoine FLOC’H - CAIRN - INRIA Rennes
m1 m2
m3
Cycle 3
Scénario d’ordonnancement
36Antoine FLOC’H - CAIRN - INRIA Rennes
m1 m2
m3
Cycle 4
Scénario d’ordonnancement
37Antoine FLOC’H - CAIRN - INRIA Rennes
m1 m2
m3
m2
Cycle 5
Scénario d’ordonnancement
38Antoine FLOC’H - CAIRN - INRIA Rennes
m1 m2
m3
Cycle 6
Scénario d’ordonnancement
39Antoine FLOC’H - CAIRN - INRIA Rennes
m1 m2
m3
Cycle 7
m3
Scénario d’ordonnancement
40
Partage de l’extension
Antoine FLOC’H - CAIRN - INRIA Rennes
mk
din et dout varient en fonction des sources/destinations de
l’occurrence (extension ou cœur)
m1 m2
Contrainte globale de partageTraitement d’une occurrence
41
Partage du cœur
Antoine FLOC’H - CAIRN - INRIA Rennes
m
inm Xm outm+
Extension
Cœur
cycles
cycles
dexecm
42
Résultats
Antoine FLOC’H - CAIRN - INRIA Rennes
43
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
44
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
45
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 changer le modèle de contraintes
Antoine FLOC’H - CAIRN - INRIA Rennes
46
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
47
Références• [Atasu05] K. Atasu, G. Dundar, and C. Ozturan. 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, 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. 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, 2006. 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, 2003. ACM.
Antoine FLOC’H - CAIRN - INRIA Rennes
48
• [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-specific Systems, Architectures and Processors, 2009.
• [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), 2010 21st IEEE International Conference on, pages 167 –174, 2010.
Antoine FLOC’H - CAIRN - INRIA Rennes
49Antoine FLOC’H - CAIRN - INRIA Rennes
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