Les chaînes de traitement Sonar sont composées de nombreuses opérations algébriques de taille réduite. Les dimensions du problème et les spécificités opérationnelles entraînent un besoin en puissance de calcul qu'offre actuellement les coprocesseurs. Notre problématique générale concerne les techniques de portage ou d'adaptation des codes de traitement sur architecture hétérogène.
En se fondant sur une représentation par tâche du problème, nous explorons des méthodes pour automatiser la transformation de ces codes afin de cibler les GPU, en regroupant certaines tâches pour augmenter l’occupation des accélérateurs et en redéfinissant l’organisation des données pour éviter de coûteux réordonnancements. Nous abordons les problématiques liées au regroupement des tâches, l'équilibrage du travail sur une architecture hétérogène avec des contraintes mémoires.
Pour s'adapter aux variations de performance, nous avons exploré l'application de la notion de tâches moldables et son intégration dans un environnement de programmation et d’exécution. Nous définissons les accès mémoires de ces tâches de manière à connaître les sous-tableaux accédés afin à conserver les dépendances entre les calculs effectués. De cette étude nous proposons l’intégration du concept de tâche moldable dans le modèle de programmation OpenMP. Enfin, nous proposons un support exécutif permettant d’ordonnancer ces tâches moldables sur des architectures hétérogènes (CPUs, GPUs). Nous présentons les performances obtenues sur différentes architectures ce qui a
permis de valider la performances de nos propositions.
Gratuit
Disciplines