Work

Traçage et profilage de systèmes hétérogènes

Year: 2020
Type: dissertation
Abstract: Je tiens à exprimer toute ma reconnaissance pour mon directeur de recherche, Michel Dagenais, pour m'avoir donné l'opportunité de participer à ce projet de recherche au sein du laboratoire DORSAL.Son expérience m'a beaucoup guidé dans les différents problèmes rencontrés au cours de ma maitrise.Je tiens aussi à remercier le soutien financier, technique et matériel des entreprises : Ericsson, Advance Micro Devices (AMD), EfficiOS ainsi que du Conseil de recherches en sciences naturelles et en génie du Canada (CRSNG).Je remercie spécifiquement Geneviève Bastien, Matthew Khouzam, Guillaume Champagne et Evgeny Shcherbakov pour leurs conseils et leur aide tout au long de mon projet.Par ailleurs, j'aimerais exprimer ma gratitude à tous mes collègues du laboratoire DORSAL qui m'ont souvent apporté des conseils ou de l'aide.Enfin, j'aimerais remercier ma famille ainsi que mes amis pour leur soutien constant. RÉSUMÉLes systèmes hétérogènes sont de plus en plus présents dans tous les ordinateurs.En effet, de nombreuses tâches nécessitent l'utilisation de coprocesseurs spécialisés.Ces coprocesseurs ont permis des gains de performance très importants qui ont mené à des découvertes scientifiques, notamment l'apprentissage profond qui n'est réapparu qu'avec l'arrivée de la programmation multiusage des processeurs graphiques.Ces coprocesseurs sont de plus en plus complexes.La collaboration et la cohabitation dans un même système de ces puces mènent à des comportements qui ne peuvent pas être prédits avec l'utilisation d'analyse statique.De plus, l'utilisation de systèmes parallèles qui possèdent des milliers de fils d'exécution, et de modèles de programmation spécialisés, rend la compréhension de tels systèmes très difficile.Ces problèmes de compréhension rendent non seulement la programmation plus lente, plus couteuse, mais empêchent aussi le diagnostic de problèmes de performance.C'est pourquoi il est nécessaire d'avoir recours à des outils d'analyse dynamique qui permettent d'analyser l'état d'un système au cours du temps.Ces outils permettent d'étudier en détail le comportement d'un système après l'exécution de celui-ci.Idéalement, ces outils ont un impact minimal pour s'assurer de la précision des résultats obtenus.Il est aussi nécessaire que les résultats obtenus permettent d'avoir suffisamment d'information pour décrire complètement le système, sinon l'analyse est fortement biaisée.Il est cependant de plus en plus difficile d'obtenir ces outils, car dans les systèmes hétérogènes de nombreux processeurs fonctionnent ensemble, tout en ayant des architectures, des gestionnaires de périphérique et des modèles de programmation différents.Cette diversité doit être prise en compte dans l'élaboration d'un outil de traçage.L'avènement de l'architecture HSA permet le fonctionnement dans un cadre commun, basé sur un modèle d'exécution générique, de ces différents coprocesseurs.Cette architecture permet donc d'obtenir des outils suffisamment génériques pour s'adapter à la diversité des systèmes hétérogènes.Dans ce mémoire, nous présentons une approche en deux temps.En premier lieu, l'utilisation de ROC-profiler et de ROC-tracer qui permet de recueillir des traces qui peuvent être corrélées avec des moyens de traçage plus traditionnels pour obtenir une vue d'ensemble d'un système.Ensuite nous avons développé une analyse des données de traçage et de profilage.Cette analyse s'effectue en deux étapes, la lecture séquentielle des évènements qui permet de générer un historique des états et ensuite, l'affichage de ces états pour générer plusieurs visualisations.La génération de traces s'effectue v avec les outils ROC-profiler et ROC-tracer qui font partie de ROCm, une implémentation de la spécification HSA.Ensuite une analyse de cette trace et des compteurs de performance a été développée grâce à TraceCompass.Cette analyse permet de visualiser les appels à l'interface de programmation HIP et HSA effectués par l'utilisateur, les transferts mémoires et les compteurs de performance.Ces informations sont affichées au sein d'une même vue.Cela permet à l'utilisateur de visualiser toutes les données pertinentes, synchronisées au niveau du temps.L'outil utilisé permet de corréler facilement ces données avec les données d'exécution du système d'exploitation, du CPU et d'autres systèmes communs à tous les systèmes hétérogènes.Cette approche est facilement adaptable à n'importe quel système respectant la spécification HSA, ce qui est le cas de nombreux coprocesseurs qui supportent cette spécification.vi
Language: French
Open Access status: green
OpenAlex ID: W3100913684
Cites: 45
Cited by:
Related to: 10