Responsable : Samir Bouaziz

Opération Systèmes Embarqués

Deux roadmaps coexistent sur les architectures cibles. L'une industrielle produit des cibles hybrides ou hétérogènes à base de CPU multicœurs, CPU multicœurs SIMD par grappe, CPU+DSP, CPU+FPGA, ImapCAR, CPU+GPU, CPU+GPU+DSP, CPU+GPU+DSP+FPGA, CPU+GPU+DSP+Vectoriel. L'autre soutenue au niveau du GdR ISIS consiste à intégrer des traitements au plus près des capteurs et à dériver les algorithmes bénéficiant de cette architecture. La diversité des processeurs, la variété d’architectures et la multiplicité de cœurs, génèrent une complexité fonction des algorithmes à implanter ce qui induit la mise en place de méthodologies d'optimisation pour l'Adéquation Algorithme Architecture.

Pour des algorithmes 3D de détection d’obstacles dans le plan de la route, plusieurs architectures hétérogènes ont été évaluées. Un couplage GPU/CPU s’est avèrée une excellente alternative car cette architecture prend en compte calculs intrinsèques et transferts de données. Le modèle data-flot qui en découle est : « Caméra®CPU®GPU®CPU ». Les temps des transferts sont alors masqués par une implantation asynchrone sur GPU. Une implantation sur architecture FPGA permet de dégager des primitives de calcul pertinentes pour une instanciation plus massive.

Nous avons appliqué dans le cadre de la thèse de Ndjiki cette méthodologie sur machine industrielle (Multix++ de M2M) pour du contrôle non destructif 3D temps réel. A partir de données issues d’une matrice de capteurs, une démarche A3 basée sur le paradigme "traiter au plus proche du capteur" a permis l’implantation d’un algorithme de focalisation en tous points (FTP) sur une architecture reconfigurable et distribuée sur FPGA.

La localisation et cartographie simultanée requière l'utilisation conjointe de capteurs extero et proprioceptifs pour une localisation précise du véhicule. L’équipe a développé des systèmes basés sur des calculateurs hétérogène et homogène offrant des spécificités encore rarement utilisées dans ce contexte pour comparer des algorithmes de SLAM. Un ensemble de primitives a été déduit d'une implantation optimisée de l'algorithme EKF-SLAM [Vincke et al. 2012]. Chaque bloc est optimisé en utilisant les spécificités architecturales (capacités des processeurs, implantation multi-cœurs, calcul vectoriel ou parallélisation avec processeur DSP). Une deuxième approche a exploré l'implantation sur circuit reconfigurable pour un algorithme FastSLAM [Abouzair et al.2014], fortement parallélisable. L'adéquation a été évaluée par méthodologie HIL.

Une méthode d’hybridation de capteurs {Sakhi et al. 2014] (gyro/accéléromètres/GPS) a été validée à partir de capteurs faible-coût. Un Filtre de Kalman étendu réalise cette hybridation. L’instanciation matérielle résultant conduit à une architecture reconfigurable FPGA plus un processeur RISC. Une étude comparative de performances (temps de calcul) a permis de dégager des recommandations pour l’implantation de tels algorithmes. Le test et la validation HIL de cette hybridation ont étudié l’effet de la précision du calcul (simple ou double) sur la précision du système. Ces briques sont aujourd'hui disponibles dans l'équipe en tant que COTS (composants sur étagère).

L’expertise de l’équipe réside dans l’art de décomposer une activité en briques fonctionnelles pour la distribuer au mieux sur une architecture cible. La recherche d’optimalité dans l'Adéquation Algorithme Architecture induit des choix quant aux capteurs ou l’instrumentation, à la topologie ou le type de calcul, à la cohérence temporelle. L’expertise qui en découle n'est plus suffisante aujourd'hui au vu de la complexité des fonctions à implanter et des cibles multicœurs hétérogènes. L'approche méthodologique proposée dans l'équipe s’appuie sur une formalisation de plus en plus fine des contraintes à optimiser et sur la définition d'une fonctionnelle qui va explorer l'espace des partitionnements et placements en visant une démarche indépendante des évolutions matérielles (architecture) et logicielles (compilateurs). L'objectif est de trouver si l'instanciation est possible (effort minimum) ; puis de trouver la meilleure instanciation (best effort). L'approche méthodologique se décompose en trois étapes. L'étape 1-matériel procède à une cartographie et modélisation succincte de chaque cible (datasheet, informations fondeur, appartenance à une famille). L'étape 1-SoftWare procède à une modélisation du type de code (type, nombre d'opérations, complexité combinatoire et répétitive) conduisant à une description paramétrique simple. L'étape 2-évalue une batterie de vecteurs de test algorithmiques (formalisation de l'expertise) sur les cibles HW traduisant cette expertise en une modélisation paramétrique multi-segments et multi-dimensions. L'étape 3 réalise une exploration paramétrique de la fonctionnelle, en se basant sur des inter/extrapolations par formule analytique et des prédictions de performances. Le résultat est un intervalle [borne basse, borne haute] de chaque performance estimée. Cette méthodologie est en cours d'évaluation [Thèse de Romain Saussard] en collaboration avec les équipes du Technocentre Renault concernant l'élaboration des modules ADAS destinés à la détection d'obstacles, odométrie visuelle et aide au parking à base de capteurs bas-coût monoscopiques. Ces modules tournent en temps réel sur les véhicules de test Renault en utilisant les caméras de recul de Zoe/Scenic et implantent les algorithmes parallèles en temps réel suivants : calibration ultra-précise de caméra grand angle, correction de signal vidéo, détection et assemblage en pistes multi-hypothèses des points d'intérêt par RanSAC, modèle de déplacement véhicule sous contraintes, utilisation d'une carte d'occupation spatio-temporelle probabiliste, identification d'obstacles par clustering.