<  Retour au portail Polytechnique Montréal

Traçage logiciel d'applications utilisant un processeur graphique

Paul Margheritta

Mémoire de maîtrise (2017)

Document en libre accès dans PolyPublie
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Conditions d'utilisation: Tous droits réservés
Télécharger (1MB)
Afficher le résumé
Cacher le résumé

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.

Abstract

In recent years, computer architectures have become increasingly parallel. More than ever, processors can now carry out multiple operations simultaneously. The rise of multi-core processors has brought a whole new set of concurrency-related problems, but has also helped us design specific analysis tools for parallel systems. However, many of these tools are focused on a multi-core CPU architecture and are not really adapted to GPU-oriented performance analysis, mostly because of the very high level of parallelism and multiple architectures that need to be taken into account when dealing with GPUs. Therefore, while GPU computing is becoming ubiquitous in fields such as highperformance computing and machine learning, we still lack analysis tools for these hardware accelerators. This research project is focused on using software tracing methods for GPU analysis purposes. Tracing methods have already proved successful in multi-core CPU contexts. Our main research objective is to provide powerful trace-based tools to help find performance issues for GPU-accelerated programs. We used LTTng, a highly efficient tracing framework for GNU/Linux systems, to create a tool that can generate unified GPU-oriented traces for HSA-based programs. HSA is a cross-vendor standard that aims to streamline communications between compute devices in a heterogeneous context. Therefore, HSA is a good choice as a platform for GPU performance analysis. LTTng-HSA, our solution, is a set of libraries that are meant to be preloaded when executing a GPU-accelerated program. Each of these libraries automatically inserts interesting tracepoints that allow us to generate CTF traces providing information about HSA API function calls, GPU kernel timestamps or GPU hardware metrics. LTTng-HSA also includes helpful views for these traces. The process that leads to a unified GPU-oriented trace, which involves trace merging and sorting, is explained in this thesis. LTTng-HSA can easily be used to pinpoint performance issues in HSA-based parallel programs. Moreover, our solution has low overhead and does not require any modification to the program being traced. Therefore, LTTng-HSA is a helpful tool for the analysis of GPUaccelerated software.

Département: Département de génie informatique et génie logiciel
Programme: Génie informatique
Directeurs ou directrices: Michel Dagenais
URL de PolyPublie: https://publications.polymtl.ca/2838/
Université/École: École Polytechnique de Montréal
Date du dépôt: 23 févr. 2018 11:46
Dernière modification: 28 sept. 2024 09:48
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