Compilation and Hardware Support for Approximate Acceleration

Approximate computing exposes opportunities to increase the efficiency of computer systems by trading-off accuracy for energy savings. These optimization opportunities can be found in many emerging classes of applications which exhibit a degree of tolerance to imprecision. Taking full advantage of approximation requires a programming model that provides control to the programmer over what portions of a program can be approximated, as well as hardware-based techniques that can effectively trade-off accuracy for energy savings. We describe ACCEPT, a compiler framework for approximate programs and SNNAP, an approximate accelerator that can efficiently offload regions of approximate code. Using ACCEPT, a software programmer can leverage the benefits of approximate computing by annotating software with data-centric annotations and letting the compiler identify the best approximation strategies based on accuracy requirements. We evaluate programs that offload approximate computation on SNNAP, and observe an average speedup of 3.8× and an average energy saving of 2.8×.

[1]  Jacob Nelson,et al.  SNNAP: Approximate computing on programmable SoCs via neural acceleration , 2015, 2015 IEEE 21st International Symposium on High Performance Computer Architecture (HPCA).

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

[3]  Luis Ceze,et al.  Neural Acceleration for General-Purpose Approximate Programs , 2012, 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture.

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