360 likes | 563 Views
Synthèse Haut Niveau de Circuits. Présenté par: Betânia STEFFEN ABDALLAH GON ÇALVES. Articles : Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for High-Level synthesis. Plan. Scheduling Algorithms For High-Level Synthesis
E N D
Synthèse Haut Niveau de Circuits Présenté par: Betânia STEFFEN ABDALLAH GONÇALVES Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for High-Level synthesis
Plan • Scheduling Algorithms For High-Level Synthesis • Introduction • Ordonnancemment • Classification des Algorithmes d’ordonnancement • Considération Importantes • Future de la Synthèse Haut Niveau • Using Global Code Motions to Improve the Quality of Results for High-Level synthesis • Introduction • Spark • Mouvements de Code • L’Algorithme d’ordonnancement • Résultats Experimentaux • Conclusion • Critique Synthèse Haut Niveau de Circuits
Scheduling Algorithms For High-Level Sysnthesis Auteurs Sriram Govindarajan
Introduction “Design” des Systèmes Digitaux Niveau transistor Ou Niveau Logique Réduire la Complexité Niveau abstract: Synthèse Haut Niveau Synthèse Haut Niveau de Circuits
Introduction Qu’est-ce “Synthèse Haut Niveau“? Description Comportamental Description Structural • Description Structural • Compilation • Partage • S • Allocation • Génération du Contrôle Chemin de Données Ordonnancement Contrôlleur Synthèse Haut Niveau de Circuits
Representation Intermediaire Diviser Etats et Pas de Contrôle Mapping Temporel Synthétiser Modèle FSMD Ordonnancement “L’ordonnancement est une tâche important dans la synthèse haut niveau parce qu’il va impacter l’équilibre entre design et performance" FSMD: Finite State Machine with Data-Path Synthèse Haut Niveau de Circuits
Ordonnancement Synthèse Haut Niveau de Circuits
Classification des Algorithmes d’ordonnancement Synthèse Haut Niveau de Circuits
Les Algorithmes Basiques Classification des Algorithmes d’ordonnancement Synthèse Haut Niveau de Circuits
et Classification des Algorithmes d’ordonnancement Ordonnancement avec des Contraintes de Temps Systèmes en temps réels minimiser coût du hardware • Programation Mathematique (Integer Linear Programming) Minimiser les FUs Garantir l’éxecution de l’opération entre les limites ASAP et ALAP Garantir la dépendence de données • Ek ASAP et Lk ALAP • Nk nombre de FUs • Ck coût de chaque FU • xi,j =1 si l’opération i se passe dans le pas de contrôle j, sinon xi,j =0 • p et q sont des pas de contrôle des opérations xi et xj Synthèse Haut Niveau de Circuits
Classification des Algorithmes d’ordonnancement Ordonnancement avec des Contraintes de Temps • Heuristiques Constructive (Force directed Scheduling) Réduire le nombre de FUs utilisés • Prob = 1/ Mobilité • Force α Prob + Force successeur + Force prédécesseur Synthèse Haut Niveau de Circuits
Classification des Algorithmes d’ordonnancement Ordonnancement avec des Contraintes de Temps • Iterative Refinement (Réordonnancement Iteratif) • Les mouvements possibles sont determinés • Une position aléatoire est pris pour chaque opération • Les coûts sont calculés est les opérations avec les coût plus petits restent dans la position • Pour les autres opérations, la procédure se repète La qualité de la solution dépend de la solution inicial Synthèse Haut Niveau de Circuits
Classification des Algorithmes d’ordonnancement Ordonnancement avec des Contraintes de Resources Contrainte de design surface de silicium • List-Based Scheduling ASAP + contraintes de resources Liste de priorité dynamique ↑mobilité ↓priorité Liste des noeuds qui ont ses prédécesseurs déjà ordonnancés • Static List Scheduling GCS (clé primaire) et LCS (clé secondaire) Liste de priorité statique ASAP et ALAP GCS: greatest control step LCS: least control step Synthèse Haut Niveau de Circuits
Classification des Algorithmes d’ordonnancement Miscellaneous • Simulated Annealing Table de 2 dimensions : Les Pas de Contrôle Versus FU (Unités Fonctionnels) 1 opération 1 pas de contrôle et 1 FU Modification iteratif de la table Coût du déplacement de l’operation • Path-Based Scheduling • Minimisation du nombre de Pas de Contrôle • Les chemins d’éxecution sont ordonnancés indépendamment • Les ordonnancements de chaque chemin sont combinés pour générer l’ordonnancement final Synthèse Haut Niveau de Circuits
Considérations Importantes • Unités Fonctionnels (FU) avec différents delays • Cycle d’horloge déterminé par l’unité la plus lente • Unité Multi Fonctionnels Il y a des unités foctionnels qui peuvent éxecuter plusiers opérations • Description Comportammental • Constructions conditionnels: l’ordonnanceur doit être capable de partager les resources entre les opérations qui s’éxcluent. • Boucles: peuvent contenir parallelism entre les iterations Synthèse Haut Niveau de Circuits
Future de la Synthèse Haut-Niveau • Problèmes à Solutionner • L’ordonnancement Pipeliné • Coût du Contrôleur (il faut le considerer) • Contraints de Surface (prendre en compte) • Réalisme (constructions spéciales de langage) Synthèse Haut Niveau de Circuits
Using Global Code Motions to Improve the Quality of Results for High-Level Synthesis Auteurs: Sumit Gupta Nick Savoiu Nikil Dutt Rajesh Gupta Alex Nicolau
Introduction • Nécessités • Trasformations de haut niveau pour optimiser la synthèse indépendamment du flux de contrôle de la description d’entrée. • Propositions de Solution • Algorithmes d’ordonnancementqui utilisent des techniques de mouvement de code Extraire parallelisme Spéculation Augmenter l’utilisation des resources Synthèse Haut Niveau de Circuits
Spark: Framework de Synthèse de Haut Niveau Optimisation de la qualité de la synthèse haut niveau delays et surface Synthèse Haut Niveau de Circuits
Spark – Description du Modèle • Pas de pointers • Pas de gotos • Pas de fonctions recursifs ANSI-C: Description Comportamental Répresentation Intermédiaire: HTG, CFG et DFG HTG:mantient les constructions de contrôle et de boucle Exécute les pasages d’analyse de dépendence de données • Mouvement de Code • Héuristiques d’ordonnancement • Modification des transformations de compilation de parallelisme Fait l’ordonnancement du design Fait la liaison des resources Réalise la Synthèse de Contrôle VHDL: Evaluation des optimisations Génère une sortie RTL (register transfer level) VHDL Synthèse Haut Niveau de Circuits
Spark – Description du Modèle Les Réprésentations Graphiques Code C HTG HTG avec CFG et DFG CFG: Graphique de Flux de Contrôle DFG: Graphique de Flux de Données Synthèse Haut Niveau de Circuits
Spéculation Mouvements de Code Resource idle= pas d’opération à exécuter Respect des dépendences de données Exécuter une opération précédente ou suivante Synthèse Haut Niveau de Circuits
Mouvements de Code Spéculation: Chaîne Sequenciel d’une comparaison suivi d’une adition Parallelism de la comparaison et de l’addition Synthèse Haut Niveau de Circuits
Mouvements de Code Spéculation Inverse: Spéculation Inverse de b Spéculation de d Exemple Synthèse Haut Niveau de Circuits
Mouvements de Code Exécution de condition au plus tôt: L’exécution du teste de condition au plus tôt va résoudre la dépendence de contrôle dans les branches IF-HTG. Opérations disponibles plus tôt pour l’ordonnancement. Design original C est scheduled au plus tôt. Les opérations avant le If sont spéculé inversement. Synthèse Haut Niveau de Circuits
Mouvements de Code Spéculation Conditionel: x et y sont spéculés. Les ressources dans le branche conditionel sont idle. z est spéculé conditionelement Exemple Synthèse Haut Niveau de Circuits
Mouvement de Code Trailblazing: Technique hiérarchique de mouvement de code op se déplace de BB2 à BB1 sans passer pour les blocs intermédiaires du bloc IF Synthèse Haut Niveau de Circuits
Mouvement de Code Changement Dynamique de Nom Elimination de la dépendence de données DFG après scheduling Code C DFG (d) Maintenace du flux de dependence de données (e) Maitenance aussi du non-flux de dependence de données Importance du non-flux de données: Manutention du nom original des variables pour permettre la visualisation des effets des transformations Synthèse Haut Niveau de Circuits
L’Algorithme d’ordonnancement Priority-Based Global List Scheduling Heuristic BUT: minimiser le plus long delay Priorité α taille de la chaine de dépéndence de données • Priorité = 0 opérations qui produisent des sorties • Priorité = 1 opérations dont les résultats sont urilisés par les opérations de sorties • Etc... • Priorité maximal (IF-HTG) teste de condition Synthèse Haut Niveau de Circuits
L’Algorithme d’ordonnancement Ordonnancement des Boucles Sparkpeut ordonnancertous les types de boucles Fin du boucle Condition pas satisfaite Condition satisfaite Premier état du boucle Premier état après le boucle Synthèse Haut Niveau de Circuits
L’Algorithme d’ordonnancement La Spéculation Conditionnel: • Peut augmenter la taille de l’ordonnancement • Peut augmenter complexité à cause des duplications des opérations Heuristique pour l’application de la Spéculation Conditionnel Synthèse Haut Niveau de Circuits
Résultats Expérimentaux OBS: • Le multiplicateur (*) s’exécute en 2 cycles • Le diviseur (/) s’exécute en 5 cycles • Tous les autres opérations s’exécutent en 1 cycle Synthèse Haut Niveau de Circuits
Résultats Expérimentaux Effets dans la Performance et dans la Taille du Contrôlleur Spéculation Donne des meilleurs résultats Synthèse Haut Niveau de Circuits
Résultats Expérimentaux Effets dans la Surface et dans le Période de l’Horloge • Delay: moitié avec mouvement de code • Taille du chemin: constant Période de clock n’augmente pas • Surface: augmenté par les mouvements de code Synthèse Haut Niveau de Circuits
Conclusion • Mouvements de code importants pour minimiser les effets du choix de flux de controle e style de programmation • Les mouvements de code • Il réduit le delays • Mais... Augmente la surface!!! • Spark prendre en compte de contraintes de delay e surface • Contraintes de surface: pas de solution dans le premier article • Pas d’améllioration en comparaison avec des autres travaux Synthèse Haut Niveau de Circuits
Questions ? Synthèse Haut Niveau de Circuits