La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Optimisation pour la Conception de Systèmes Embarqués

Présentations similaires


Présentation au sujet: "Optimisation pour la Conception de Systèmes Embarqués"— Transcription de la présentation:

1 Optimisation pour la Conception de Systèmes Embarqués
Sélection d’architecture et ordonnancement pour flots de données synchrones Automne 2005 Jean-Marc Delosme

2 Vue d’ensemble – Optimisation pour la Conception des Systèmes Embarqués
Optimisation des circuits VLSI Coût : surface Performances : délai Sélection de processeurs et ordonnancement de traitements périodiques sous contrainte de débit Partitionnement matériel-logiciel

3 Problématique pour l’implantation du logiciel
Choix d’architecture pour l’exécution Coût de production minimal Contraintes de performances Logiciel sur architecture multiprocesseur Affectation et ordonnancement Problème difficile d’optimisation Flots de données synchrones Politique d’ordonnancement statique

4 Plan pour la présentation des outils
Les algorithmes génétiques Les flots de données synchrones (SDF) Politique d’ordonnancement Graphe de communication inter-processeurs (IPC) Calcul de débit (performance) Les resynchronisations

5 Plan pour l’application des outils
Modélisation des individus Opérations sur les gènes Population initiale Sélections Mutations et Croisements Décodage du génotype Evaluation des performances et optimisations Critère d’arrêt Exemple de résultats

6 Les algorithmes génétiques
Individu Génotype Phénotype Population Fonction d’adaptation Opérations Décodage des solutions Evaluation des solutions Sélection des individus Croisement et Mutation Génération Convergence

7 SDF : Synchronous Data Flow
Flots de données Multigraphe orienté Sommets (acteurs) = Traitements Arcs = FIFO Jetons

8 SDF : Synchronous Data Flow
Flots de données synchrones Restrictions sur l’exécution des acteurs Productions et consommations connues Jetons initiaux Présence de données initiales en mémoire Dépendances de données entre itérations d’exécution Arcs = tampons mémoire Exécution répétitive Arrivée continue de données dans les tampons

9 SDF : Synchronous Data Flow
Recherche d’un ordonnancement des tâches adapté à l’exécution répétitive

10 HSDFG et APEG HSDFG : SDF homogène
Adaptés à l’ordonnancement sur plusieurs processeurs Les HSDFG sont notre base de travail Consommation et production de jeton = 1 Conversion d’un SDF en HSDFG APEG : graphe de précédence (acyclique) Suppression des arcs du HSDFG qui ont des jetons initiaux Simple à construire Utilisé pour donner un ordonnancement de tâches sur plusieurs processeurs

11 Optimisation de l’exécution
Ordonnancement Resynchronisation

12 Politique d’ordonnancement
But Affecter les tâches aux processeurs (parallélisme des tâches) Tenir compte des dépendances de données Trois étapes pour la planification de l’exécution des SDF (parallélisme des tâches) (1) Affectation des acteurs (2) Ordonnancement des acteurs : ordre des acteurs sur chaque processeur (3) Choix du moment d’exécution de chaque acteur Respect des contraintes de précédence (entre processeurs)

13 Politique d’ordonnancement
Cas étudié : auto-synchronisé (self-timed) (1) et (2) à la compilation, (3) à l’exécution On ne connaît qu’une estimation des durées des tâches Ordonnancement entièrement statique impossible Ajout d’acteurs dédiés à la communication inter-processeur Robuste vis-à-vis des changements de durées Modélisable par un SDF homogène : graphe IPC (graphe de Communication Inter-Processeurs)

14 Graphe IPC Exemple

15 Graphe IPC Synchronisation

16 Graphe IPC Synchronisation

17 Graphe IPC Ordre d’exécution

18 Graphe IPC Ordre d’exécution

19 Graphe IPC Ordre d’exécution

20 Calcul de performance 8 6 4 3 A s2 r2 B s1 r1 C : (8+6+4)/2 = 9
A s2 r1 C : (8+4)/1 = 12 r2 B D : (6+3)/2 = 4.5 r2 B s1 D : (6+3)/1 = 9 8 6 4 3

21 Resynchronisation Objectif: une exécution plus rapide du HSDFG
Méthode: une transformation du HSDFG Resynchronisation (retiming) Idée issue de ce qui se fait sur les circuits électroniques Redistribution des jetons initiaux sur les arcs sans modifier les fonctionnalités du système initial Des algorithmes existent pour trouver une « bonne » configuration des jetons Production de distributions de jetons par algorithme génétique

22 Exemple de resynchronisation

23 Plan pour l’application des outils
Modélisation des individus Opérations sur les gènes Population initiale Sélections Croisements et Mutations Décodage du génotype Evaluation des performances Arrêt de l’algorithme Exemple de résultats

24 Modélisation des individus
Trois éléments à modéliser Affectations sur les processeurs Resynchronisation Ordonnancement des tâches Trois gènes Affectation : de taille n, associe un numéro de processeur à un acteur Resynchronisation d : de taille m Ordonnancement : de taille n L’ordre du gène donne l’ordre d’exécution Associé au gène d’affectation, il donne l’ordonnancement sur chaque processeur

25 Opérations sur les gènes
Population initiale Une centaine d’individus (au minimum) Générer des gènes ± aléatoirement Affectation Aléatoire Resynchronisation Générée à partir de d = d0 + Hv ≥ 0 Mutations successives Ordonnancement Aléatoire à partir de la resynchronisation (APEG)

26 Opérations sur les gènes
Sélections Mutations Croisements X % des meilleurs se reproduisent entre eux Conservation Les meilleurs des nouveaux et anciens individus

27 Opérations sur les gènes
Gène d’affectation Croisement Mutation

28 Opérations sur les gènes
Gène de resynchronisation Opérateurs basés sur un déplacement de jetons Deux possibilités Hors d’une composante fortement connexe (pas de cycle) La position des jetons peut être quelconque Une composante fortement connexe peut être exécutée comme si elle était un simple acteur Il y a toujours des acteurs d’entrée et de sortie

29 Opérations sur les gènes
Dans une composante fortement connexe Nombre de jetons par cycle est constant d’une resynchronisation à l’autre Toujours possible de déplacer un jeton n’importe où sur un cycle Croisement Exemples de croisement dans une composante fortement connexe Mutation Début : ajout d’un jeton Choix des arcs ayant subit le moins de mouvements

30 Exemple plus complexe

31 Exemple plus complexe d0 c1 c2 c3 d1 1

32 Exemple plus complexe d0 c1 c2 c3 d1 1

33 Exemple plus complexe d0 c1 c2 c3 d1 1

34 Exemple plus complexe d0 c1 c2 c3 d1 1 2

35 Exemple plus complexe d0 c1 c2 c3 d1 1 2

36 Opérations sur les gènes
Gène d’ordonnancement Croisement Uniquement si les resynchronisations sont identiques

37 Opérations sur les gènes
Mutation d’ordonnancements

38 Obtention d’un ordonnancement
Opération importante Croisements de resynchronisations Mutation de resynchronisations Individu Population initiale Principe Prendre successivement les 1ers acteurs exécutables dans l’APEG Avec ou sans ordonnancement de référence But : rester le plus proche possible de l’ordonnancement de référence

39 Décodage du génotype Affectations
Suivant les gènes d’affectation et d’ordonnancement Placement des jetons Phénotype = Graphe IPC Permet de représenter la politique d’ordonnancement auto-synchronisée Support de calcul du MCM Construction difficile à automatiser Minimiser le nombre d’acteurs de communications Arcs d’ordonnancement sur les processeurs Positionnement des jetons

40 Evaluation des performances
Performance = calcul du MCM sur le graphe IPC de l’individu Le calcul n’est fait qu’une seule fois par individu Calcul très coûteux ! Algorithme de Howard

41 Complexité des algorithmes
Gène d’affectation Croisement O(n) Mutation O(n) Gène de resynchronisation Croisement O(Δ mC) Δ = nombre total de jetons Mutation O(Δ m²C) Gène d’ordonnancement Mutation O(m + n) Obtention d’un ordonnancement O(n) Calcul du graphe IPC O(m²d²) Howard O(n²m(tmax- tmin)/ε) en moyenne O(m log(n))

42 Critère d’arrêt Individus comparés uniquement sur le coût et la performance Pas comparés directement sur leurs gènes Meilleur individu amélioré d’une génération à la suivante Conservé s’il n’y a pas d’amélioration Nombre de générations avant arrêt Paramètre réglable Arrêt de l’algorithme Si conservation du meilleur individu pendant N générations Plus N est grand plus l’algorithme a de chances de trouver un meilleur minimum local (grâce à la mutation) Autres critères d’arrêt testés moins efficaces

43 Exemple de résultats Filtre

44 Exemple de résultats Coût Période

45 Exemple de résultats Graphe IPC

46 Conclusion et perspectives
A court terme Automatisation de la construction du graphe IPC A plus long terme Calcul du MCM grâce aux particularités du graphe IPC Ordonnancement dynamique Évaluation de performance Modélisation Conclusion


Télécharger ppt "Optimisation pour la Conception de Systèmes Embarqués"

Présentations similaires


Annonces Google