Advanced Profiling Techniques For Evaluating GPU Computing Efficiency Executing ML Applications - TEL - Thèses en ligne
Thèse Année : 2024

Advanced Profiling Techniques For Evaluating GPU Computing Efficiency Executing ML Applications

Techniques Avancées D'analyse De Performance Pour Évaluer L'efficacité Des Accélérateurs Graphiques Pour Les Applications

Résumé

The rising complexity of Artificial Intelligence (AI) applications significantly increases the demand for computing power to execute and train Machine Learning (ML) models, thus boosting the energy consumption of data centers. GPUs, enhanced by developments like tensor cores (2017), have become the preferred architecture. Building more efficient ML computing systems relies on a deep understanding of the limits of both parts of a tightly coupled hardware/software paradigm. However, the high abstraction of ML frameworks and the closed-source, proprietary design of state-of-the-art GPU architectures obscure the execution process and make performance evaluation tedious.The main goal of this thesis is to provide new methodologies to evaluate performance and energy bottlenecks of GPU-accelerated ML workloads. Existing profiling solutions are limited in three ways. First, ML framework profiling tools are designed to assist the development of ML models but do not give insights into the runtime execution of the ML framework. While these profiling tools provide high-level metrics on the GPU device execution, these metrics can be misleading and overestimate the utilization of the GPU resources. Second, lower-level profiling tools provide access to performance counters and insights on how to optimize GPU kernels. However, these tools cannot capture the efficiency of host/device interactions occurring at a higher level. Finally, when evaluating energy bottlenecks, the mentioned profiling tools cannot provide a detailed breakdown of the energy consumed by modern GPUs during ML training. To tackle these shortcomings, this thesis makes three key contributions organized as a top-down analysis of GPU-accelerated ML workloads.First, we analyze ML frameworks' runtime execution on a CPU-GPU tandem. We propose a new profiling methodology that leverages data from an ML framework's profiler. We use this methodology to provide new insights into the runtime execution of inference, for three ML models. Our results show that GPU kernels' execution must be long enough to hide the runtime overhead of the ML framework, increasing GPU utilization. However, this strive for longer kernel execution leads to the use of bigger batches of data, seemingly pushing the need for more GPU memory.Second, we analyze the utilization of GPU resources when performing ML training. We propose a new profiling methodology combining the use of high-level and low-level profilers to provide new insights into the utilization of the GPU's inner components. Our experiments, on two modern GPUs, suggest that bigger GPU memory helps enhance throughput and utilization from a high level. However, our results also suggest that a plateau has been reached, eliminating the push for bigger batches. Furthermore, we observe that the fastest GPU cores (tensor cores) are idle most of the time, and the tested workloads are now limited by kernels that do not use these cores. Thus, our results suggest that the current GPU paradigm is reaching a saturation point.Finally, we analyze the energy consumption of GPUs during ML training. We propose an energy model and calibration methodology that uses microbenchmarks to provide a breakdown of the GPU energy consumption. We implement and validate this approach with a modern NVIDIA GPU. Our results suggest that data movement is responsible for most of the energy consumption (up to 84% of the dynamic energy consumption of the GPU). This further motivates the push for newer architectures, optimizing memory accesses (e.g., processing in/near memory, vectorized architectures).This thesis provides a comprehensive analysis of the performance and energy bottlenecks of GPU-accelerated ML workloads. We believe our contributions uncover some of the limitations of current GPU architectures and motivate the need for more advanced profiling techniques to design more efficient ML accelerators. We hope that our work will inspire future research in this direction.
L'augmentation en complexité des applications d'Intelligence Artificielle (IA) entraîne une demande accrue en puissance de calcul et en énergie pour entraîner et exécuter des modèles d'apprentissage automatique (ML). Les processeurs graphiques (GPU), forts d'architectures améliorées (e.g., ajout de cœurs dédiés à l'IA en 2017), sont devenus le système de prédilection pour de telles tâches. Concevoir des systèmes plus efficients pour l'IA n'est possible qu'avec une connaissance approfondie des limites des systèmes existants, où matériel et logiciel sont étroitement couplés. Mais l'abstraction des plateformes d'IA et la nature fermée des architectures GPU modernes masquent le processus d'exécution, rendant ses performances difficiles à évaluer.L'objectif de cette thèse est caractériser les facteurs limitant la performance et augmentant la consommation énergétique des tâches d'IA exécutées avec des GPUs modernes. Cette thèse adresse trois limitations majeures des outils existants. Premièrement, les outils de caractérisation proposés par les plateformes de développement d'IA sont conçus pour aider les développeurs de modèles ML, mais ne donnent pas d'informations sur la charge additionnelle que représente l'exécution de ces plateformes. Deuxièmement, les outils de caractérisation proposés par les fabricants de GPUs permettent l'accès à des compteurs de performance, mais qui ne permettent pas d'estimer l'efficacité des interactions entre le GPU et l'unité centrale (CPU). Enfin, pour caractériser la consommation énergétique des GPUs lors de l'entraînement d'IA, ces outils ne permettent pas d'obtenir une décomposition détaillée. Pour adresser ces limitations, cette thèse propose trois contributions.Premièrement, nous analysons l'exécution des plateformes d'IA sur un couple CPU-GPU. Nous proposons une nouvelle méthodologie de caractérisation réutilisant les données fournies par des outils existants. Cette méthodologie permet d'extraire de nouvelles informations quant à l'exécution de modèles d'IA. Nous étudions l'exécution de trois modèles d'IA et nos résultats montrent que l'exécution des opérations destinées au GPU doit être suffisamment longue pour masquer le temps d'exécution de la plateforme d'IA, augmentant l'utilisation GPU. Pour autant, cette incitation à utiliser des opérations plus longues conduit à l'utilisation de lots de données plus conséquents, augmentant la demande en mémoire GPU.Deuxièmement, nous analysons l'utilisation des ressources internes au GPU lors de l'entraînement. Nous proposons une nouvelle méthodologie de caractérisation combinant les outils proposés par les fabricants de GPUs et par les plateformes d'IA. Nos résultats suggèrent qu'un plafond de performance a été atteint, annulant les bénéfices à utiliser des lots de données plus larges pour l'entraînement. Nous observons que les cœurs les plus performants du GPU (tensor cores) restent inactifs durant la majorité du temps d'entraînement, limité par les opérations qui n'utilisent pas ces cœurs. Nos résultats suggèrent que les architectures GPU modernes ont atteint un point de saturation.Enfin, nous analysons la consommation énergétique des GPUs lors de l'entraînement. Nous proposons une méthodologie basée sur l'utilisation de microprogrammes afin d'obtenir une décomposition de la consommation énergétique. Nos résultats suggèrent que les transferts de données sont responsables pour la majorité de la consommation énergétique dynamique du GPU (jusqu'à 84%). Ces résultats soutiennent la tendance de recherche pour des architectures cherchant optimiser les transferts de données (e.g., traitement en mémoire ou à proximité, architectures vectorielles).Cette thèse propose une analyse approfondie des limites de performance et de la consommation énergétique des tâches d'IA exécutées à l'aide de GPUs modernes. Nous espérons que ce travail inspirera de futures recherches dans cette direction, pour concevoir des accélérateurs d'IA plus efficients.
Fichier principal
Vignette du fichier
DELESTRAC_2024_archivage.pdf (6.11 Mo) Télécharger le fichier
Origine Version validée par le jury (STAR)

Dates et versions

tel-04742193 , version 1 (17-10-2024)

Identifiants

  • HAL Id : tel-04742193 , version 1

Citer

Paul Delestrac. Advanced Profiling Techniques For Evaluating GPU Computing Efficiency Executing ML Applications. Micro and nanotechnologies/Microelectronics. Université de Montpellier, 2024. English. ⟨NNT : 2024UMONS014⟩. ⟨tel-04742193⟩

Collections

CNRS STAR LIRMM
0 Consultations
0 Téléchargements

Partager

More