INSTITUT D'ÉLECTRONIQUE FONDAMENTALE
Centre scientifique d'Orsay - Bât. 220 - F 91405 ORSAY cedex
UMR 8622 CNRS
Université Paris XI
Sujet de Stage
Génération automatique de code pour processeurs SIMD
pour applications multimédia
Contexte
Ce stage s'inscrit dans le projet SystemD qui regroupe trois laboratoires et dont la thématique est la génération
automatique de code pour cible hétérogènes (processeur embarqué, extension multimédia et System On Chip).
Dans ce contexte, le but de ce stage sera d'étudier la génération de code pour les processeurs RISC classiques
avec des extensions SIMD (SSE, SSE2+, Altivec).
Problématique
Les processeurs deviennent de plus en plus complexe à programmer efficacement et nécessite un nombre
croissant de connaissances et d'expertise de la part du développeur. Ceci est spécialement vrai dans le domaine
du multimédia: l'utilisation d'instructions spécialisées ainsi qu'une gestion efficace des mémoires caches permet
de multiplier par un facteur 10 les performances de certains programmes, mais requiert des temps de
développement de plus en plus grand. En parallèle de cela, la majorité des concepteurs de microprocesseurs[1]
annoncent l'arrivée des "dual cores" pour 2005, ajoutant encore un niveau de complexité au problème:
parallélisation du code, communication entre processeurs, …
Cette démarche de simplification des phases de développement ainsi que de l'accroissement des capacités de
design des outils est aussi suivie pour les FPGA et ASIC. Xilinx propose des FPGA incorporant des cœurs de
PowerPC 405 [2], Tensilica propose des outils de développement pour générer automatiquement une architecture
ainsi que les outils optimisés pour cette architecture [3].
Travail à effectuer : méta compilation
L'étudiant devra développer des outils d'analyse, qui, à partir de la description d'un algorithme donné (noyau de
convolution, DCT, transformée en ondelettes) devra dans un premier temps générer un code scalaire classique
portable (typiquement du C ansi) puis dans un second temps, du code SIMD pour processeur RISC (typiquement
des intrinsics en C, évitant le recours inutile à l'assembleur). Ces codes seront alors compilés par un compilateur
optimisant (Intel ICC sur plate-forme x86, et IBM sur plate-forme PowerPC). En fonction des résultats, l'étudiant
pourra être amené à porter son travail sur un simulateur fonctionnel en systemC (la méta-compilation limitant
grandement la complexité de ce portage) et proposer des modifications de l'architecture (largeur des bus, taille
des caches) ou du jeu d'instructions SIMD (nouvelles instructions spécialisées telle la SAD en SSE2) pour
obtenir de meilleures performances.[4]
Applications multimédia visées : traitement d'image embarqué et distribué pour robot autonome, téléphonie
mobile.
Profil recherché
informatique ou électronique numérique avec un bon niveau en langages C et C++ (des connaissances sur les
FPGA et SystemC ou en compilation serait un plus).
Lieu du stage: IEF Orsay, www.u-psud.fr/ief
durée : 4 à 6 mois, fonction des conventions de stages écoles d'ingénieurs, master recherche (ex DEA).
poursuite en thèse: possible
Personne à contacter : Lionel Lacassagne (lione[email protected])
Références
1. Motorola (www.freesclale.com) : PowerPC 8641 et architectures e600 e700, documents MPC8641DFACT.pdf et
SNDF2004_EUROPE_P1302.pdf.
2. Xilinx (www.xilinx.com) FPGA virtex 4 : …/xlnx/xil_prodcat_landingpage.jsp?title=Virtex-4
3. Tensilica (www.tensilica.com): processeurs reconfigurables xtensa V et LX :
(www.tensilica.com/html/xtensa_lx.html, www.tensilica.com /html/xtensa_v.html).
4. Thèse de Doctorat, J.Sébot, LRI, Paris Sud.
1 / 1 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !