Content area

Abstract

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.

Alternate abstract:

Heterogeneous systems are becoming increasingly relevant and important with the emergence of powerful specialized coprocessors. Because of the nature of certain problems, like graphics display, deep learning and physics simulation, these devices have become a necessity. The power derived from their highly parallel or very specialized architecture is essential to meet the demands of these problems. Because these use cases are common on everyday devices like cellphones and computers, highly parallel coprocessors are added to these devices and collaborate with standard CPUs. The cooperation between these different coprocessors makes the system very difficult to analyze and understand. The highly parallel workload and specialized programming models make programming applications very difficult. Troubleshooting performance issues is even more complex. Since these systems communicate through many layers, the abstractions hide many performance defects. Therefore, it is becoming essential to use diagnostic toolkits that record performance details. These performance details can be traces or performance counters. They are very useful in order to analyze the state of a system, with respect to time, and its behaviour. However, these tools should minimize the impact on the execution of the studied applications to be effective in finding performance defects. Also, to cover most use cases, it is necessary to have enough data to adapt and produce different kinds of analysis. It is very difficult to obtain tools that are compatible with most coprocessors and that can be correlated with more traditional tracers and profilers. There are many different programming models and architectures, and most tools are closed source and do not provide access to the relevant information that would allow correlating with other sources. The HSA foundation enables many software improvements that would be generic enough to support different programming models. In this thesis, we propose a novel approach that uses ROC-profiler, ROC-tracer and TraceCompass to achieve offline analysis of heterogeneous program executions. The tracing and profiling data collection tools that record runtime information, ROC-tracer and ROC-profiler, are developed mainly by AMD and are open source. Therefore they can be easily modified to correlate their data with other tools. We use these tools to generate a trace and performance counters. Then, we developed an analysis with TraceCompass to process this trace and that produces two new views.

Details

Title
Traçage Et Profilage De Systèmes Hétérogènes
Author
Fiorini, Arnaud
Publication year
2020
Publisher
ProQuest Dissertations & Theses
ISBN
9798759979005
Source type
Dissertation or Thesis
Language of publication
French
ProQuest document ID
2626888756
Copyright
Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.