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 Scholar
Digital Library
- W. Baek and T. M. Chilimbi. Green: a framework for supporting energy-conscious programming using controlled approximation. In PLDI, 2010. Google Scholar
Digital 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 Scholar
Digital Library
- A. Carroll and G. Heiser. An analysis of power consumption in a smartphone. In USENIX, 2010. Google Scholar
Digital Library
- A. Chlipala, L. Petersen, and R. Harper. Strict bidirectional type checking. In TLDI, 2005. Google Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital Library
- J. S. Foster, M. Fähndrich, and A. Aiken. A theory of type qualifiers. In PLDI, 1999. Google Scholar
Digital 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 Scholar
Digital Library
- A. Igarashi, B. C. Pierce, and P. Wadler. Featherweight Java: a minimal core calculus for Java and GJ. TOPLAS, 23(3), 2001. Google Scholar
Digital 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 Scholar
Cross 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital Library
- A. Mahesri and V. Vardhan. Power consumption breakdown on a modern laptop. In PACS, 2004. Google Scholar
Digital Library
- S. Misailovic, S. Sidiroglou, H. Hoffman, and M. Rinard. Quality of service profiling. In ICSE, 2010. Google Scholar
Digital Library
- A. C. Myers. JFlow: practical mostly-static information flow control. In POPL, 1999. Google Scholar
Digital Library
- K. Natarajan, H. Hanson, S. W. Keckler, C. R. Moore, and D. Burger. Microprocessor pipeline energy analysis. In ISLPED, 2003. Google Scholar
Digital 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 Scholar
Digital Library
- F. Perry and D. Walker. Reasoning about control flow in the presence of transient faults. In SAS, 2008. Google Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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
EnerJ: approximate data types for safe and general low-power computation
PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and ImplementationEnergy 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 ...
Flikker: saving DRAM refresh-power through critical data partitioning
ASPLOS '11Energy has become a first-class design constraint in computer systems. Memory is a significant contributor to total system power. This paper introduces Flikker, an application-level technique to reduce refresh power in DRAM memories. Flikker enables ...
Flikker: saving DRAM refresh-power through critical data partitioning
ASPLOS XVI: Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systemsEnergy has become a first-class design constraint in computer systems. Memory is a significant contributor to total system power. This paper introduces Flikker, an application-level technique to reduce refresh power in DRAM memories. Flikker enables ...







Comments