GRAPE: Minimizing Energy for Interactive GPU Applications (2016)

This paper was one of the early ones to recognize that GPUs are increasingly being used for performance-critical systems. Specifically, this paper talks about interactive systems, but it means systems that interact with the world; for example, a system that is processing sensor data on a GPU (perhaps using AI methods).

The paper recognized that such sensor data represents a dynamic workload which creates configuration challenges and the GPU itself is a complex system with many configuration parameters.

This paper again used machine learning to estimate the energy/performance tradeoffs of different GPU configurations and it then passed those estimations to a control system that would monitor system performance and ensure that timing requirements were met by dynamically configuring the GPU configurations and minimizing energy.

Read abstract

Many applications have performance requirements (e.g., real-time deadlines or quality-of-service goals), and tremendous energy savings can be achieved by tailoring resource usage so the application just meets its performance using minimal resources. This problem is a classic constrained optimization: the performance goal is the constraint, and energy consumption is the objective to be optimized. While several existing hardware approaches solve unconstrained optimizations (i.e., maximizing performance or minimizing energy), we are not aware of a hardware approach that minimizes GPU energy under an externally defined performance constraint. Therefore, we propose GRAPE, a hardware control system for GPUs that coordinates core usage, wavefront/warp action, core speed, and memory speed to deliver user-specified performance while minimizing energy. We implement GRAPE in VHDL (to demonstrate feasibility) and as an extension to GPGPU-Sim (for performance and power measurement). We find that GRAPE can be implemented with very low hardware overhead; however, compared to the no-overhead approach of race-to-idle, GRAPE reduces energy by 9-26% (depending on the performance goal) while meeting performance goals with an average error of 0.75%.