+ All Categories
Home > Documents > Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using...

Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using...

Date post: 03-Apr-2015
Category:
Upload: rosaire-lecoeur
View: 104 times
Download: 0 times
Share this document with a friend
Popular Tags:
36
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
Transcript
Page 1: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 2: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 3: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

Scheduling Algorithms For High-Level Sysnthesis

Auteurs

Sriram Govindarajan

Page 4: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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é

Page 5: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 6: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 7: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

Synthèse Haut Niveau de Circuits 7

Ordonnancement

Page 8: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

Synthèse Haut Niveau de Circuits 8

Classification des Algorithmes d’ordonnancement

Page 9: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

Synthèse Haut Niveau de Circuits 9

Classification des Algorithmes d’ordonnancement

Les Algorithmes Basiques

Page 10: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 11: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 12: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 13: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 14: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 15: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 16: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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)

Page 17: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

Using Global Code Motions to Improve the Quality of Results for High-Level SynthesisAuteurs:

Sumit Gupta Nick Savoiu Nikil Dutt Rajesh Gupta Alex Nicolau

Page 18: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 19: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 20: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 21: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 22: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 23: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 24: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

Synthèse Haut Niveau de Circuits 24

Mouvements de Code

Spéculation Inverse:

Exemple Spéculation Inverse de b

Spéculation de d

Page 25: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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.

Page 26: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 27: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 28: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 29: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 30: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 31: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 32: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 33: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 34: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 35: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

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

Page 36: Synthèse Haut Niveau de Circuits Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for.

Synthèse Haut Niveau de Circuits 36

Questions ?


Recommended