Date post: | 03-Apr-2015 |
Category: |
Documents |
Upload: | rosaire-lecoeur |
View: | 104 times |
Download: | 0 times |
Synthèse Haut Niveau de Circuits
Articles:
Scheduling Algorithms For High-Level Synthesis
Using Global Code Motions to Improve the Quality of Results for High-Level synthesis
Présenté par:
Betânia STEFFEN ABDALLAH GONÇALVES
Synthèse Haut Niveau de Circuits 2
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
Scheduling Algorithms For High-Level Sysnthesis
Auteurs
Sriram Govindarajan
Synthèse Haut Niveau de Circuits 4
Introduction
“Design” des Systèmes Digitaux
Niveau transistor
Ou
Niveau Logique
Niveau abstract:
Synthèse Haut Niveau
Réduire la Complexité
Synthèse Haut Niveau de Circuits 5
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
Contrôlleur
Ordonnancement
Synthèse Haut Niveau de Circuits 6
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"
Representation
Intermediaire
Etats et
Pas de Contrôle
Modèle FSMD
Diviser
Synthétiser
Mapping Temporel
FSMD: Finite State Machine with Data-Path
Synthèse Haut Niveau de Circuits 7
Ordonnancement
Synthèse Haut Niveau de Circuits 8
Classification des Algorithmes d’ordonnancement
Synthèse Haut Niveau de Circuits 9
Classification des Algorithmes d’ordonnancement
Les Algorithmes Basiques
Synthèse Haut Niveau de Circuits 10
Classification des Algorithmes d’ordonnancement
Programation Mathematique (Integer Linear Programming)
Ordonnancement avec des Contraintes de TempsSystèmes en temps réels minimiser coût du hardware
n
kkk NCMinimize
1
)opérationsd’ (nombre1/,1,
LijE
ji
i
niix
n
iiji Nx
1, et qpxpxq piqi ,1,,
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
Minimiser les FUs
Garantir l’éxecution de l’opération entre les limites ASAP et ALAP
Garantir la dépendence de données
Synthèse Haut Niveau de Circuits 11
Classification des Algorithmes d’ordonnancement
Heuristiques Constructive (Force directed Scheduling)Réduire le nombre de FUs utilisés
Ordonnancement avec des Contraintes de Temps
Prob = 1/ Mobilité Force α Prob + Force successeur + Force prédécesseur
Synthèse Haut Niveau de Circuits 12
Classification des Algorithmes d’ordonnancement
Iterative Refinement (Réordonnancement Iteratif)
Ordonnancement avec des Contraintes de Temps
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 13
Classification des Algorithmes d’ordonnancement
List-Based SchedulingASAP + contraintes de resources
Ordonnancement avec des Contraintes de ResourcesContrainte de design surface de silicium
Static List Scheduling
Liste de prioritédynamique
↑mobilité ↓priorité
ASAPet
ALAP
GCS (clé primaire)et
LCS (clé secondaire)
Liste de prioritéstatique
Liste des noeuds qui ont ses prédécesseurs déjà ordonnancés
GCS: greatest control step
LCS: least control step
Synthèse Haut Niveau de Circuits 14
Classification des Algorithmes d’ordonnancement
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
Miscellaneous
Synthèse Haut Niveau de Circuits 15
Considérations Importantes
Unités Fonctionnels (FU) avec différents delays Cycle d’horloge déterminé par l’unité la plus lente
Unité Multi FonctionnelsIl 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 16
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)
Using Global Code Motions to Improve the Quality of Results for High-Level SynthesisAuteurs:
Sumit Gupta Nick Savoiu Nikil Dutt Rajesh Gupta Alex Nicolau
Synthèse Haut Niveau de Circuits 18
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’ordonnancement qui utilisent des techniques de
mouvement de code
Spéculation
Extraire parallelisme
Augmenter l’utilisation des resources
Synthèse Haut Niveau de Circuits 19
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 20
Spark – Description du Modèle
ANSI-C: Description Comportamental
Répresentation Intermédiaire: HTG, CFG et DFG
Exécute les pasages d’analyse de dépendence de données
Fait l’ordonnancement du design
Fait la liaison des resources
Réalise la Synthèse de Contrôle
Génère une sortie RTL (register transfer level) VHDL
• Mouvement de Code• Héuristiques d’ordonnancement• Modification des transformations de compilation de parallelisme
VHDL: Evaluation des optimisations
• Pas de pointers• Pas de gotos• Pas de fonctions recursifs
HTG: mantient les constructions de contrôle et de boucle
Synthèse Haut Niveau de Circuits 21
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 22
Mouvements de Code
Resource idle = pas d’opération à exécuter
Exécuter une opération précédente ou suivante
Respect des
dépendences de données
Spéculation
Synthèse Haut Niveau de Circuits 23
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 24
Mouvements de Code
Spéculation Inverse:
Exemple Spéculation Inverse de b
Spéculation de d
Synthèse Haut Niveau de Circuits 25
Mouvements de Code
Exécution de condition au plus tôt:
Design original C est scheduled au plus tôt. Les opérations avant le If sont spéculé inversement.
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.
Synthèse Haut Niveau de Circuits 26
Mouvements de Code
Spéculation Conditionel:
Exemple x et y sont spéculés.
Les ressources dans le branche conditionel sont idle.
z est spéculé conditionelement
Synthèse Haut Niveau de Circuits 27
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 28
Mouvement de Code
Changement Dynamique de NomElimination de la dépendence de données
Code C DFG DFG après scheduling
(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 29
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 30
L’Algorithme d’ordonnancement
Spark peut ordonnancer tous les types de boucles
Ordonnancement des Boucles
Fin du boucle
Premier état après le boucle
Premier état du boucle
Condition pas satisfaite Condition satisfaite
Synthèse Haut Niveau de Circuits 31
L’Algorithme d’ordonnancement
Heuristique pour l’application de la Spéculation Conditionnel
La Spéculation Conditionnel: Peut augmenter la taille de l’ordonnancement Peut augmenter complexité à cause des duplications des opérations
Synthèse Haut Niveau de Circuits 32
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 33
Résultats ExpérimentauxEffets dans la Performance et dans la Taille du Contrôlleur
Spéculation
Donne des meilleurs résultats
Synthèse Haut Niveau de Circuits 34
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 35
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 36
Questions ?