1 / 59

Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles. RAULET Mickaël 18 mai 2005 Mitsubishi ITE - Equipe Software Radio IETR/INSA - Groupe Image INRIA – Groupe AOSTE. Plan. Introduction Objectifs Problématique SynDEx Minimisation mémoire

luke
Download Presentation

Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles RAULET Mickaël 18 mai 2005 Mitsubishi ITE - Equipe Software Radio IETR/INSA - Groupe Image INRIA – Groupe AOSTE

  2. Plan • Introduction • Objectifs • Problématique • SynDEx • Minimisation mémoire • Applications • Conclusions perspectives

  3. Introduction : Objectifs • Développement d’une méthodologie de prototypage rapide pour architectures complexes • Diminution du temps de développement pour le portage sur une cible multi-composants (PC, DSP et/ou FPGA) • Développement d’applications dans le domaine de l’embarqué (téléphonie mobile, décodeurs de salons) • Réalisation de démonstrateurs

  4. Prototypage rapided’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuées hétérogènes Méthodologies pour passer rapidement (automatiquement) d’une description de haut niveau de l’application à une implantation exécutable Méthodologie AAA (Adéquation Algorithme Architecture) Introduction : Problématique

  5. Prototypage rapide d’applications de traitement du signal et imagespour systèmes embarqués temps réelsur architectures distribuées hétérogènes Applications fortement orientées données Introduction : Problématique

  6. Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuées hétérogènes Minimisation des ressources et exécution “suffisamment” rapide Introduction : Problématique

  7. Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuéeshétérogènes Distribution/ordonnancement des traitements Introduction : Problématique

  8. Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuées hétérogènes Mise en oeuvre conjointe de composants cible variés Travaux essentiellement sur cibles multi-composants Introduction : Problématique

  9. Introduction : Problématique • Systèmes multi-composants • Systèmes embarqués • Limitation mémoire • Traitement du signal, télécommunications et vidéo • Consommation mémoire importante • Nécessité d’une optimisation mémoire • Nécessité d’une méthodologie adaptée

  10. SynDEx : Présentation • SynDEx : Synchronized Distributed Executives • Logiciel de CAO niveau système pour applications distribuées temps réel et embarquées • INRIA Rocquencourt projet AOSTE (Y. Sorel) • Fonctionnalités • Partitionnement/ordonnancement automatiques d’une application sur une architecture cible • Algorithme glouton basée sur une minimisation de la latence (optimisation orientée vitesse) • Génération d’un exécutif distribué indépendant de la cible

  11. SynDEx : Caractéristiques • Approche globale • Modèle unifié de graphes • Algorithme : parallélisme potentiel • Architecture : parallélisme disponible • Implantations : transformations de graphes • Adéquation • Choix d’une implantation optimisée • But • Génération automatique d’exécutifs • taillés sur mesure aux applications, • basés sur un ordonnancement hors-ligne des calculs et des communications

  12. SynDEx : Caractéristiques Graphe Temporel root FIFOs DSP1 Graphe d’Architecture Adéquation Graphe d’ Algorithme Opéra-tions Opéra-tions - Niveaux hiérarchiques - Conditionnement- Répétition www.syndex.org

  13. SynDEx : Caractéristiques • Exécutif supporte : • l’exécution de l’algorithme sur l’architecture • l’ordonnancement, les communications et les synchronisations • Taillé sur mesure : • Minimisation du surcoût spatial et temporel • Implantation optimisée (latence) • Sans inter-blocage, garantie ordre total du graphe d’algorithme • Basé sur macro-code • Indépendant du processeur • Supportant des architectures hétérogènes, portabilité • Basé sur des bibliothèques génériques dépendantes • des processeurs (DSP, PC, FPGA…) • des communicateurs (SAM=FIFO, RAM)

  14. Plan • Introduction • SynDEx • Présentation • Caractéristiques • Chaîne de développement • Minimisation mémoire • Applications • Conclusions perspectives

  15. Algorithme Architecture Adéquation • Télécommunication • UMTS • MC-CDMA • Vidéo • LAR • MPEG4 • Plate-formes • Sundance • Pentek • Composant • DSP • FPGA Exécutifs Génériques Bibliothèques Exécutifs Spécifiques SynDEx : Chaîne de développement • Prototypage rapide et domaine d’applications

  16. PC (Pentium) Personal Computer PCI Embedded Motherboard: SMT320 DSP2 (TMS320C6416) PCI (BUS_PCI ) SDBa SDBb CP0 CP1 PCI SMT361 Bus_6 (CP) FPGA1 (Virtex) SDBa SDBb CP0 CP1 CP2 Bus_3 (SDB) CP3 SMT358 Bus_1 (SDB) IN (VID_IN) PALtoYUV (BT829) DSP3 (TMS320C6414) VID_IN SDBa SDBb OUT (VID_OUT) YUVtoPAL (BT864a) VID_IN VID_OUT VID_OUT SMT319 SynDEx : Chaîne de développement • Exemple de topologie : Sundance Module DSP Module FPGA Framegrabber  Plusieurs types de processeurs et de communicateurs

  17. C62x.m4x SDB.m4x ( C 6 2x , C64x ) , Fpga C64x.m4x CP.m4x ( C 62x , C64x ) , Fpga Pentium.m4x BUS_PCI_RAM.m4x ( Pentium , C62x , C64x ) Fpga.m4x BUS_PCI_SAM.m4x ( Pentium , C62x , C64x ) TCP.m4x ( Pentium , C62x ) Bifo.m4x (C62x, Fpga ) Bifo_DMA.m4x (C62x, Fpga ) SynDEx : Chaîne de développement • Arborescence des bibliothèques Génération de code Dépendant de Dépendant de Générique l’architecture l’application SynDEx.m4x ApplicationName.m4x Dépendant du Dépendant du Type de media Type de processeur

  18. SynDEx : Chaîne de développement • Développements de nombreuses bibliothèques • Vérification fonctionnelle • Ajout de fonction d’affichage de l’image directement sous SynDEx • Display générique • Webcam • Vérification et exploration architecturale  TCP • facilitant la vérification fonctionnelle de l’application • séparation de codeur-décodeur • possibilité de décrire des architectures complexes (multi-PC) • plateformes de test et de vérification

  19. Plan • Introduction • SynDEx • Minimisation mémoire • Objectifs • Principes d’allocation • Mono-composant • Multi-composants • Applications • Conclusions perspectives

  20. Minimisation mémoire : Objectifs Algorithme Architecture Adéquation Génération de Code Minimisation des allocations de buffers

  21. Minimisation mémoire : Principes d’allocation allocD allocD allocD allocD  Une allocation (buffer) allouée pour chaque sortie

  22. all.Po1 all.Dlo1 all.Dlo1 all.D_o1o2 all.D_o1o2 all.Po2 all.Dl2 all.Dlo2 all.Po2 all.Po3 all.Po1 all.Po4 all.D_o2o3 all.D_o2o3 all.Po3 all.Dlo3 all.D_o3o4 all.Dlo3 all.D_o3o4 all.Dlo4 all.Po4 all.Dlo4 Minimisation mémoire : Mono-composant Ram D/P ESPACE MEMOIRE RAM données données communiquées locales programmes opr1 o1 o2 o3 all.D_o3o4 o4

  23. Légende f Td Tf b a e Durée d ’allocation du registre c Graphe d’intervalles d Tri par ordre croissant des dates de début b d a f c e Graphe d ’intervalles Minimisation mémoire : Mono-composant • Coloriage de graphe • Approche classique • minimisation des buffers (« registre ») 3 couleurs = 3 buffers • Méthode gloutonne • Minimum de couleur • Buffers de même type et de même taille

  24. Minimisation mémoire : Mono-composant • Autre Méthode mono-composant • Minimisation « tétris » • Basée également sur la durée de vie des buffers • Basée uniquement sur des buffers de même type Minimum 6 couleurs = 6 registres

  25. Plan • Introduction • SynDEx • Minimisation mémoire • Objectifs • Principes d’allocation • Mono-composant • Multi-composants • Applications • Conclusions perspectives

  26. Minimisation mémoire : Multi-composants • Considération des buffers communiqués inter-processeurs • Diminution accrue de l’espace mémoire • Durée de vie des buffers communiqués liée au modèle de synchronisation de SynDEx

  27. allocP calc1 allocDl in out allocP calc2 allocDl allocD allocD allocD calc1 send receive allocD in out allocD allocD allocD calc2 send receive allocD allocP allocP allocDl allocDl Minimisation mémoire : Multi-composants • Distribution/ordonnancement processeur1 processeur2 Opr1 RAM D/P Com1a Com2a RAM D/P Opr2 SAM

  28. in_ini out_ini all.Pin loop loop loop all.Pcalc loop all.Dlin all.Dlcalc all.Din/calc all.Din/calc all.Din/calc all.Dcalc/out all.Pout all.Dlout endloop endloop endloop endloop in_end out_end Minimisation mémoire : Multi-composants processeur1 processeur2 Opr1 RAM D/P Comr1a Comr2a RAM D/P Opr2 SAM in send receive calc out

  29. Suc-E in Pre-F Suc-F send s_empty Suc-E Pre-E Suc-E Pre-F Suc-F in Pre-F s_full Suc-F send Pre-E Pre-E Minimisation mémoire : Multi-composants • Schéma de principe dans SynDEx processeur1 Opr1 RAM D/P Comr1a loop loop Durée de vie du buffer sur un cycle in Pas de réutilisation possible des buffers communiqués inter-processeurs send endloop endloop

  30. loop loop in1 Pre-F Suc-E s_empty Suc-F send Suc-F Pre-E Suc-E Pre-F s_full Pre-E Calcul endloop endloop Minimisation mémoire : Multi-composants processeur1 Opr1 RAM D/P Comr1a loop loop Durée de vie du buffer minimale in1 send Calcul Communications bloquantes Modèle SynDEx endloop endloop

  31. loop loop in1 Pre-F Suc-E s_empty Suc-F send Suc-F Calcul1 Pre-E Pre-F s_full Pre-E Suc-E Calcul2 endloop endloop Minimisation mémoire : Multi-composants processeur1 Opr1 RAM D/P Comr1a loop loop Durée de vie du buffer = adéquation in1 send Calcul Communications comme sur le graphe temporel endloop endloop

  32. Minimisation mémoire : Multi-composants • Solution : • Modifications du modèle SynDEx • Sans changement de l’ordre total • Avec prise en compte des temps de communications • Sans changement de la latence • Optimisations de la mémoire avec un gain important

  33. Minimisation mémoire : Multi-composants • Principe de la réutilisation

  34. Minimisation mémoire :Conclusion • Minimisation mémoire mono-composant efficace • Minimisation « registre » • Minimisation « tétris » • Minimisation mémoire multi-composants • Prise en compte des buffers communiqués inter-processeurs • Optimisation supplémentaire de la génération de code • Opérations implicites générant des « recopies » de buffers à buffers : • Explode – implode • Conditionnement • Retard ou mémoire

  35. Plan • Introduction • SynDEx • Minimisation mémoire • Applications • UMTS • MPEG-4 • LAR • Conclusions perspectives

  36. Applications : UMTS FDD • Troisième génération de téléphone portable • Caractéristiques • Débits maximum 2 Mbits/sec • Temps réel 10ms par trame • 1 trame = 15 slots

  37. Applications : UMTS (Tx) • init • trame par trame trame • slot par slot init slot

  38. Applications : UMTS • Minimisation UMTS • Portage sur un C6203 à 512 ko de RAM • Automatique  Mieux que manuellement • Gain de 7  Très proche d’un gain attendu de 7.5 • Minimisation de toutes les recopies  Diminution du temps

  39. Applications : MPEG-4 • Successeur de MPEG-2 • Norme composée de sous-parties • Partie 2 = Vidéo • Norme complexe (boîte à outils) • Scène composée d’objets • Images de synthèse • Images naturelles • …

  40. Application : Décodeur MPEG-4 • Décodeur images I (Intra) existant : • Description bas niveau  Granularité fine • 3 niveaux d’abstraction de description • Niveau image  haut niveau • Image I, P et B • Niveau macrobloc  niveau intermédiaire • 16 * 16 pixels • Niveau bloc  bas niveau • 6 blocs dans un macrobloc • 4 blocs de luminance • 2 blocs de chrominance

  41. Description niveau Image Images I Images P Images B Base des descriptions plus détaillées Description niveau intermédiaire Description bas niveau Séquence Vidéo Image P Image I Image B Affichage Image Application : Décodeur MPEG-4 Description gros grain

  42. Vop_coding_type = 4 Vop_coding_type = 1 Vop_coding_type = 0 Image I Image P Image B Application : Décodeur MPEG-4Description gros grain Récupération de l’image dans le flux affichage Choix du type de décodage d’image Mémorisation image

  43. Application : Décodeur MPEG-4Description gros grain • Description de haut niveau • Gros grain • Résultats sur DSP (C6416 à 400 MHz) • Extension de ces résultats sur DSP à 1GHz • Temps moyen avec communications • QCIF : 5 ms • CIF : 12 ms • 640*480 : 30 ms

  44. Application : Décodeur MPEG-4Description grain fin • Décodeur bas niveau  grain fin • Granularité du décodeur : • VLC inverse (VLC = codage à longueur variable) • Scan inverse (scan = balayage) • DCT inverse (DCT = transformée discrète en cosinus) • … • Possibilité de parallélisme • Basée sur • Description haut niveau • Description images I bas niveau

  45. Séquence Vidéo Description haut niveau Image I Image P Niveau macrobloc Macrobloc I Macrobloc P MB Codé MB non codé MB INTRA I MB INTRA P MB INTRAQ P MB INTER MB INTERQ MB INTER4V VLC inverse MB Blocs Luminance I Bloc Cb I Bloc Cr I Interpolation MB Blocs Luminance P Bloc Cb P Bloc Cr P Blocs Luminance non codés Bloc Cb Non codé Bloc Cr Non codé Niveau bloc X1 I X2 I X3 I X4 I XCb I XCr I X1P X2 P X3 P X4 P XCb P XCr P Description Images I bas niveau Description Images P bas niveau cbp Xn = 0 cbp Xn = 1 Application : Décodeur MPEG-4Description grain fin • Schéma hiérachiques :

  46. Complexité SynDEx du décodeur bas niveau Nombre d’opérations proportionnel au nombre de macroblocs • Temps pour générer l’exécutif  (QCIF > 12 h !) • Longueur de l’exécutif  Nombre d’opérations  Description intermédiaire niveau macrobloc Application : Décodeur MPEG-4Description grain fin

  47. Application : Décodeur MPEG-4Description gros grain • Décodeur MPEG-4 sur 2 processeurs : • description de haut niveau (352*288) • Gain de 54 recopies • Minimisation mémoire : • Gain de 1,6 (Granularité de l’application trop forte)

  48. Application : Décodeur MPEG-4Description gros grain • Haut niveau • Niveau intermédiaire • Bas niveau

  49. Applications : LAR • Méthode développé au sein du laboratoire Image • Méthode basée contenu • Méthode hiérarchique • Images fixes • Fort taux de compression

  50. Application : CODEC LAR

More Related