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

1 Méthodologie de conception d’architectures parallèles dédiées Mohamed Akil, Thierry Grandpierre, Eva Dokadalova, Laurent Perroton Université Paris-Est,

Présentations similaires


Présentation au sujet: "1 Méthodologie de conception d’architectures parallèles dédiées Mohamed Akil, Thierry Grandpierre, Eva Dokadalova, Laurent Perroton Université Paris-Est,"— Transcription de la présentation:

1 1 Méthodologie de conception d’architectures parallèles dédiées Mohamed Akil, Thierry Grandpierre, Eva Dokadalova, Laurent Perroton Université Paris-Est, Laboratoire d'informatique Gaspard-Monge, équipe A3SI ESIEE Paris, 2 Bld Blaise Pascal, BP 99, Noisy-Le-Grand, 93162, France AMINA 2008

2 2 Architecture, parallélisme pour l’Image et la Réalité Virtuelle Architectures dédiées pour l’Image et la RV M. Akil Parallélisme : l’Image et la RV L. Perroton Architectures reconfigurables et adaptatives pour la vision temps réel et la RV E. Dokladalova Méthodologie de conception d’applications temps-réel pour l’Image et la RV T. Grandpierre APPLICATIONS Imagerie médicale Imagerie temps réel embarquée RV/RA Multimédia et compression Architectures matérielles existantes Conception de nouvelles architectures Conception et Extension de nouveaux Logiciels 5 thèses en cours

3 3 Introduction : architecture parallèle dédiée (multi- composants) Optimisation, génération automatique de code : –pour architecture programmable –pour architecture reconfigurable –pour architecture mixte : programmables et reconfigurables Conclusion et perspectives Plan

4 4 Processeur DSP - VLIWProcesseur RISC Reduce Instruction Set Computer Digital Signal Processor T Traitement des défauts pour l’Imagerie numérique : Étude Algorithmique et Implémentation sur Architecture Mobile

5 5 OMAP5910 ARM Shared Traffic Ctrl 75 MHz ARM Private 32 IMIF DSP Shared DSP Private System Shared EMIFF EMIFS System DMA LCD Ctrl SRAM 1.5 Mb TMS320C55x TM Core 150 MHz DSP ARM TI-Enhanced ARM925 Core 150 MHz OMAP5910 Processeur DSP Détection de visage sur système Sur Puce (SoC) Processeur RISC - ARM

6 6 Applications : traitement d’images, visions, multimédia et réalité virtuelle  applications temps réel  forte puissance de calcul Architectures parallèles dédiées : Multi-composants –processeurs (CISC, RISC, DSP, SIMD, GPU) –circuits reconfigurables (FPGA) Contexte et objectifs

7 7 Contexte : méthodologie Implantation optimisée d’applications temps réels :  Algorithme : parallélisme potentiel : parallélisme de tâches (intrinsèque) parallélisme de données,..  Architecture : parallélisme disponible  Implantation = distribution + ordonnancement + optimisation/estimation de performances + génération (code/configuration/communications) Contraintes : temps réel, prototypage rapide, hétérogénéité, différents domaines d’expertise Méthodologie et outil associé : Exploration de ces parallélismes à l'aide d'un outil (nombre de tâches, granularité,…) Adéquation

8 8 Mise en œuvre de la Méthodologie Architecture programmable (à base de processeurs) : –AAA/SynDEx Architecture à base de circuits dédiés (circuit reconfigurable – FPGA : –AAA/SynDEx-IC (Integrated Circuit) Architecture parallèle dédiée : –Objectif : explorer l'espace de conception : Définir une architecture de Processeurs Elémentaires (PE) –Topologie? –Types d'interconnexions? Définir la fonctionnalité de chaque PE –Quels calculs peuvent ils effectuer? –Quels tailles de données traitent-ils? Etre capable de prédire les performances des architectures avant implantation –Moyens utilisés Modélisations de l'algorithme et de l'architecture Outil logiciel SynDEx/SynDEx-IC éventuellement associé à d’autres outils (TRIMARAN : exploration de processeur RISC VLIW,…) Méthodologie itérative

9 9 méthodologie AAA et architectures multiprocesseurs (programmables) Opr1 Com1b Com1a Com2b Com2aCom3a Opr2 Opr3 processeur1 processeur2 processeur3 RAM D/P SAM RAM D/P RAM D RAM D RAM D/P Opr4 RAM D/P processeur4 in calc out sendreceive all.Din/calc all.Pin all.Dlin all.Din/calc all.Pcalc all.Dlcalc all.Pout all.Dlout all.Dcalc/out all.Din/calc loop endloop in_ini in_end out_ini out_end gensig filtre adap filtre sub adap visu retard coeff processor_( opr1,.) semaphores_(s_empty…) alloc_(type_in/calc...) thread_(comr1a) thread_(comr1a) pre0 (s_empty) pre0 (s_empty) loop_ sucF(s_full) send(in/calc) send(in/calc) preE(s_empty) endloop_ endthread_ endthread_ main_ main_ in_ini( ) in_ini( ) spawn_thread(com1ra) spawn_thread(com1ra) loop_ sucE(s_empty) in(in/calc) in(in/calc) preF(s_full) endloop_ in_end ( ) in_end ( ) endmain_ endmain_ endprocessor_ MACRO PROCESSEUR BIBLIOTHEQUE GENERIQUE D’EXECUTIF BIBLIOTHEQUE de macros COMPILATEUR Executable1 Executable2 src BIBLIO. De Fonctions BIBLIOTHEQUE GENERIQUE D’EXECUTIF Architectures multiprocesseurs (Graphe d’architecture) Adéquation (heuristiques distribution ordonnancement) Génération automatique d’exécutifs distribués Algorithmes (Graphe flot de données) Estimation performances all.Po1 all.Po2 all.Po4 all.D_o1o2 all.D_o2o3 all.D_o3o4 all.Po3 all.Dlo1 all.Dl2 all.Dlo4 all.Dlo3 alias.D_o3o4 ESPACE MEMOIRE RAM

10 10 méthodologie AAA et architectures multiprocesseurs (programmables) Spécification de l’algorithme Génération de code Compilation & tests Spécification de l’architecture Distribution ordonnancement automatique Prédiction de performances Distribution (opérations sur opérateurs + comm. + mém.) Ordonnancement (ordre des opérations sur opérateurs) Génération de code : inclus les communications caractérisation

11 11 Méthodologie AAA et architectures multiprocesseurs (programmables)

12 12 Méthodologie AAA et architectures multiprocesseurs (programmables) o1 o2 o3 o4 o2 o3 opr1c1C2Opr2 R SR o1 opr1c1C2Opr2 R SR o1 o2 sr o3 sr 2) o1 sur opr1, candidats = o2 et o3 o2/opr1 ou opr2 :o3/opr1 ou opr2 : o3 sr o2 opr1c1C2Opr2 R SR o1 3) o2/opr1, cand:o3/opr1 ou opr2 o2 opr1c1C2Opr2 R SR o1 o3 sr rs o4 4) o3/opr2, cand: o4/opr1 ou opr2 o2 o3 L’optimisation

13 13 Méthodologie AAA et architectures multiprocesseurs (programmables) processor_( opr1,.) semaphores_(s_empty…) alloc_(type_in/calc...) thread_(comr1a) thread_(comr1a) pre0 (s_empty) pre0 (s_empty) loop_ sucF(s_full) send(in/calc) send(in/calc) preE(s_empty) endloop_ endthread_ endthread_ main_ main_ in_ini( ) in_ini( ) spawn_thread(com1ra) spawn_thread(com1ra) loop_ sucE(s_empty) in(in/calc) in(in/calc) preF(s_full) endloop_ in_end ( ) in_end ( ) endmain_ endmain_ endprocessor_ MACRO PROCESSEUR BIBLIOTHEQUE GENERIQUE D’EXECUTIF indépendante de l’architecture (syndex.m4x) BIBLIOTHEQUE de macros spécifiques à l’application (nomAppli.m4x) COMPILATEUR Executable1 Executable2 src BIBLIO. De Fonctions spécifiques à l’application (fonctions.c ou.o) BIBLIOTHEQUE GENERIQUE D’EXECUTIF spécifique à l’architecture (Unix.m4x,Tcp.m4x Can.m4x, 555.m4x) Génération automatique du code

14 14 Architecture reconfigurable ( Cible FPGA) : Modèle algorithme (1/2) gensig filtre adap filtre sub adap visu coeff Hierarchie + Conditionnement Hierarchie retard Graphe Factorisé Conditionné de Dépendance de Données (GFCDD) capture écran d’un GFCDD dans SynDEx

15 15 Vect diff. fork P [3] join Mat visu [3][3] [1][3] visu P P P [3] [3][3] [3] [1] Vect Mat [3] x x x + + X+ fork iter. init [3] [1] X+ fork iter. init [3] [1] fork join [1] [3] [3][3] Vect Mat visu [3] FF1 FF2 Architecture reconfigurable ( Cible FPGA) : Modèle algorithme (2/2)

16 16 Optimisation du circuit (1/5) ×3 P F D R A B J Recherche d’une défactorisation partielle de la spécification algorithmique respectant les contraintes surface/latence Réduit Surface Augmente Latence A B PPR t 1) 3 fois P (temporellement) ×3 P Xs D R A B Ms A B P P P R Augmente Surface Réduit Latence ×3 P Xp D R A B Mp P t2t2 t1t1 X m 2) 3 fois P (spatialement) graphe d’algorithme : 2 types d’implantations :

17 17 Optimisation du circuit (2/4) FF1 FF2 FF4FF5 FF3 Quelle frontière défactoriser ? ×10 C1 FA J ×20 C2 F J R ×5 C5 F J ×4 C6 F J ×2 C7 F J C3C4 F

18 18 Optimisation du circuit (3/5) De combien la défactoriser ? FF1 FF2 FF4FF5 FF3 FF2’ FF1 FF4FF5 FF3 FF2’’ Défactorisé par 2 : Défactorisé par 3 : FF2’ FF4FF5 FF2’’’ FF2’’ FF1 FF3 Quelle frontière défactoriser ? Pb. NP difficile recherche par heuristiques (gloutonnes et de recuit simulé) flexibilité

19 19 Heuristique (4/5) Entrée : graph G FCDD, contrainte temporelle latence C t Sortie : graph optimisé  FF optimisées G’ FCDD := G FCDD Tant que Latence(G’ FCDD )>C: Pour chaque f Є chemin critique CC de G FCDD : Calculer défactorisation optimisée de f : d ff (f,CC) Calculer pression de défactorisation :  (f,d ff (f)) G’ FCDD := graphe où f qui à le  max. est défactorisé de d ff (f,CC) Défactorisation optimisée d ff (f,CC) : dff := 1 ; G’ FCDD :=G FCDD Tant que (L(CC)  C t et dff  d MAX (f) ): dff := dff+1 G’ FCDD := G’ FCDD défactorisé de dff Retourne dff Δsurface(f, d ff, d MAX (f)) L(f, d MAX (f)) - max(L(f, d ff ),C t ) Pression de défactorisation  (f,d ff )=

20 20 Optimisation du circuit (5/5) X+ fork iter. [3] [1] fork join [3] [3][3] Vect Mat visu [3] FF2 FF1 SPFC FPSC SPFC FPSC SPFC FPSC FF2FF1 FF interface Consommateur côté lent (S) Consommateur côté rapide (F) Producteur Côté lent (S) Producteur côté rapide (F) SPFC FPSC Utilisé aussi pour : Synthèse chemin contrôle Interfaçage des opérations de types IP (opérations non combinatoires) Heuristiques basées sur graphe de voisinage : init Algorithme : Déduction du graphe voisinage :

21 21 Génération VHDL chemin données chemin contrôle outils de Synthèse Adéquation heuristique graphe voisinage Estimation performances config. FPGA VHDL Génération de VHDL Architecture caracteristiques FPGA Algorithmes GFCDD Règles de transformations

22 22 Génération VHDL chemin données chemin contrôle outils de Synthèse Adéquation heuristique graphe voisinage Estimation performances config. FPGA VHDL Circuit reconfigurable (Cible FPGA) : Bilan Architecture caracteristiques FPGA Algorithmes GFCDD Optimisation compromis surface/latence des boucles Synthèse du chemin de contrôle et chemin de données Génération de code VHDL Développement du logiciel SynDEx-IC (ESIEE) CATURE SYNDEXIC

23 23 Contexte : nouvelles architectures hétérogènes (SoC/SoPC) Multiprocesseurs on a Chip : OMAP, DaVinci, CELL 1x PowerPC (64bits), 8 x Synergistic Processor Element (128bits SIMD)

24 24 I.Cible CIRCUITS FPGA II.Cible ARCHITECTURES MIXTES Objectifs Architectures multiprocesseurs (Graphe d’architecture) Adéquation (heuristiques Génération automatique d’exécutifs distribués Algorithmes (Graphe flot de données) Estimation performances Architectures parallèles Dédiés (dites mixtes) (reconfigurable + programmable) Il faut étendre : modèle algorithmes modèle architecture modèle implantation Développer de nouvelles : heuristiques d’optimisation techniques d’estimation perf. techniques de génération VHDL communications mixtes Implémentation logiciel : SynDEx-IC Génération automatique circuit (VHDL) Estimation performances Adéquation (heuristiques pour circuits)

25 25 Contexte : nouvelles architectures hétérogènes (SoC/SoPC) Multiprocesseurs on a Chip : OMAP, DaVinci, CELL {FPGA + Cœur(s) Processeur(s)} on a Chip bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire

26 26 Contexte : nouvelles architectures hétérogènes (SoC/SoPC) Multiprocesseurs on a Chip : OMAP, DaVinci, CELL {FPGA + Cœur(s) Processeur(s)} on a Chip Calc1 bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire Calc2 bloc « calcul » élémentaire

27 27 Contexte : nouvelles architectures hétérogènes (SoC/SoPC) Multiprocesseurs on a Chip : OMAP, DaVinci, CELL {FPGA + Cœur(s) Processeur(s)} on a Chip Calc1 Calc2

28 28 Contexte : nouvelles architectures hétérogènes (SoC/SoPC) Multiprocesseurs on a Chip : OMAP, DaVinci, CELL {FPGA + Cœur(s) Processeur(s)} on a Chip Exemples : –Cœurs en « dur » Xilinx Virtex II Pro (2 PowerPC_ Mhz + FPGA) Excalibur (1xARM MHz + FPGA 1Mportes) –Cœurs « logiciel » NIOS (Altera) Microblaze, PicoBlaze (Xilinx) IP libres (opencore) ou commerciales

29 29 Circuit reconfigurable (FPGA) : Modèle d’architecture Modéliser FPGA pour : exploiter parallélisme intra-composant du FPGA, définir l’allocation modéliser les communications en mixte, prédire les performances  définir nouvelles heuristiques d’optimisation FPGA : Ensemble de blocs élémentaires configurables, de registres (mémoires), réseaux d’interconnexions configurables Sous-ensemble configuré forme un opérateur dégénéré (  opérateur exécute séquentiellement des opérations de calculs) dans AAA, FPGA = un seul opérateur dégénéré (opr capable d’exécuter un seul type d’opération du graphe d’algorithme) pb. : trop restrictif car FPGA = plusieurs opérateurs dégénérés

30 30 Nouveaux sommets (modèle architecture) : 1 bloc non configuré = 1 opérateur élémentaire configurable (Opre conf) capable d’exécuter une seule opération élémentaire (AND, OR, LUT…) FPGA initialement décrit par le graphe : G FPGA =(S OPRe  S reg,R) Opre Opre’ (idem registres S reg ) Ensemble de blocs configurés + registres + réseaux = 1 opérateur dégénéré (Opr d : capable d’exécuter un seul type d’opn de Gal) configuration Circuit reconfigurable (FPGA) : Modèle d’architecture

31 31 Circuit reconfigurable(FPGA) : Architecture formalisation Graphe algorithme Gal=(O,D) Graphe architecture Gar = (S,A) avec S=S opr  S com  S mem  S bus  S oprd Implantions de Gal sur Gar : (Gal, Gar) (Gal’,Gar’) G FPGA =(S OPRe  S reg,R)  G FPGA’ =(S’ OPRe  S’ reg,R’) (configuration) avec R’  R et S’ OPRe  S’ reg  S OPRe  S reg (sous-graphe) FPGA configuré = (S OprD,R’) et Opr d   (G FPGA) ) Nouvelles / modifs applications : Configuration FPGA  : S OprD  S OPRe Contrainte placement : O   (S cal ) (avec S cal = S opr  S com  S oprd ) Distribution  :O  S cal, … R routage  R distribution  R communication  R ordonnancement  R conf

32 32 Circuit reconfigurable (FPGA) : Modèle d’architecture OPRe R Modélisation d’un « bloc logique » : opérateur élémentaire OPRe : bloc « calcul » élémentaire bloc logique élémentaire bloc logique élémentaire bloc « calcul » élémentaire bloc logique élémentaire bloc logique élémentaire bloc « calcul » élémentaire bloc logique élémentaire bloc logique élémentaire

33 33 Circuit reconfigurable (FPGA) : Modèle d’architecture OPRe R R R R R R R R R R R OPRd_A R OPRe R R R R R OPRd_C R OPRe R R R R R OPRd_B R OPRe R R R R R OPRd_D R OPRd_A Exemple graphe d’implantation combinatoire (sans boucle et répétition) :

34 34 Circuit reconfigurable FPGA : Modèle d’architecture OPRd1 OPRd2 R OPRe R R R R R R R R R R R R R R Caractérisation : Nombre d’opérateurs élémentaires configurables disponibles dans un FPGA card (S opre ) Nombre d’opérateurs élémentaire pour réaliser un opérateur dégénéré card (  (O oprd )) Latence d’un opérateur dégénéré  (O i,O oprd )

35 35 Génération VHDL chemin données chemin contrôle outils de Synthèse Adéquation heuristique graphe voisinage Estimation performances config. FPGA VHDL Circuit reconfigurable (FPGA) : Bilan Architectures multiprocesseurs (Graphe d’architecture) Adéquation (heuristiques distribution & ordonnancement) Génération automatique d’exécutifs distribués Estimation performances Architecture caracteristiques FPGA Algorithmes GFCDD SynDEx INRIA SynDEx-IC ESIEE

36 36 Génération d’exécutifs distribués Génération VHDL synthétisable synthèse communications Cible architectures parallèles dédiées (mixtes) Heuristiques pour programmable Heuristiques pour circuits Adéquation mixte Algorithmes GFCDD Composants reconfigurables Composants programmables Architectures Parallèles dédiées (modèle unique)

37 37 Architectures parallèles dédiées : Modèle d’implantation Un FPGA renferme plusieurs opérateurs dégénérés = parallélisme disponible « intra » Objectif : distribuer les opérations sur les opérateurs (inclus chaque opérateur dégénéré)  Ajout de communications entre opérateurs et opérateurs dégénérés… entre opérateurs dégénérés = arcs (pas de SAM)

38 38 Architectures parallèles dédiés : Modèle d’implantation Communicateur : exécute séquentiellement les opérations de communication Implantation FPGA des communicateurs  nouveau type de sommets (décrire l’allocation) Induit un ordre partiel d’exécution entre opérations distribuées sur le FPGA (mais pas forcément ordonnancées !)  Extension modèle d’implantation (prédiction de performances)

39 39 Architectures parallèles dédiées : Communications SAM o4 opr1c1C Oprd1 R S o1 o2 sr o3 sr sr sr sr sr o5 o1 o2 o3 o4 o5 FPGA Processeur Algorithme : Graphe d’implantation : (sans extension des modèles,  O2,O3, O4 de même type) opr1c1C Oprd1 R S Architecture :

40 40 Architectures parallèles dédiées : Communications SAM o1 o2 o3 o4 o5 Algorithme : Graphe d’implantation : (O2  O3  O4 devient possible) opr1c1C F R S Architecture : o4 opr1c1C Oprd1 R S o1 o2 sr o3 Oprd3 Oprd2 sr sr sr sr sr o5 FPGA Processeur

41 41 Architectures parallèles dédiées : Communications RAM signal vidéo RS232 JTAG DCR Device Control Register Bus OPB On-chip Peripheral Bus (100 MHz) SOBEL _IPIF DRAM (512 M) VGA Interface Interrupt controller I2C UART PLB2OPB Bridge PLB2DCR Bridge PowerPC 405 RISC CPU CORE VDEC JTAG_PPC PLB Processor Local Bus (100 MHz) PPC405 C Oprd1 R S Oprd3 Oprd2 C S Acqui. Sobel Affichage haut niveau cpy Application TR de TI sur Xilinx Virtex II Pro

42 42 Architectures parallèles dédiées : Conclusion Bilan : Modélisation architecture, implantation, caractérisation Définition d’IP génériques de communication Validation « manuelle » en cours Perspectives : Implantation dans outils SynDEx-IC Étude d’heuristiques pour automatiser le partitionnement logiciel (programmable) / matériel (reconfigurable)

43 43 Annexes

44 44 I - Cible FPGA : Optimisation circuit (3/4) Optimisation(): Tant que TC: défac(f) := défac(f)+1; T-max(T’,C) ΔSurface Rentabilité =

45 45 Notion de vecteur d’état : X1X2X3XnX1X2X3Xn Valeurs des défacteurs des ‘n’ frontières du graphe d’algorithme modélisé …. Trouver la solution initiale du système - S 0 Trouver la valeur initiale du paramètre de contrôle - t 0  60 faire Tant que N  60 faire  iter faire Tant que M  iter faire X(J)=V(X(I))- X(J) est la solution voisine de X(I); X(J)=V(X(I))- X(J) est la solution voisine de X(I);  F=F(X(J))-F(X(I)) ;  F=F(X(J))-F(X(I)) ; Si  F < 0 alors Si  F < 0 alors X(I) = X(J); X(I) = X(J); Sinon Sinon Si ( -exp(  F/tk)) > Random(0,1) then Si ( -exp(  F/tk)) > Random(0,1) then X(I) = X(J); X(I) = X(J); Sinon Sinon Revenir à X(I): Revenir à X(I): iter (k+1) =1.01*iter k ; iter (k+1) =1.01*iter k ; t (k+1) = 0.9*t k ; t (k+1) = 0.9*t k ; CHOIX ALEATOIRE F(X(I)): coût de X(I) F(X(J)): coût deX(J) S, si T ctr > t F(X) = S + k.(t - T ctr ), si T ctr  t t – latence après défactorisation S – surface consommée après défactorisation X1 = 1 X2 = 1 X3 = 2 X4 = 1 X1 = 1 X2 = 3 X3 = 2 X4 = 1 I - Cible FPGA : Optimisation circuit : recuit simulé

46 46 o1 o2 o3 o4 o2 o3 opr1c1C2Opr2 R SR o1 opr1c1C2Opr2 R SR o1 o2 sr o3 sr 2) o1 sur opr2, candidats = o2 et o3 o2/opr1 ou opr2 :o3/opr1 ou opr2 : o3 sr o2 opr1c1C2Opr2 R SR o1 3) o2/opr1, cand:o3/opr1 ou opr2 o2 opr1c1C2Opr2 R SR o1 o3 sr rs o4 4) o3/opr2, cand: o4/opr1 ou opr2 o2 o3

47 47


Télécharger ppt "1 Méthodologie de conception d’architectures parallèles dédiées Mohamed Akil, Thierry Grandpierre, Eva Dokadalova, Laurent Perroton Université Paris-Est,"

Présentations similaires


Annonces Google