Profiling and Autotuning for Energy-Aware Approximate Programming

One promising approach to energy-efficient computation, approximate computing, trades off output precision for gains in energy efficiency. Many applications can easily tolerate small errors, especially if they are handled in a disciplined manner. However, approximation introduces an inherent tradeoff between quality of result and energy efficiency. Existing approaches lack ways to quantify and study these tradeoffs. This paper proposes tools to prototype, profile, and automatically tune the quality of programs designed to run on future approximate hardware. We describe the software layers required in such a system and discuss design considerations. We built an OCaml-based prototype of our set of tools and performed three case studies.

[1]  Donald Yeung,et al.  Exploiting Soft Computing for Increased Fault Tolerance , 2006 .

[2]  Krishna V. Palem,et al.  Ultra-Efficient (Embedded) SOC Architectures based on Probabilistic CMOS (PCMOS) Technology , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[3]  Vicky Wong,et al.  Soft Error Resilience of Probabilistic Inference Applications , 2006 .

[4]  Karthik Pattabiraman,et al.  Flicker: Saving Refresh-Power in Mobile Devices through Critical Data Partitioning , 2009 .

[5]  K. Sankaralingam,et al.  Exploring the Synergy of Emerging Workloads and Silicon Reliability Trends , 2009 .

[6]  Karthikeyan Sankaralingam,et al.  Relax: an architectural framework for software recovery of hardware faults , 2010, ISCA.

[7]  Douglas L. Jones,et al.  Scalable stochastic processors , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[8]  Woongki Baek,et al.  Green: a framework for supporting energy-conscious programming using controlled approximation , 2010, PLDI '10.

[9]  Quinn Jacobson,et al.  ERSA: error resilient system architecture for probabilistic applications , 2010, DATE 2010.

[10]  Henry Hoffmann,et al.  Quality of service profiling , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[11]  EnerJ: approximate data types for safe and general low-power computation , 2011, PLDI.

[12]  Daniel M. Roy,et al.  Probabilistically Accurate Program Transformations , 2011, SAS.

[13]  Henry Hoffmann,et al.  Dynamic knobs for responsive power-aware computing , 2011, ASPLOS XVI.

[14]  Dan Grossman,et al.  EnerJ: approximate data types for safe and general low-power computation , 2011, PLDI '11.

[15]  Henry Hoffmann,et al.  Managing performance vs. accuracy trade-offs with loop perforation , 2011, ESEC/FSE '11.

[16]  Martin Rinard,et al.  Reasoning about Relaxed Programs , 2011 .

[17]  Alan Edelman,et al.  Language and compiler support for auto-tuning variable-accuracy algorithms , 2011, International Symposium on Code Generation and Optimization (CGO 2011).

[18]  Luis Ceze,et al.  Architecture support for disciplined approximate programming , 2012, ASPLOS XVII.

[19]  Karthikeyan Sankaralingam,et al.  Dark Silicon and the End of Multicore Scaling , 2012, IEEE Micro.

[20]  Zeyuan Allen Zhu,et al.  Randomized accuracy-aware program transformations for efficient approximate computations , 2012, POPL '12.

[21]  Scott A. Mahlke,et al.  SAGE: Self-tuning approximation for graphics engines , 2013, 2013 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[22]  Michael F. Ringenburg,et al.  Dynamic Analyses of Result Quality in Energy-Aware Approximate Programs , 2014 .