RAULET Mickaël 18 mai 2006 Mitsubishi ITE - Equipe Software Radio

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Ma surprise du Zoo.
Fabrice Lauri, François Charpillet, Daniel Szer
Licence pro MPCQ : Cours
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Les systèmes d’informations documentaires et les ENT Éléments de cahier des charges pour les projets nouveaux.
Évaluation des requêtes relationnelles
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Les numéros 70 –
Les numéros
Les identités remarquables
Approche par composant : Un cadre pour l’ingénierie de la commande
Codage par transformées(1)
Analyse fonctionnelle
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Programmation graphique du processeur CELL : Faciliter la programmation T. Grandpierre.
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Exercice Trame Ethernet
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Institut TELECOM / TELECOM Bretagne
Application des algorithmes génétiques
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
Présentation générale
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Le Concours de Conaissance Francais I novembre 2012.
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Titre : Implémentation des éléments finis sous Matlab
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
LES NOMBRES PREMIERS ET COMPOSÉS
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 7 : Les méthodes de conception.
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
1 Délégation FSA 2008: Cycle de formations prédépart __ Quest-ce que la mondialisation ?
Calculs et écritures fractionnaires
Interprétation de séquences dimages pour des applications MédiaSpace Alberto AVANZI François BREMOND Monique THONNAT Projet ORION INRIA de Sophia Antipolis.
RACINES CARREES Définition Développer avec la distributivité Produit 1
Systèmes mécaniques et électriques
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Ordonnancement de tâches
Aire d’une figure par encadrement
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Comment rendre une femme heureuse…
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Antennes-BIE à surface combinée
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Nom:____________ Prénom: ___________
Discussion autour du référentiel
1 Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Rodolphe Loué Projet SOLIDOR.
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Régulation de débit pour MPEG-4 SVC
Construction d'une hiérarchie mémoire faible consommation
Transcription de la présentation:

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

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

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

Introduction : Problématique Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réel sur 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 Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réel sur architectures distribuées hétérogènes Applications fortement orientées données

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

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

Introduction : Problématique Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réel sur 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 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

SynDEx : Synchronized Distributed Executives 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

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

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

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)

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

SynDEx : Chaîne de développement Prototypage rapide et domaine d’applications Adéquation Algorithme Architecture 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 Exemple de topologie : Sundance FPGA1 (Virtex) SDBa SDBb CP0 CP1 CP2 CP3 PALtoYUV (BT829) VID_IN DSP2 (TMS320C6416) PCI YUVtoPAL (BT864a) VID_OUT DSP3 (TMS320C6414) PC (Pentium) PCI (BUS_PCI ) Bus_6 (CP) Bus_3 (SDB) IN (VID_IN) OUT (VID_OUT) Bus_1 (SDB) Embedded Motherboard: SMT320 SMT361 SMT319 SMT358 Personal Computer Module DSP Module FPGA Framegrabber  Plusieurs types de processeurs et de communicateurs

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 processeur Type de media C62x.m4x C64x.m4x Pentium.m4x Fpga.m4x SDB.m4x ( C 6 2x , C64x , Fpga ) CP.m4x 62x BUS_PCI_RAM.m4x ( Pentium , C62x BUS_PCI_SAM.m4x ( TCP.m4x ( Bifo.m4x (C62x, Fpga Bifo_DMA.m4x (C62x,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Applications : UMTS (Tx) init trame par trame trame slot par slot init slot

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 Modulation Démodulation SynDEx 1 435 348 2 185 612 Registre 792 460 920 596 Tétris 727 128 808 140 Tétris multi-composant 274 220 376 284 Gain maximum 7

Norme composée de sous-parties Norme complexe (boîte à outils) 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 …

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 granularité

Application : Décodeur MPEG-4 Description gros grain 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 B Image I Affichage Image Image P granularité

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

Application : Décodeur MPEG-4 Description 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 - multi-DSP pas intéressant objectif : temps réel pour de grandes tailles d’images  si temps réel à 400 Mhz, 1GHz OK

Application : Décodeur MPEG-4 Description 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  Description à l’intérieur d’un bloc

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

Application : Décodeur MPEG-4 Description grain fin Complexité SynDEx du décodeur bas niveau Nombre d’opérations proportionnel au nombre de macroblocs taille de la vidéo(1) nombre d'opérations 1 MB 493 5 MB 2 385 10 MB 4 720 20 MB 9 390 50 MB 23 400 99 MB 32 273 (1) en nombre de macroblocs MB Temps pour générer l’exécutif  (QCIF > 12 h !) Longueur de l’exécutif  Nombre d’opérations  DSP : > 5 MB pas ok Description intermédiaire niveau macrobloc

Application : Décodeur MPEG-4 Description 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) Decodeur MPEG4 processeur 1 processeur 2 SynDEx 253 452 3 323 292 Registre 3 020 000 Tétris multi-composants 152 076 2 030 000 Gain maximum 1,6

Application : Décodeur MPEG-4 Description gros grain Haut niveau taille 80*64 haut niveau sans optimisation Tétris 436 316 409 392 gain : 1,07 Niveau intermédiaire taille 80*64 niveau intermédiaire sans optimisation Tétris 3 350 224 291 416 gain : 11 taille 176*144 niveau intermédiaire sans optimisation Tétris 40 480 416 780 276 gain : 52 Bas niveau taille 80*64 bas niveau sans optimisation Tétris 7 876 428 768 012 gain : 10

Méthode développé au sein du laboratoire Image Méthode basée contenu 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

Application : CODEC LAR

Application : CODEC LAR Slice

Application : CODEC LAR Codec LAR sur 2 Processeurs Div_pic = 1 117 opérations 352*288 CODEC LAR processeur 1 processeur 2 SynDEx sans optimisation 2 514 000 1 926 000 optimisation 1 1 788 000 1 686 000 Tétris multi-composants 931 000 874 000 Gain 3 2,1 Codec LAR sur 2 processeurs Div_pic = 2 239 opérations 352*288 CODEC LAR processeur 1 processeur 2 SynDEx sans optimisation 2 980 000 2 342 000 Registre 1 959 000 1 759 000 Tétris multi-composants 777 000 785 000 Gain 3,9 3

Conclusions perspectives Plan Introduction SynDEx Minimisation mémoire Applications Conclusions perspectives

Conclusions perspectives : Optimisation mémoire Génération de code automatique embarquée Post-traitement mémoire efficace Codage dans l’outil SynDEx Temps de minimisation efficace pour trouver la solution Perspectives Mise en place de la cache Travaux de F. Urban Mise en place des algorithmes génétiques Minimisation multi-critères

Conclusions perspectives : Optimisation mémoire Algorithme Architecture Adéquation Mise en place d’une heuristique multi-critère : Algorithme Génétique Génération de Code

Conclusions perspectives : Applications Diversité des applications Complexité des applications Niveau de granularité différent Perspectives Intégration d’un décodeur MPEG4-AVC dans un terminal (projet Mobim@ge) Extension du LAR (LAR vidéo) Extension de la méthodologie AAA pour des systèmes multi-couches (G. Roquier) Alliant vidéo et télécommunications

Application : Décodeur MPEG-4 Minimisation mémoire Utiliser intelligemment les mémoires suivant l’application Traitement sur des données en mémoire interne :  Plus rapide qu’avec des données en mémoire externe Pour le décodeur MPEG-4 : Objectif : placement mémoire optimal sur les DSP Buffers touchant au flux  mémoire interne Buffers image  mémoire externe : temps de décodage  LOAD, STORE  faire des calcul avec l’alu du CPU en mémoire externe  très lent Décodeur -> 370 Ko donnée mémoire interne < 1Mo Utilisation du QDMA (accélération des transferts mémoires)

Application : Décodeur MPEG-4 Minimisation mémoire Utilisation du QDMA pour le décodeur : Transferts mémoires externe-interne et externe-externe Mémorisation de l’image, recopie dans les buffers de sortie de l’image Isolement d’un macrobloc dans une image Stockage d’un bloc dans l’image Transfert du bloc 8x8 de l’image dans le bloc Bloc 8x8 Image Image Bloc 8x8 Transfert du bloc 8x8 dans l’image Mémoire Interne-interne  memcpy() 3x plus rapide Rapatriement données en mémoire interne pour l’interpolation