Traçage logiciel d'applications utilisant un processeur graphique

Paul Margheritta

Mémoire de maîtrise (2017)

Accéder à ce document
Disponible
Libre accès au texte intégral dans PolyPublie
Texte Texte • 1MB •

Résumé

Dans le domaine informatique, les architectures matérielles tendent vers un niveau de parallélisme toujours plus élevé, de manière à pouvoir traiter de plus en plus d'informations simultanément. L'émergence des processeurs multicoeurs a fait naître de nombreux problèmes liés à la concurrence des algorithmes, ce qui a contribué au développement d'outils performants permettant d'analyser finement l'activité des systèmes parallèles. Cependant, les outils de diagnostic de problèmes et d'analyse de performance pour les systèmes parallèles restent encore peu adaptés à l'étude des processeurs graphiques (GPU). Cela est dû aux grandes disparités dans les architectures existantes et au très haut niveau de parallélisme qu'il est nécessaire de gérer lorsque l'on traite avec des processeurs graphiques. Il est donc toujours relativement complexe d'analyser l'exécution d'un programme sur processeur graphique, alors même que ces accélérateurs matériels connaissent un gain très important de popularité en raison de leur structure se prêtant bien au calcul de haute performance et à l'apprentissage automatique, entre autres. Dans le cadre de ce projet de recherche, nous cherchons à exploiter des méthodes de traçage qui ont prouvé leur efficacité pour l'analyse de programmes s'exécutant sur processeur central (CPU) multicoeurs, afin d'analyser l'activité d'un ou plusieurs processeurs graphiques au cours de l'exécution d'un programme. L'objectif est, grâce au traçage, de fournir des outils appropriés permettant de détecter de possibles problèmes de performance. Grâce à LTTng, un traceur performant pour le système d'exploitation GNU/Linux, nous avons créé un utilitaire permettant de générer des traces unifiées rendant compte de l'activité du processeur graphique pour des programmes basés sur l'interface de programmation HSA. Cette interface, commune à plusieurs acteurs majeurs du marché, se donne comme objectif d'accélérer et faciliter la communication entre processeurs de calcul dans un contexte hétérogène, ce qui en fait une plateforme intéressante pour analyser l'activité d'un processeur graphique. Notre solution, nommée LTTng-HSA, se base sur un ensemble de bibliothèques logicielles pouvant être préchargées à l'exécution d'un programme, de manière à insérer une instrumentation destinée à mieux comprendre le fonctionnement du processeur graphique. Les traces générées au format CTF proposent des informations sur les durées d'exécution des noyaux de calcul, sur les appels de fonctions de l'interface de HSA et donnent accès à diverses métriques venues du processeur graphique. Ce mémoire présente également des solutions de visualisation de ces traces, ainsi que les techniques de fusion et de tri aboutissant à l'obtention d'une trace unifiée représentant l'activité du processeur graphique. LTTng-HSA permet d'obtenir des informations utiles sur la performance d'un programme parallèle basé sur HSA, sans avoir à intervenir pour modifier le programme et avec un faible surcoût temporel. C'est donc un outil intéressant pour trouver l'origine de problèmes de performance dans le cadre d'un programme accéléré par matériel.

Programme:
Génie informatique
Directeurs ou directrices:
Adresse URL de PolyPublie:
Université/École:
École Polytechnique de Montréal
OAI:
oai:publications.polymtl.ca:2838
ORCID
Date du dépôt:
23 févr. 2018 11:46
Dernière modification:
14 oct. 2026 10:40
Citer en APA 7:
Margheritta, P. (2017). Traçage logiciel d'applications utilisant un processeur graphique [Mémoire de maîtrise, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/2838/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document
Afficher document