Document 7604116

Download Report

Transcript Document 7604116

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






Using Global Code Motions to Improve the Quality of Results for
High-Level synthesis







Introduction
Ordonnancemment
Classification des Algorithmes d’ordonnancement
Considération Importantes
Future de la Synthèse Haut Niveau
Introduction
Spark
Mouvements de Code
L’Algorithme d’ordonnancement
Résultats Experimentaux
Conclusion
Critique
Synthèse Haut Niveau de Circuits
2
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
4
Introduction
Qu’est-ce “Synthèse Haut Niveau“?

Description
Description
Comportamental
Structural
Description Structural





Compilation
Partage
Chemin de Données
S
Ordonnancement
Allocation
Génération du Contrôle
Contrôlleur
Synthèse Haut Niveau de Circuits
5
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
Diviser
Etats
et
Pas de Contrôle
Mapping
Temporel
Synthétiser
Modèle FSMD
FSMD: Finite State Machine with Data-Path
Synthèse Haut Niveau de Circuits
6
Ordonnancement
Synthèse Haut Niveau de Circuits
7
Classification des Algorithmes d’ordonnancement
Synthèse Haut Niveau de Circuits
8
Classification des Algorithmes d’ordonnancement
Les Algorithmes Basiques
Synthèse Haut Niveau de Circuits
9
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)
 n

Minimize   Ck  N k 
 k 1

x
Ei  j  Li
i, j
n
x
i 1





i, j
Minimiser les FUs
 1, i / 1  i  n(nombre d’ opérations ) Garantir l’éxecution de l’opération
entre les limites ASAP et ALAP
 N i et
q  x    p  x   1, p  q
i ,q
i, p
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
10
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
11
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
12
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
ASAP
et
ALAP
GCS (clé primaire)
et
LCS (clé secondaire)
Liste de priorité
statique
GCS: greatest control step
LCS: least control step
Synthèse Haut Niveau de Circuits
13
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
14
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
15
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
16
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’ordonnancement qui utilisent des techniques de
mouvement de code
Extraire parallelisme
Spéculation
Augmenter l’utilisation des resources
Synthèse Haut Niveau de Circuits
18
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
19
Spark – Description du Modèle
ANSI-C: Description Comportamental
• Pas de pointers
• Pas de gotos
• Pas de fonctions recursifs
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
Fait l’ordonnancement du design
• Mouvement de Code
• Héuristiques d’ordonnancement
• Modification des transformations
de compilation de parallelisme
Fait la liaison des resources
Réalise la Synthèse de Contrôle
Génère une sortie RTL (register transfer level) VHDL
Synthèse Haut Niveau de Circuits
VHDL: Evaluation des
optimisations
20
Spark – Description du Modèle
Les Réprésentations Graphiques
Code C
HTG
CFG: Graphique de Flux de Contrôle
HTG avec CFG et DFG
DFG: Graphique de Flux de Données
Synthèse Haut Niveau de Circuits
21
Mouvements de Code
Resource idle = pas d’opération à exécuter
Spéculation
Respect des
dépendences de données
Exécuter une opération précédente ou suivante
Synthèse Haut Niveau de Circuits
22
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
23
Mouvements de Code
Spéculation Inverse:
Exemple
Spéculation
Inverse de b
Synthèse Haut Niveau de Circuits
Spéculation
de d
24
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
25
Mouvements de Code
Spéculation Conditionel:
Exemple
x et y sont spéculés.
Les ressources dans le
branche conditionel sont idle.
Synthèse Haut Niveau de Circuits
z est spéculé
conditionelement
26
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
27
Mouvement de Code
Changement Dynamique de Nom
Elimination 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
28
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
29
L’Algorithme d’ordonnancement
Ordonnancement des Boucles
Spark peut ordonnancer tous 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
30
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
31
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
32
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
33
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
34
Conclusion

Mouvements de code  importants pour minimiser les effets du
choix de flux de controle e style de programmation

Les mouvements de code



Spark prendre en compte de contraintes de delay e surface


Il réduit le delays
Mais... Augmente la 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
35
Questions ?
Synthèse Haut Niveau de Circuits
36