ABSTRACT
Energy is increasingly a first-order concern in computer systems. Exploiting energy-accuracy trade-offs is an attractive choice in applications that can tolerate inaccuracies. Recent work has explored exposing this trade-off in programming models. A key challenge, though, is how to isolate parts of the program that must be precise from those that can be approximated so that a program functions correctly even as quality of service degrades.
We propose using type qualifiers to declare data that may be subject to approximate computation. Using these types, the system automatically maps approximate variables to low-power storage, uses low-power operations, and even applies more energy-efficient algorithms provided by the programmer. In addition, the system can statically guarantee isolation of the precise program component from the approximate component. This allows a programmer to control explicitly how information flows from approximate data to precise data. Importantly, employing static analysis eliminates the need for dynamic checks, further improving energy savings. As a proof of concept, we develop EnerJ, an extension to Java that adds approximate data types. We also propose a hardware architecture that offers explicit approximate storage and computation. We port several applications to EnerJ and show that our extensions are expressive and effective; a small number of annotations lead to significant potential energy savings (10%-50%) at very little accuracy cost.
- A. Agarwal, M. Rinard, S. Sidiroglou, S. Misailovic, and H. Hoffmann. Using code perforation to improve performance, reduce energy consumption, and respond to failures. Technical report, MIT, 2009.Google Scholar
- A. Askarov and A. C. Myers. A semantic framework for declassification and endorsement. In ESOP, 2010. Google ScholarDigital Library
- W. Baek and T. M. Chilimbi. Green: a framework for supporting energy-conscious programming using controlled approximation. In PLDI, 2010. Google ScholarDigital Library
- V. Bhalodia. SCALE DRAM subsystem power analysis. Master's thesis, MIT, 2005.Google Scholar
- D. Brooks, V. Tiwari, and M. Martonosi. Wattch: a framework for architectural-level power analysis and optimizations. In ISCA, 2000. Google ScholarDigital Library
- A. Carroll and G. Heiser. An analysis of power consumption in a smartphone. In USENIX, 2010. Google ScholarDigital Library
- A. Chlipala, L. Petersen, and R. Harper. Strict bidirectional type checking. In TLDI, 2005. Google ScholarDigital Library
- M. de Kruijf and K. Sankaralingam. Exploring the synergy of emerging workloads and silicon reliability trends. In SELSE, 2009.Google Scholar
- M. de Kruijf, S. Nomura, and K. Sankaralingam. Relax: an architectural framework for software recovery of hardware faults. In ISCA, 2010. Google ScholarDigital Library
- D. Ernst, N. S. Kim, S. Das, S. Pant, R. Rao, T. Pham, C. Ziesler, D. Blaauw, T. Austin, K. Flautner, and T. Mudge. Razor: a low-power pipeline based on circuit-level timing speculation. In MICRO, 2003. Google ScholarDigital Library
- M. D. Ernst. Type Annotations specification (JSR 308). http: //types.cs.washington.edu/jsr308/, 2008.Google Scholar
- X. Fan, W.-D. Weber, and L. A. Barroso. Power provisioning for a warehouse-sized computer. In ISCA, 2007. Google ScholarDigital Library
- K. Flautner, N. S. Kim, S. Martin, D. Blaauw, and T. Mudge. Drowsy caches: simple techniques for reducing leakage power. In ISCA, 2002. Google ScholarDigital Library
- J. S. Foster, M. Fähndrich, and A. Aiken. A theory of type qualifiers. In PLDI, 1999. Google ScholarDigital Library
- M. Ghosh and H.-H. S. Lee. Smart refresh: An enhanced memory controller design for reducing energy in conventional and 3D diestacked DRAMs. In MICRO, 2007. Google ScholarDigital Library
- A. Igarashi, B. C. Pierce, and P. Wadler. Featherweight Java: a minimal core calculus for Java and GJ. TOPLAS, 23(3), 2001. Google ScholarDigital Library
- A. Kahng, S. Kang, R. Kumar, and J. Sartori. Designing a processor from the ground up to allow voltage/reliability tradeoffs. In HPCA, 2010.Google ScholarCross Ref
- A. Kumar. SRAM Leakage-Power Optimization Framework: a System Level Approach. PhD thesis, University of California at Berkeley, 2008.Google Scholar
- L. Leem, H. Cho, J. Bau, Q. A. Jacobson, and S. Mitra. ERSA: error resilient system architecture for probabilistic applications. In DATE, 2010. Google ScholarDigital Library
- S. Li, J. H. Ahn, R. Strong, J. Brockman, D. Tullsen, and N. Jouppi. McPAT: An integrated power, area, and timing modeling framework for multicore and manycore architectures. In MICRO, 2009. Google ScholarDigital Library
- X. Li and D. Yeung. Exploiting soft computing for increased fault tolerance. In ASGI, 2006.Google Scholar
- X. Li and D. Yeung. Application-level correctness and its impact on fault tolerance. In HPCA, 2007. Google ScholarDigital Library
- S. Liu, K. Pattabiraman, T. Moscibroda, and B. G. Zorn. Flikker: Saving refresh-power in mobile devices through critical data partitioning. I ASPLOS, 2011. Google ScholarDigital Library
- A. Mahesri and V. Vardhan. Power consumption breakdown on a modern laptop. In PACS, 2004. Google ScholarDigital Library
- S. Misailovic, S. Sidiroglou, H. Hoffman, and M. Rinard. Quality of service profiling. In ICSE, 2010. Google ScholarDigital Library
- A. C. Myers. JFlow: practical mostly-static information flow control. In POPL, 1999. Google ScholarDigital Library
- K. Natarajan, H. Hanson, S. W. Keckler, C. R. Moore, and D. Burger. Microprocessor pipeline energy analysis. In ISLPED, 2003. Google ScholarDigital Library
- M. M. Papi, M. Ali, T. L. Correa Jr., J. H. Perkins, and M. D. Ernst. Practical pluggable types for Java. In ISSTA, 2008. Google ScholarDigital Library
- F. Perry and D. Walker. Reasoning about control flow in the presence of transient faults. In SAS, 2008. Google ScholarDigital Library
- F. Perry, L. Mackey, G. A. Reis, J. Ligatti, D. I. August, and D. Walker. Fault-tolerant typed assembly language. In PLDI, 2007. Google ScholarDigital Library
- M. Rinard, H. Hoffmann, S. Misailovic, and S. Sidiroglou. Patterns and statistical analysis for understanding reduced resource computing. In Onward!, 2010.Google Scholar
- A. Sabelfeld and A. C. Myers. Language-based information-flow security. IEEE Journal on Selected Areas in Communications, special issue on Formal Methods for Security, 21(1), 2003. Google ScholarDigital Library
- A. Sampson, W. Dietl, E. Fortuna, D. Gnanapragasam, L. Ceze, and D. Grossman. EnerJ: Approximate Data Types for Safe and General Low-Power Computation--- Full Proofs. Technical Report UW-CSE-10-12-01, University of Washington, 2011.Google ScholarDigital Library
- J. Y. F. Tong, D. Nagle, and R. A. Rutenbar. Reducing power by optimizing the necessary precision/range of floating-point arithmetic. IEEE Trans. VLSI Syst., 8(3), 2000. Google ScholarDigital Library
- V. Wong and M. Horowitz. Soft error resilience of probabilistic inference applications. In SELSE, 2006.Google Scholar
Index Terms
- EnerJ: approximate data types for safe and general low-power computation
Recommendations
Architecture support for disciplined approximate programming
ASPLOS XVII: Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating SystemsDisciplined approximate programming lets programmers declare which parts of a program can be computed approximately and consequently at a lower energy cost. The compiler proves statically that all approximate computation is properly isolated from ...
EnerJ: approximate data types for safe and general low-power computation
PLDI '11Energy is increasingly a first-order concern in computer systems. Exploiting energy-accuracy trade-offs is an attractive choice in applications that can tolerate inaccuracies. Recent work has explored exposing this trade-off in programming models. A key ...
Architecture support for disciplined approximate programming
ASPLOS '12Disciplined approximate programming lets programmers declare which parts of a program can be computed approximately and consequently at a lower energy cost. The compiler proves statically that all approximate computation is properly isolated from ...
Comments