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

Méthodologie de conception d’architectures parallèles dédiées

Présentations similaires


Présentation au sujet: "Méthodologie de conception d’architectures parallèles dédiées"— Transcription de la présentation:

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

3 Plan 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

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

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

6 Contexte et objectifs 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)

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 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 méthodologie AAA et architectures multiprocesseurs (programmables)
gensig filtre adap filtre sub adap visu retard coeff 1 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 1 2 3 4 Opr1 Com1b Com1a Com2b Com2a Com3a Opr2 Opr3 processeur1 processeur2 processeur3 RAM D/P SAM D Opr4 processeur4 2 in calc out send receive all.Din/calc all.Pin all.Dlin all.Pcalc all.Dlcalc all.Pout all.Dlout all.Dcalc/out loop endloop in_ini in_end out_ini out_end 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 3 semaphores_(s_empty…) processor_( opr1, .) alloc_(type_in/calc...) thread_(comr1a) loop_ pre0 (s_empty) sucF(s_full) send(in/calc) preE(s_empty) endthread_ endloop_ main_ in_ini( ) spawn_thread(com1ra) sucE(s_empty) in(in/calc) preF(s_full) in_end ( ) endmain_ endprocessor_ MACRO PROCESSEUR BIBLIOTHEQUE GENERIQUE D’EXECUTIF de macros COMPILATEUR Executable1 Executable2 src BIBLIO. De Fonctions 4

10 méthodologie AAA et architectures multiprocesseurs (programmables)
Spécification de l’algorithme Distribution ordonnancement automatique Génération de code Compilation & tests Spécification de l’architecture Prédiction de performances caractérisation 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

11 Méthodologie AAA et architectures multiprocesseurs (programmables)

12 Méthodologie AAA et architectures multiprocesseurs (programmables)
L’optimisation 2) o1 sur opr1, candidats = o2 et o3 o2/opr1 ou opr2 : o3/opr1 ou opr2 : opr1 R c1 S C2 R Opr2 opr1 R c1 S C2 R Opr2 o1 o1 o2 o2 o2 s r o3 o3 o3 s r o2 opr1 c1 C2 Opr2 R S o1 3) o2/opr1, cand:o3/opr1 ou opr2 o2 opr1 c1 C2 Opr2 R S o1 o3 s r o4 4) o3/opr2, cand: o4/opr1 ou opr2 o3 s r o3

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

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

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

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

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

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

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

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

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

22 caracteristiques FPGA
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) Adéquation heuristique graphe voisinage Estimation performances CATURE SYNDEXIC Génération VHDL chemin données chemin contrôle VHDL outils de Synthèse config. FPGA

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 Architectures parallèles
Objectifs Architectures parallèles Dédiés (dites mixtes) (reconfigurable + programmable) Algorithmes (Graphe flot de données) Architectures multiprocesseurs (Graphe d’architecture) 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 Adéquation (heuristiques Estimation performances Adéquation (heuristiques pour circuits) Estimation performances Génération automatique d’exécutifs distribués Génération automatique circuit (VHDL) Cible CIRCUITS FPGA Cible ARCHITECTURES MIXTES

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

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 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 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 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 Circuit reconfigurable (FPGA) : Modèle d’architecture
Nouveaux sommets (modèle architecture) : 1 bloc non configuré = 1 opérateur élémentaire configurable (Opreconf) capable d’exécuter une seule opération élémentaire (AND, OR, LUT…) FPGA initialement décrit par le graphe : GFPGA=(SOPReSreg,R) Opre Opre’ (idem registres Sreg) Ensemble de blocs configurés + registres + réseaux = 1 opérateur dégénéré (Oprd : capable d’exécuter un seul type d’opn de Gal) configuration

31 Circuit reconfigurable(FPGA) : Architecture formalisation
Graphe algorithme Gal=(O,D) Graphe architecture Gar = (S,A) avec S=SoprScom  Smem  Sbus Soprd Implantions de Gal sur Gar : (Gal, Gar) (Gal’,Gar’) GFPGA=(SOPReSreg,R)  GFPGA’=(S’OPReS’reg,R’) (configuration) avec R’ R et S’OPReS’reg  SOPReSreg (sous-graphe) FPGAconfiguré = (SOprD ,R’) et Oprd  (GFPGA) ) Nouvelles / modifs applications : Configuration FPGA  : SOprD  SOPRe Contrainte placement : O  (Scal) (avec Scal = SoprScom Soprd ) Distribution  :O  Scal , Rroutage  Rdistribution  Rcommunication  Rordonnancement  Rconf

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

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

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

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

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

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 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 Architectures parallèles dédiées : Communications SAM
Algorithme : FPGA o1 o2 o3 o4 o5 opr1 R c1 S C Oprd1 Processeur o1 o2 s r Architecture : s r s r opr1 R c1 S C Oprd1 r s o3 r s o4 Graphe d’implantation : (sans extension des modèles, O2,O3, O4 de même type) r s o5

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

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

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 Annexes

44 I - Cible FPGA : Optimisation circuit (3/4)
Tant que T<C: (T calculée, C contrainte Pour chaque f Є chemin critique: Déterminer défactorisation optimale; Déterminer rentabilité; Défactoriser la frontière la plus rentable; Fin Tant que Défactorisation optimale(f): défac(f):=1; Tant que f Є chemin critique & T>C: défac(f) := défac(f)+1; T-max(T’,C) Rentabilité = ΔSurface

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

46 2) o1 sur opr2, candidats = o2 et o3
o2/opr1 ou opr2 : o3/opr1 ou opr2 : opr1 R c1 S C2 R Opr2 opr1 R c1 S C2 R Opr2 o1 o1 o2 o2 o2 s r o3 o3 o3 s r o2 opr1 c1 C2 Opr2 R S o1 3) o2/opr1, cand:o3/opr1 ou opr2 o2 opr1 c1 C2 Opr2 R S o1 o3 s r o4 4) o3/opr2, cand: o4/opr1 ou opr2 o3 s r o3

47


Télécharger ppt "Méthodologie de conception d’architectures parallèles dédiées"

Présentations similaires


Annonces Google