Data-Driven Power Modeling and Monitoring via Hardware Performance Counters Tracking
Sergio Mazzola, Gabriele Ara, Thomas Benz, Björn Forsberg, Tommaso Cucinotta, Luca Benini
TL;DR
The paper addresses online, fine-grained power estimation for heterogeneous, DVFS-enabled platforms. It proposes a data-driven, architecture-agnostic PMC-based approach that decomposes the system into sub-systems, learns per-DVFS linear predictors, and composes them with a LUT; Runmeter implements this in the Linux kernel with a moving-window PMC sampler. The work demonstrates that, on an NVIDIA Jetson Xavier, instantaneous power MAPEs reach $7.5\%$ and energy MAPEs reach $1.3\%$ while incurring only $0.7\%$ runtime overhead, enabling practical power-aware dynamic power management and scheduling. It further contributes an automated counter-selection, NNLS-based training, and an in-kernel monitoring framework, paving the way for broader OS integration and extension to additional sub-systems.
Abstract
In the current high-performance and embedded computing era, full-stack energy-centric design is paramount. Use cases require increasingly high performance at an affordable power budget, often under real-time constraints. Extreme heterogeneity and parallelism address these issues but greatly complicate online power consumption assessment, which is essential for dynamic hardware and software stack adaptations. We introduce a novel architecture-agnostic power modeling methodology with state-of-the-art accuracy, low overhead, and high responsiveness. Our methodology identifies the best Performance Monitoring Counters (PMCs) to model the power consumption of each hardware sub-system at each Dynamic Voltage and Frequency Scaling (DVFS) state. The individual linear models are combined into a complete model that effectively describes the power consumption of the whole system, achieving high accuracy and low overhead. Our evaluation reports an average estimation error of 7.5 % for power consumption and 1.3 % for energy. Furthermore, we propose Runmeter, an open-source, PMC-based monitoring framework integrated into the Linux kernel. Runmeter manages PMC samples collection and manipulation, efficiently evaluating our power models at runtime. With a time overhead of only 0.7 % in the worst case, Runmeter provides responsive and accurate power measurements directly in the kernel, which can be employed for actuation policies such as Dynamic Power Management (DPM) and power-aware task scheduling.
