The Case for Learning Application Behavior to Improve Hardware Energy   Efficiency
Computer applications are continuously evolving. However, significant knowledge can be harvested from a set of applications and applied in the context of unknown applications. In this paper, we propose to use the harvested knowledge to tune hardware configurations. The goal of such tuning is to maximize hardware efficiency (i.e., maximize an applications performance while minimizing the energy consumption). Our proposed approach, called FORECASTER, uses a deep learning model to learn what configuration of hardware resources provides the optimal energy efficiency for a certain behavior of an application. During the execution of an unseen application, the model uses the learned knowledge to reconfigure hardware resources in order to maximize energy efficiency. We have provided a detailed design and implementation of FORECASTER and compared its performance against a prior state-of-the-art hardware reconfiguration approach. Our results show that FORECASTER can save as much as 18.4% system power over the baseline set up with all resources. On average, FORECASTER saves 16% system power over the baseline setup while sacrificing less than 0.01% of overall performance. Compared to the prior scheme, FORECASTER increases power savings by 7%.