EnerJ: Approximate Data Types for Safe and General Low-Power Computation

被引:235
作者
Sampson, Adrian [1 ]
Dietl, Werner [1 ]
Fortuna, Emily [1 ]
Gnanapragasam, Danushen [1 ]
Ceze, Luis [1 ]
Grossman, Dan [1 ]
机构
[1] Univ Washington, Dept Comp Sci & Engn, Seattle, WA 98195 USA
关键词
Languages; Performance; Design; Accuracy-aware computing; power-aware computing; energy; soft errors; critical data;
D O I
10.1145/1993316.1993518
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:164 / 174
页数:11
相关论文
共 35 条
[1]  
Agarwal Anant., 2009, Using code perforation to improve performance, reduce energy consumption, and respond to failures
[2]  
[Anonymous], 2007, ISCA
[3]  
[Anonymous], ISCA
[4]  
[Anonymous], 2003, MICRO
[5]  
[Anonymous], 2010, ICSE
[6]  
[Anonymous], 2009, MICRO
[7]  
[Anonymous], 2011, ASPLOS
[8]  
[Anonymous], 2007, MICRO
[9]  
Askarov A., 2010, ESOP
[10]  
Baek W., 2010, PLDI