Mesurer où part l’énergie sur le GPU
Des outils de mesure d’énergie pour Kokkos, la bibliothèque C++ de portabilité des performances sur laquelle reposent de nombreux codes du Département de l’Énergie américain. J’ai écrit un profileur d’énergie pour Kokkos Tools, avec des connecteurs NVML et Variorum, dont le démon d’échantillonnage est fusionné en amont, et energy-dashboard-for-kokkos, l’outil d’analyse open source que j’ai réécrit en septembre 2026.
Le problème
Kokkos fait tourner un même code source C++ sur des GPU NVIDIA, AMD et Intel, et le même noyau consomme une puissance différente sur chacun. Kokkos Tools ne savait estimer l’énergie d’un noyau qu’à partir de deux lectures de puissance, au début et à la fin, ce que le rafraîchissement de NVML toutes les 100 ms rend peu fiable ; rien n’intégrait une trace continue par région, sur des machines du DOE où la puissance est devenue une contrainte majeure.
Comment c’est construit
Les outils se branchent à l’exécution par Kokkos Tools : une application se mesure sans recompilation ni correctif. Les connecteurs soumis en amont lisent la puissance via NVML ou Variorum ; une version AMD via ROCm SMI, pas encore publiée, est celle que j’ai fait tourner sur Frontier. energy-dashboard-for-kokkos, réécrit en Rust en septembre 2026, a un format de trace documenté, des tests sur une trace GPU réelle et des binaires publiés par la CI et archivés sur Zenodo avec un DOI. Les traces et le script derrière les chiffres DBSCAN sont publics, et la CI les recalcule.
Où ça en est
Le reste du profileur tient en trois pull requests que j’ai écrites, encore ouvertes : le cœur et l’export des mesures (#299), le connecteur NVML (#301, avec des modifications demandées) et le connecteur Variorum (#302, un brouillon d’environ 2 700 lignes qui inclut des tests unitaires). Son démon d’échantillonnage (#300) a été fusionné dans kokkos-tools en mars 2026, après que mon encadrant à l’ORNL, Jakob Bludau, l’a retravaillé pendant la relecture, après mon séjour. Neuf pull requests vers kokkos-tools et LAMMPS au total, dont certaines redécoupées ensuite ; trois fusionnées : le démon et deux correctifs de build. Un poster, avec Daniel Arndt, Jakob Bludau et Damien Lebrun-Grandié, présenté à la SMC 2025 et lors d’une session interne de l’ORNL, et cité dans le rapport de projet S4PST 2024–2025.
Technologies C++ · Kokkos · CUDA · NVML · ROCm SMI · Variorum · Slurm · Rust

