Parallélisation automatique pour systèmes hétérogènes embarqués

par Rokiatou Diarra

Projet de thèse en Traitement du signal et des images

Sous la direction de Alain Merigot et de Bastien Vincke.

Thèses en préparation à Paris Saclay , dans le cadre de Sciences et Technologies de l'Information et de la Communication , en partenariat avec SATIE - Systèmes et Applications des Technologies de l'Information et de l'Energie (laboratoire) , MOSS - Méthodes et outils pour les Signaux et Systèmes (equipe de recherche) et de Université Paris-Sud (établissement de préparation de la thèse) depuis le 01-10-2016 .


  • Résumé

    La situation actuelle des systèmes embarqués est marquée par deux phénomènes importants : l'explosion du parallélisme (avec des circuits intégrant d'ores et déjà plusieurs centaines de processeurs), et la montée en puissance des systèmes hétérogènes. Par exemple, dans le contexte des systèmes d'aide à la conduite, la nécessité de traitements complexes de reconstruction de l'environnement font que plusieurs fournisseurs proposent des circuits intégrant différents mécanismes de calcul. Ceux ci contiennent généralement de 4 à 16 coeurs de processeurs embarqués type ARM, ainsi que des accélérateurs de nature variée : un ou plusieurs processeurs graphiques, processeurs de traitement de signal, processeur vectoriels, voire des processeurs spécialisés cablant des algorithmes de traitement d'images. On peut citer les processeurs embarqués Tégra K1 et X1 de Nvidia, les systèmes OMAP de Texas (et notamment le circuit TDA 2X), la plateforme RCAR de Renesas ou les produits du leader mondial MobileEye. Ces architectures embarquées hétérogènes fournissent aujourd'hui déjà une puissance de calcul théorique impressionnante. Par contre, elles présentent l'inconvénient majeur de l'extrême complexité de leur programmation. En effet, l'hétérogénéité des processeurs et les différents niveaux de parallélisation font que la programmation de ces différentes entités repose sur des outils, voire des paradigmes, totalement différents (intrinsics SIMD, threads ou OpenMP pour les multi-coeurs, CUDA, OpenGL ou OpenCL pour les GPU, et des outils spécifiques pour les processeurs vectoriels (ou spécialisés). De ce fait, il n'existe pas de mécanisme de parallélisation automatique et le portage d'une application complexe sur ce type de systèmes peut représenter des mois de travail. L'objectif de la thèse est de proposer une contribution permettant de simplifier la programmation des circuits hétérogènes, sans dégrader significativement les performances. Et la recherche a lieu dans le cadre des études sur la mise en oeuvre efficace de mécanismes de vision pour les véhicules intelligents. Idéalement, les résultats obtenus devraient permettre de passer un code automatiquement sur un large spectre d'architectures et seront intégrés sur les plateforme de véhicules du laboratoire.

  • Titre traduit

    Automatic parallelization for embedded heterogenous systems


  • Résumé

    The current situation of embedded systems is marked by two important events: the explosion of parallelism (with circuits already integrated hundreds of processors), and the rise of heterogeneous systems. For example, in the context of driver assistance systems, the need for complex processing of environment reconstruction make several providers propose circuits integrating various computing mechanisms. Those generally contain from 4 to 16 cores ARM-type embedded processors and accelerators of various types: one or more graphics processors, signal processors, vector processor or specialized processors wiring image processing algorithms . For examples we have Tegra K1 X1 of Nvidia, Texas OMAP systems (including ADD 2X circuit), the REnesas RCAR platform or the world leader MobileEye products. These heterogeneous embedded architectures today already provide impressive power theoretical calculation. On the other hand, they have the major of the extreme complexity of programming disadvantage. Indeed, the heterogeneity of processors and different levels of parallelization make programming these different entities based on tools and even paradigms totally different (SIMD intrinsics, threads or OpenMP for multi-core, CUDA, OpenGL or OpenCL for GPU, and specific tools for vector processors. Therefore, there is no automatic parallelization mechanism and porting of a complex application of such systems can represent months work. The aim of the thesis is to provide a contribution to simplify the programming of heterogeneous systems, without significantly degrading performance. And the research takes place in the context of studies on effective implementation mechanisms vision for intelligent vehicles. Ideally, the results are expected to pass a code automatically on a wide range of architectures and will be included on the laboratory vehicle platform.