Machine Learning for Run-Time Energy Optimisation in Many-Core Systems
Dwaipayan Biswas1,a, Vibishna Balagopal1,b, Rishad Shafik2, Bashir M. Al-Hashimi1,c and Geoff V. Merrett1,d
1Department of Electronics and Computer Science, University of Southampton, United Kingdom, SO17 1BJ.
adb9g10@ecs.soton.ac.uk
bvb1a15@ecs.soton.ac.uk
cgvm@ecs.soton.ac.uk
dbmah@ecs.soton.ac.uk
2School of Electrical and Electronic Engineering, Newcastle University, United Kingdom, NE1 7RU.
rishad.shafik@ncl.ac.uk
ABSTRACT
In recent years, the focus of computing has moved away from performance-centric serial computation to energyefficient parallel computation. This necessitates run-time optimisation techniques to address the dynamic resource requirements of different applications on many-core architectures. In this paper, we report on intelligent run-time algorithms which have been experimentally validated for managing energy and application performance in many-core embedded system. The algorithms are underpinned by a crosslayer system approach where the hardware, system software and application layers work together to optimise the energyperformance trade-off. Algorithm development is motivated by the biological process of how a human brain (acting as an agent) interacts with the external environment (system) changing their respective states over time. This leads to a pay-off for the action taken, and the agent eventually learns to take the optimal/best decisions in future. In particular, our online approach uses a model-free reinforcement learning algorithm that suitably selects the appropriate voltage-frequency scaling based on workload prediction to meet the applications' performance requirements and achieve energy savings of up to 16% in comparison to state-of-the-art-techniques, when tested on four ARM A15 cores of an ODROID-XU3 platform.
Keywords: Energy management, Dynamic voltage/frequency scaling, Reinforcement learning, Multi-core systems.