Techniques Avancées D'analyse De Performance Pour Évaluer L'efficacité Des Accélérateurs Graphiques Pour Les Applications
Paul Delestrac · HAL (Le Centre pour la Communication Scientifique Directe) · 2024
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.