# Comparaison expérimentale de logiciels de mesure d'énergie : côté GPU

Mathilde Jay, Laurent Lefèvre, Denis Trystram

<figure><img src="image_1.png" /></figure>

## To cite this version:

Mathilde Jay, Laurent Lefèvre, Denis Trystram. Comparaison expérimentale de logiciels de mesure d'énergie : côté GPU. Compas 2022, Jul 2022, Amiens, France. hal-03945744v2

HAL Id: hal-03945744

https://inria.hal.science/hal-03945744v2

Submitted on 20 Mar 2023

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_2.png" /></figure>
# Comparaison expérimentale de logiciels de mesure d'énergie : côté GPU

Mathilde Jay<fnref n="1" />, Laurent Lefevre<fnref n="2" />, Denis Trystram<fnref n="1" />

## Contexte

Suite aux accords de Paris et à la neutralité carbone à l'horizon 2050, de nombreux développeurs cherchent à estimer l'**impact environnemental** de leur logiciel ou application. Le coût environnemental de l'**intelligence artificielle** (IA) reste peu connu[1][2].

L'entraînement de modèle d'IA demande des calculs intensifs et l'utilisation de **Graphic Processing Units (GPUs)**. Mesurer leur consommation énergétique nécessite des outils adaptés.

Dans cette étude, nous **comparons quantitativement et qualitativement** une sélection de **logiciels de mesure d'énergie** de programmes utilisant des GPUs.

## Environnement de test

* **Cluster Gemini de Grid5000** [10]

* 8 GPUs Nvidia Tesla V100-SXM2-32GB (32 Go)

* 2 CPUs Intel Xeon E5-2698 v4 (Broadwell, 2.20GHz, 20 cœurs/CPU)

* 512 Go de mémoire

* **Wattmètres / BMC** (Board Management Controller)

* Mesure directe de la consommation totale de la machine

* **Benchmarks NAS** implémentés en CUDA [9] :

* **EP** (Embarrassingly Parallel) : GPU

* **LU** (Lower-Upper Gauss-Seidel solver) : GPU, RAM

* **MG** (Multi-Grid) : RAM, CPU, GPU

## Logiciels testés

* **Outils en ligne**

* **GA** : Green Algorithm [7]

* **MCI** : ML CO2 Impact [8]

* **Librairies Python**

* **CC** : Code Carbon [3]

* **CT** : Carbon Tracker [4]

* **EIT** : Experiment Impact Tracker [5]

* **Logiciels**

* **ES** : Energy Scope [6]

## Méthodes d'estimation

### Interfaces internes

* Estimation basée sur des mesures et/ou des compteurs de performance

* Calibration à la fabrication du processeur

* **RAPL** (Running Average Power Limit) : CPU Intel

* **NVML** (Nvidia Management Library) : GPU Nvidia

### Modèle d'estimation

* **TDP** (Thermal Design Power) : Puissance du processeur à utilisation maximale

* Énergie = TDP x utilisation moyenne x temps d'exécution

<figure><img src="image_3.png" /><figcaption>Figure 1. Énergie consommée (10⁵ Joule) par les outils testés sur les trois benchmarks EP, LU, MG en comparaison avec les appareils de mesure.</figcaption></figure>

<figure><img src="image_4.png" /></figure>

<figure><img src="image_5.png" /><figcaption>Figure 2. Rapport entre la puissance fournie par Energy Scope et celle mesurée par un wattmètre pour les trois benchmarks EP, LU, MG.</figcaption></figure>

<figure><img src="image_6.png" /></figure>

## Classification proposée

<table><thead><tr><th rowspan="2"></th><th colspan="2">Mesures (références)</th><th>Logiciel</th><th colspan="3">Libraries Python</th><th colspan="2">Outils en ligne</th></tr><tr><th>Wattmètre</th><th>BMC</th><th>ES</th><th>CC</th><th>EIT</th><th>CT</th><th>GA</th><th>MCI</th></tr></thead><tbody><tr><th scope="row">Développement</th><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><th scope="row">Année</th><td></td><td></td><td>2021</td><td>2020</td><td>2020</td><td>2020</td><td>2021</td><td>2019</td></tr><tr><th scope="row">Environnement</th><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><th scope="row">Cible</th><td>Machine totale</td><td>Machine totale</td><td>CPUs, GPUs, Memory</td><td>CPUs, GPUs, Memory</td><td>CPUs, GPUs, Memory, Processus</td><td>CPUs, GPUs, Memory</td><td>CPUs, GPUs, Memory</td><td>CPUs, GPUs</td></tr><tr><th scope="row">Compatibilité</th><td>Tout</td><td>Tout</td><td>RAPL, NVML</td><td>RAPL, NVML</td><td>RAPL, NVML</td><td>RAPL, NVML</td><td>Tout</td><td>Tout</td></tr><tr><th scope="row">Fonctionnement</th><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><th scope="row">Modèle énergie</th><td>Mesure</td><td>Mesure</td><td>RAPL, NVML</td><td>RAPL, NVML</td><td>RAPL, NVML, processus</td><td>RAPL, NVML</td><td>TDP</td><td>TDP</td></tr><tr><th scope="row">Fréquence acquisition (Hz)</th><td>50</td><td>1/5</td><td>10</td><td>1/15</td><td>1</td><td>1/10</td><td></td><td></td></tr><tr><th scope="row">Temps réel</th><td>Yes</td><td>Yes</td><td>Yes</td><td>Non</td><td>Non</td><td>Par epoch</td><td>Non</td><td>Non</td></tr><tr><th scope="row">Donnée sortie</th><td>Série temporelle</td><td>Série temporelle</td><td>Série temporelle</td><td>Énergie total</td><td>Énergie total</td><td>Énergie total</td><td>Énergie total</td><td>Énergie total</td></tr><tr><th scope="row">Accessibilité</th><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><th scope="row">Disponibilité du code source</th><td></td><td></td><td>Non</td><td>Oui</td><td>Oui</td><td>Oui</td><td>Oui</td><td>Oui</td></tr><tr><th scope="row">Diponibilité en ligne</th><td>Non</td><td>Non</td><td>Non</td><td>Non</td><td>Non</td><td>Non</td><td>Oui</td><td>Oui</td></tr><tr><th scope="row">Facilité d'installation et d'utilisation</th><td>Mauvais</td><td>Mauvais</td><td>Assez bon</td><td>Plutôt bon</td><td>Plutôt bon</td><td>Bon</td><td>Pas d'installation</td><td>Pas d'installation</td></tr><tr><th scope="row">Qualité de la documentation</th><td>Bon</td><td>Bon</td><td>Assez bon</td><td>Assez bon</td><td>Assez bon</td><td>Bon</td><td>Assez bon</td><td>Assez bon</td></tr><tr><th scope="row">Configurabilité</th><td>Mauvais</td><td>Mauvais</td><td>Bon</td><td>Mauvais</td><td>Plutôt bon</td><td>Mauvais</td><td>Bon</td><td>Plutôt bon</td></tr></tbody></table>

## Analyse expérimentale

### Outils en ligne

* Conditions pour estimation correcte

* Connaître le matériel et leur utilisation moyenne

* Avoir une charge stable

* ML CO2 Impact est **moins précis** que Green Algorithm (Figure 1)

### Librairies Python

* Code Carbon et Energy Scope : **écarts** les plus faibles (Figure 1)

* Experiment Impact Tracker

* Isole le processus du programme pour une estimation plus précise

* **Variabilité** quand intensif en mémoire

### Logiciels

* Focus sur **Energy scope** (Figure 2)

* Bonne corrélation avec le wattmètre : 0.98

* L'écart semble augmenter avec la puissance mesurée

Surcharge en énergie due aux outils inférieure à 4%

## Contact

Mathilde Jay

* Équipe DataMove, LIG, UGA

* Équipe Avalon, LIP, ENS Lyon

* Chaire Edge Intelligence, MIAI

Email: mathilde.jay@univ-grenoble-alpes.fr

Collaboration avec Vladimir Ostapenco

<footnote n="1">¹Univ. Grenoble Alpes, CNRS, Inria, Grenoble INP, LIG, MIAI</footnote>

<footnote n="2">²Univ Lyon, EnsL, UCBL, CNRS, Inria, LIP</footnote>

<footnote>(1) Strubell, Emma, Ananya Ganesh, and Andrew McCallum. "Energy and Policy Considerations for Deep Learning in NLP." ArXiv:1906.02243 [Cs], June 5, 2019. http://arxiv.org/abs/1906.02243.</footnote>

<footnote>(2) Bannour, Nesrine, Sahar Ghannay, Aurélie Névéol, and Anne-Laure Ligozat. "Evaluating the Carbon Footprint of NLP Methods: A Survey and Analysis of Existing Tools." In Proceedings of the Second Workshop on Simple and Efficient Natural Language Processing, 11-21. Virtual: Association for Computational Linguistics, 2021. https://aclanthology.org/2021.sustainlp-1.2.</footnote>

<footnote>(3) Victor Schmidt, Kamal Goyal, Aditya Joshi, Boris Feld, Liam Conell, Nikolas Laskaris, Doug Blank, Jonathan Wilson, Sorelle Friedler, and Sasha Luccioni. "CodeCarbon: Estimate and Track Carbon Emissions." Zenodo, 2021. https://doi.org/10.22477/cdcg.2021.000701.</footnote>

<footnote>(4) Anthony, Lasse F. Wolff, Benjamin Kanding, and Raghavendra Selvan. "Carbontracker: Tracking and Predicting the Carbon Footprint of Training Deep Learning Models." ArXiv:2007.03051 [Cs, Eess, Stat], July 6, 2020. http://arxiv.org/abs/2007.03051.</footnote>

<footnote>(5) Henderson, Peter, Jieru Hu, Joshua Romoff, Emma Brunskill, Dan Jurafsky, and Joelle Pineau. "Towards the Systematic Reporting of the Energy and Carbon Footprints of Machine Learning." ArXiv:2002.05651 [Cs], January 31, 2020. http://arxiv.org/abs/2002.05651.</footnote>

<footnote>(6) Mathieu, Hervé. Energy Scope, 2020. https://sed-bso.gitlabpages.inria.fr/datacenter/energy_scope.html.</footnote>

<footnote>(7) Lannelongue, Loïc, Jason Crealey, and Michael Inouye. "Green Algorithms: Quantifying the Carbon Footprint of Computation." Advanced Science 8, no. 12 (2021): 2100707. https://doi.org/10.1002/advs.202100707.</footnote>

<footnote>(8) ML CO2 IMPACT, n.d. https://mlco2.github.io/impact/?#compute.</footnote>

<footnote>(9) Araujo, Gabriell, Dalvan Griebler, Dinei A. Rockenbach, Marco Danelutto, and Luiz G. Fernandes. "NAS Parallel Benchmarks with CUDA and Beyond." Software: Practice and Experience n/a, no. n/a. Accessed February 4, 2022. https://doi.org/10.1002/spe.3056.</footnote>

<footnote>(10) Balouek, Daniel, Alexandra Carpen-Amarie, Ghislain Charrier, Frédéric Desprez, Emmanuel Jeannot, Emmanuel Jeanvoine, Adrien Lebre, et al. "Adding Virtualization Capabilities to Grid'5000," n.d., 24.</footnote>