Compiler-directed dynamic voltage scaling using program phases

  • Authors:
  • K. Shyam;R. Govindarajan

  • Affiliations:
  • Sasken Communication Technologies Limited, Bangalore, India;SuperComputer Education and Research Center, Indian Institute of Science, Bangalore, India

  • Venue:
  • HiPC'07 Proceedings of the 14th international conference on High performance computing
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Energy consumption has become a major constraint in providing increased functionality for devices with small form factors. Dynamic voltage and frequency scaling has been identified as an effective approach for reducing the energy consumption of embedded systems. Earlier works on dynamic voltage scaling focused mainly on performing voltage scaling when the CPU is waiting for memory subsystem or concentrated chiefly on loop nests and/or subroutine calls having sufficient number of dynamic instructions. This paper concentrates on coarser program regions and for the first time uses program phase behavior for performing dynamic voltage scaling. Program phases are annotated at compile time with mode switch instructions. Further, we relate the Dynamic Voltage Scaling Problem to the Multiple Choice Knapsack Problem, and use well known heuristics to solve it efficiently. Also, we develop a simple integer linear program formulation for this problem. Experimental evaluation on a set of media applications reveal that our heuristic method obtains a 38% reduction in energy consumption on an average, with a performance degradation of 1% and upto 45% reduction in energy with a performance degradation of 5%. Further, the energy consumed by the heuristic solution is within 1% of the optimal solution obtained from the ILP approach.