Monitoring des performances énergétiques programmation GPU

Encadrants

Georges Da Costa, Loïc Barthe, Nicolas Mellado

Contexte

Ce stage s’inscrit dans les thématiques de recherche des équipes SEPIA et STORM de l’IRIT.

L’équipe SEPIA s’intéresse à l’économie d’énergie dans les datacenters. En effet ces derniers sont constitués de plusieurs milliers d’ordinateurs et leur impact écologique les placent au niveau de l’industrie de l’aviation. Les travaux de l’équipe SEPIA se positionnent autant au niveau algorithmique (ordonnancement de tâches, reconfiguration d’applications) qu’au niveau des outils de support (lancement d’expériences sur plusieurs centaines de machines, monitoring bas niveau de performance et d’énergie).

L’équipe STORM regroupe des chercheurs en Informatique Graphique, un domaine qui s’intéresse à la création, l’interaction et la restitution de mondes virtuels, appliqués notamment aux jeux vidéos, effets spéciaux, réalité augmentée/virtuelle… Dans de nombreux cas, la simulation de phénomènes physiques permet d’augmenter le réalisme de ces mondes virtuels: interactions entre des objets/fluides, simulation de rayonnement pour la synthèse d’image… Ces simulations requièrent des calculs importants, réalisés sur carte graphique, et généralement optimisés pour réduire les temps de calculs. Un des axes récents de l’équipe STORM consiste à étudier des approches permettant d’en minimiser l’impact énergétique.

La programmation d’algorithmes massivement parallèles sur carte graphique impose de très fortes contraintes sur les structures de données, les algorithmes et les implémentations. En effet, les accès mémoires et les flots d’exécutions sont fortement contraints, et les algorithmes sont généralement optimisés en maximisant la charge du processeur (mesuré par le throughput). Cependant, tout commes pour les CPUs, la charge processeur instantanée et l’efficacité énergétique ne sont pas nécessairement corrélés.

Objectifs

L’objectif de ce stage est de définir des outils de monitoring énergétiques pour des processus exploitant des unités de calcul graphique. Nous nous concentrerons sur du matériel Nvidia, programmé avec le langage Cuda. Pour ce faire, nous utiliserons des outils fournis par Nvidia pour accéder aux propriétés des GPUS lors de l’execution (https://medium.com/devoops-and-universe/monitoring-nvidia-gpus-cd174bf89311). Les outils développés lors du stage auront vocation à être intégrés dans Mojitos, un outil de monitoring développé à l’IRIT (https://gitlab.irit.fr/sepia-pub/mojitos). Cet outil possède des capacités de monitoring bas niveau pour les processeurs (compteurs de performance hardware, RAPL, consommation d’énergie) et le système d’exploitation (entrées sorties, réseau, charge du processeur). En fonction de l’avancement du projet, il sera possible d’utiliser ces outils de monitoring sur des applications d’informatique graphique pouvant mener à une publication scientifique.

Environnement

Le stage aura lieu à l’IRIT, le plus grand institut de recherche en informatique de Toulouse.

L’étudiant sera encadré par Nicolas Mellado (Chercheur CNRS, nicolas.mellado@irit.fr), Loïc Barthe (Prof, Loic.Barthe@irit.fr) et Georges Da Costa (MCF HdR, georges.da-costa@irit.fr) dans une ambiance conviviale :). Un ordinateur et un bureau seront fournis le temps du stage, ainsi qu’une indemnité mensuelle de stage de ~600€.