Méthodologie d’analyse d’embarquabilité
Modélisation du problème
Dans le cadre de cette thèse, nous avons choisi de nous focaliser sur des architectures hétérogènes. Ainsi, celles-ci présentent des capacités de calcul beaucoup plus intéressantes dans un contexte de systèmes embarqués mais elles sont beaucoup plus complexes à utiliser que des processeurs embarqués classiques à cause de cette problématique de mapping. Cette difficulté a été identifiée très tôt, nous avons donc dès le début de cette thèse cherché et proposé une modélisation du problème pour identifier de possibles solutions, comme discuté dans [SAUSSARD et collab., 2015a,b,c].
Nous décrivons ici la première approche telle qu’elle a été définie au début de cette thèse. Cependant cette approche initiale souffre d’un certain nombre de lacunes, c’est pour cela que nous décrirons comment raffiner cette modélisation au cours de ce chapitre. Ainsi, nous cherchons donc à embarquer un algorithme sur une architecture embarquée composée de m processeurs.
Tout d’abord l’algorithme en question peut être séparé en un ensemble de n blocs, chaque bloc correspond à une partie des traitements à appliquer à l’image d’entrée. Remarquons que dans cette représentation, l’algorithme s’exécute en un temps fini et correspond à l’ensemble des traitements qui sont appliqués à une image d’entrée. Les blocs ainsi décrits ont des dépendances entres eux bien définies, déterminées par la dépendance de données.
Vers la prédiction de performances
Pour répondre à la problématique d’embarquabilité, nous avons besoin de définir une méthodologie permettant de déterminer rapidement si un algorithme donné peut être exécuté en temps-réel ou non sur un ensemble d’architectures. De cette manière il est possible de choisir sereinement et facilement un ECU correctement dimensionné et permettant de répondre au cahier des charges de l’application.
L’approche qui nous paraît la plus pertinente est d’utiliser la prédiction de performances. Ainsi, si l’on est capable de prédire la performance qu’aura un algorithme sur une architecture quelconque de manière plus ou moins précise, alors la réponse sur le respect ou non des contraintes tempsréel est immédiate et donc le caractère embarquable de l’algorithme sur l’architecture en question devient trivial. La méthodologie d’analyse de l’embarquabilité telle que définie dans cette thèse a été conçue pour répondre à ce besoin industriel.
Algorithmes et contraintes temps-réel
Pour parler d’embarquabilité d’algorithme, il est tout d’abord nécessaire d’affiner sa composition et donc les besoins en ressources qui en découlent. Ainsi, comme illustrée dans la figure 3.1, une application ADAS typique peut être décomposée en différentes parties : Bloc perception Il s’agit de traiter les données brutes issues des différents capteurs (caméra et traitement d’image par exemple). De notre point de vue, puisque c’est le bloc qui traitent le plus grand nombre de données (l’ensemble des pixels dans le cas du traitement d’images), il s’agit de la partie la plus exigeante en termes de complexité de calcul et de besoins mémoire.
Bloc fusion de données
Ce bloc prend en entrée un ensemble de cibles potentielles issues des différents capteurs. Il fusionne ces données pour prendre une décision sur la compréhension de l’environnement du véhicule, c’est-à-dire la localisation et le types des cibles présentes autour du véhicule. Bloc loi de commande À l’aide des informations issues de la fusion de données, la loi de commande (Ldc) agit pour avertir le conducteur (par exemple une alerte sonore) ou agit directement sur le véhicule (freinage d’urgence, contrôle automatique de la direction, etc.). Une loi de commande représente une charge de calcul minime, elle est en général embarquée sur des µc de faible puissance mais garantissant une très grande sûreté de fonctionnement et une faible latence.
Ainsi, pour une application ADAS typique à base d’une ou plusieurs caméras, nous estimons que les algorithmes de traitement d’images représentent environ 90% de la charge de calcul et de l’impact mémoire, c’est d’ailleurs pour cela qu’ils sont si difficiles à embarquer et à exécuter en temps-réel. Dans le cadre de ce chapitre et de la thèse en général, nous avons donc choisi de nous focaliser sur les algorithmes de traitements d’images. Remarquons tout de même que notre méthodologie est tout à fait applicable sur n’importe quel bloc. Nous avons d’ailleurs, au cours de cette thèse, présenté plusieurs preuves de concept autour de l’embarquabilité de lois de commande.