Methodes combinées d'analyse, d'ordonnancement et de compilation sur cibles multi/many-coeurs et GPU pour applications de véhicules autonomes basées sur les réseaux de neurones – MeSCAliNe
Les méthodes basées sur les réseaux de neurones (RNs) ont grandement progressé ces dernières années. Des applications de vision, fusion de données et de planification pour les véhicules autonomes (VA) ont ainsi été développées avec succès. Cependant les systèmes informatiques contrôlant les VA sont temps-réel critiques et doivent donc être vérifiés et certifiés fonctionnellement et temporellement. Des techniques efficaces d'analyse de pire temps d'exécution (WCET) et de réponse (WCRT) sont donc requises. Les applications à base de réseaux de neurones nécessitent de grandes capacités de calcul et comportent un haut potentiel de parallélisme. En conséquence, elles sont déployées sur du matériel (massivement) parallèle tel que des processeurs multi/many-coeurs et des systèmes sur puces combinant des multi-coeurs avec des accélérateurs graphiques (GPUs). Malheureusement, les techniques d'analyse WCET existantes ne conviennent pas pour ces architectures parallèles. Le principal problème provient du fait que les applications ou les tâches s'exécutant en parallèle partagent en fait des composants matériels séquentiels dans ces architectures (par exemples des bus), et qu'elles sont en concurrence pour y accéder. Quand deux tâches essayent d'accéder simultanément à un composant partagé, leur exécution devient séquentielle : l'une d'elles doit attendre que l'autre ait fini pour obtenir l'accès, ce qui impose une pénalité temporelle à la tâche qui attend. Dans la communauté du temps-réel, ce phénomène est qualifié d'interférence. Détecter et quantifier l'interférence de façon précise et efficace est un problème ouvert de la communauté temps-réel, mais est pourtant nécessaire pour obtenir des bornes WCET sûres pour les tâches s'exécutant en parallèle. De plus, dans le cas particulier des GPUs, les mécanismes d'exécution inhérents au modèle d'exécution Single Instruction Multiple Threads (SIMT) ne sont pas pris en compte dans les analyses de WCET actuelles. Dans le cadre de ce projet, nous proposons de nous attaquer à ces problématiques dans une approche unifiée combinant analyse statique, ordonnancement statique et génération de code dans le but de générer des implantations efficaces et sûres d'applications temps-réel parallèles avec des bornes WCET/WCRT garanties. Pour ce faire, nous nous appuierons sur l'approche existante des points d'intérêt temporels (TIPs) que nous étendrons pour prendre en compte les mécanismes d'exécution des GPUs et pour réaliser des optimisations d'ordonnancement agressives. Nous viserons principalement des applications de type réseaux de neurones et véhicules embarqués pour nos optimisations, mais notre méthode générale sera applicable à n'importe quelle application temps-réel. Ce projet met en jeu de l'analyse statique de programmes, en particulier de l'interprétation abstraite, de l'ordonnancement statique sur cibles parallèles en présence de contraintes fonctionnelles et temps-réel, incluant de l'analyse d'interférence, et de la génération automatique de code. Notre approche sera implémentée en utilisant et en étendant deux boites à outils open-source développées et maintenues dans l'équipe: OTAWA (analyse statique) et Ouroboros (ordonnancement statique). Des expérimentations utilisant des drones permettront de donner de la visibilité à nos résultats.
Coordination du projet
Thomas Carle (Institut de Recherche en Informatique de Toulouse)
L'auteur de ce résumé est le coordinateur du projet, qui est responsable du contenu de ce résumé. L'ANR décline par conséquent toute responsabilité quant à son contenu.
Partenariat
					
						
							IRIT Institut de Recherche en Informatique de Toulouse
						
					
				
				
					Aide de l'ANR 291 273 euros
				
				Début et durée du projet scientifique :
					mars 2022
						- 48 Mois