Projet phare
Mesurer où part l'énergie sur le GPU
Outillage de mesure d'énergie pour Kokkos, le cadre de portabilité des performances du Département de l'Énergie américain. Connecteurs intégrés à Kokkos Tools, avec un tableau de bord d'analyse.
Le problème
Kokkos permet de faire tourner une même source C++ sur des GPU NVIDIA, AMD et Intel, et c'est précisément pour cela que l'énergie est difficile à raisonner : le même noyau consomme une puissance différente sur chaque backend, et les équipes applicatives n'avaient aucun moyen portable de la voir. Sur les machines du DOE, où la puissance est désormais une contrainte de premier ordre, cet angle mort compte.
Ce que j'ai construit
Un ensemble de connecteurs Kokkos Tools qui échantillonnent la puissance pendant l'exécution des noyaux et attribuent l'énergie intégrée aux régions Kokkos qui l'ont causée : un backend NVML pour les GPU NVIDIA, un backend Variorum pour la puissance au niveau nœud, un démon d'arrière-plan échantillonnant à intervalle fixe, et un export CSV. Par-dessus, un tableau de bord Python transforme ces sorties en analyse d'énergie par noyau. L'outil s'accroche à l'interface de profilage de Kokkos : le code applicatif reste intact.
Où ça en est
Le démon d'échantillonnage périodique est intégré à kokkos-tools, fait l'objet d'un rapport ORNL et a été présenté sous forme de poster, « Understanding GPU Energy Dynamics in HPC Applications », à la Smoky Mountains Conference 2025. Les connecteurs NVML et Variorum sont en revue, avec ROCm SMI esquissé pour AMD.