skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: A Survey of Techniques for Approximate Computing

Journal Article · · ACM Computing Surveys
DOI:https://doi.org/10.1145/2893356· OSTI ID:1286958
 [1]
  1. Oak Ridge National Lab. (ORNL), Oak Ridge, TN (United States)

Approximate computing trades off computation quality with the effort expended and as rising performance demands confront with plateauing resource budgets, approximate computing has become, not merely attractive, but even imperative. Here, we present a survey of techniques for approximate computing (AC). We discuss strategies for finding approximable program portions and monitoring output quality, techniques for using AC in different processing units (e.g., CPU, GPU and FPGA), processor components, memory technologies etc., and programming frameworks for AC. Moreover, we classify these techniques based on several key characteristics to emphasize their similarities and differences. Finally, the aim of this paper is to provide insights to researchers into working of AC techniques and inspire more efforts in this area to make AC the mainstream computing approach in future systems.

Research Organization:
Oak Ridge National Laboratory (ORNL), Oak Ridge, TN (United States)
Sponsoring Organization:
USDOE Office of Science (SC), Advanced Scientific Computing Research (ASCR)
Grant/Contract Number:
AC05-00OR22725
OSTI ID:
1286958
Journal Information:
ACM Computing Surveys, Vol. 48, Issue 4; ISSN 0360-0300
Publisher:
Association for Computing Machinery (ACM)Copyright Statement
Country of Publication:
United States
Language:
English
Citation Metrics:
Cited by: 576 works
Citation information provided by
Web of Science

References (94)

Uncertain: a first-order type for uncertain data
  • Bornholt, James; Mytkowicz, Todd; McKinley, Kathryn S.
  • Proceedings of the 19th international conference on Architectural support for programming languages and operating systems - ASPLOS '14 https://doi.org/10.1145/2541940.2541958
conference January 2014
Leveraging the error resilience of machine-learning applications for designing highly energy efficient accelerators conference January 2014
BRAINIAC: Bringing reliable accuracy into neurally-implemented approximate computing conference February 2015
A Survey Of Architectural Approaches for Managing Embedded DRAM and Non-Volatile On-Chip Caches journal June 2015
Managing performance vs. accuracy trade-offs with loop perforation
  • Sidiroglou-Douskos, Stelios; Misailovic, Sasa; Hoffmann, Henry
  • Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering - SIGSOFT/FSE '11 https://doi.org/10.1145/2025113.2025133
conference January 2011
SNNAP: Approximate computing on programmable SoCs via neural acceleration conference February 2015
Error-Resilient Motion Estimation Architecture journal October 2008
Approximate storage for energy efficient spintronic memories conference January 2015
EnerJ: approximate data types for safe and general low-power computation journal June 2011
Mitigating the impact of faults in unreliable memories for error-resilient applications conference January 2015
Accelerating Divergent Applications on SIMD Architectures Using Neural Networks journal April 2015
Trading Accuracy for Power with an Underdesigned Multiplier Architecture
  • Kulkarni, P.; Gupta, P.; Ercegovac, M.
  • 2011 24th International Conference on VLSI Design: concurrently with the 10th International Conference on Embedded Systems Design, 2011 24th Internatioal Conference on VLSI Design https://doi.org/10.1109/VLSID.2011.51
conference January 2011
Architecture support for disciplined approximate programming journal June 2012
Axilog: Language Support for Approximate Hardware Design
  • Yazdanbakhsh, Amir; Mahajan, Divya; Thwaites, Bradley
  • Design, Automation and Test in Europe, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2015 https://doi.org/10.7873/DATE.2015.0513
conference January 2015
AxNN: energy-efficient neuromorphic systems using approximate computing conference January 2014
A variability-aware OpenMP environment for efficient execution of accuracy-configurable computation on shared-FPU processor clusters conference September 2013
Load Value Approximation conference December 2014
Approximate computing and the quest for computing efficiency conference January 2015
Extracting Useful Computation from Error-Prone Processors for Streaming Applications
  • Yetim, Yavuz; Martonosi, Margaret; Malik, Sharad
  • Design Automation and Test in Europe, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2013 https://doi.org/10.7873/date.2013.055
conference January 2013
Language and compiler support for auto-tuning variable-accuracy algorithms
  • Ansel, Jason; Wong, Yee Lok; Chan, Cy
  • 2011 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization (CGO), International Symposium on Code Generation and Optimization (CGO 2011) https://doi.org/10.1109/CGO.2011.5764677
conference April 2011
Precision-energy-throughput scaling of generic matrix multiplication and discrete convolution kernels via linear projections
  • Anam, Mohammad Ashraful; Whatmough, Paul N.; Andreopoulos, Yiannis
  • 2013 IEEE 11th Symposium on Embedded Systems for Real-time Multimedia (ESTIMedia), The 11th IEEE Symposium on Embedded Systems for Real-time Multimedia https://doi.org/10.1109/ESTIMedia.2013.6704499
conference October 2013
Best-effort semantic document search on GPUs
  • Byna, Surendra; Meng, Jiayuan; Raghunathan, Anand
  • Proceedings of the 3rd Workshop on General-Purpose Computation on Graphics Processing Units - GPGPU '10 https://doi.org/10.1145/1735688.1735705
conference January 2010
Monitoring and Debugging the Quality of Results in Approximate Programs
  • Ringenburg, Michael; Sampson, Adrian; Ackerman, Isaac
  • Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS '15 https://doi.org/10.1145/2694344.2694365
conference January 2015
Dynamically adaptive and reliable approximate computing using light-weight error analysis conference July 2014
IMPACT: IMPrecise adders for low-power approximate computing
  • Gupta, Vaibhav; Mohapatra, Debabrata; Park, Sang Phill
  • 2011 International Symposium on Low Power Electronics and Design (ISLPED), IEEE/ACM International Symposium on Low Power Electronics and Design https://doi.org/10.1109/ISLPED.2011.5993675
conference August 2011
Neural acceleration for general-purpose approximate programs journal January 2015
A survey of architectural techniques for DRAM power management journal January 2012
ASAC: automatic sensitivity analysis for approximate computing
  • Roy, Pooja; Ray, Rajarshi; Wang, Chundong
  • Proceedings of the 2014 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems - LCTES '14 https://doi.org/10.1145/2597809.2597812
conference January 2014
Fuzzy Memoization for Floating-Point Multimedia Applications journal July 2005
The Art of Deception: Adaptive Precision Reduction for Area Efficient Physics Acceleration conference December 2007
Paraprox: pattern-based approximation for data parallel applications
  • Samadi, Mehrzad; Jamshidi, Davoud Anoushe; Lee, Janghaeng
  • Proceedings of the 19th international conference on Architectural support for programming languages and operating systems - ASPLOS '14 https://doi.org/10.1145/2541940.2541948
conference January 2014
Quality Configurable Reduce-and-Rank for Energy Efficient Approximate Computing
  • Raha, Arnab; Venkataramani, Swagath; Raghunathan, Vijay
  • Design, Automation and Test in Europe, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2015 https://doi.org/10.7873/DATE.2015.0569
conference January 2015
SALSA: systematic logic synthesis of approximate circuits conference January 2012
Low power GPGPU computation with imprecise hardware conference June 2014
Accuracy-configurable adder for approximate arithmetic designs conference January 2012
Scalable Effort Hardware Design journal September 2014
Scalable-effort classifiers for energy-efficient machine learning conference January 2015
RRAM-Based Analog Approximate Computing journal December 2015
Opportunities for Nonvolatile Memory Systems in Extreme-Scale High-Performance Computing journal March 2015
A programming model and runtime system for significance-aware energy-efficient computing
  • Vassiliadis, Vassilis; Parasyris, Konstantinos; Chalios, Charalambos
  • PPoPP '15: 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming https://doi.org/10.1145/2688500.2688546
conference January 2015
SAGE: self-tuning approximation for graphics engines conference January 2013
Approximate storage in solid-state memories conference January 2013
Quality programmable vector processors for approximate computing
  • Venkataramani, Swagath; Chippa, Vinay K.; Chakradhar, Srimat T.
  • Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture - MICRO-46 https://doi.org/10.1145/2540708.2540710
conference January 2013
Uncertain< T >: a first-order type for uncertain data journal April 2014
Energy-aware hybrid precision selection framework for mobile GPUs journal August 2013
ApproxHadoop: Bringing Approximations to MapReduce Frameworks journal May 2015
Low Power GPGPU Computation with Imprecise Hardware dissertation December 2014
General-purpose code acceleration with limited-precision analog computation conference June 2014
Approximate Associative Memristive Memory for Energy-Efficient GPUs
  • Rahimi, Abbas; Ghofrani, Amirali; Cheng, Kwang-Ting
  • Design, Automation and Test in Europe, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2015 https://doi.org/10.7873/DATE.2015.0579
conference January 2015
Branch and Data Herding: Reducing Control and Memory Divergence for Error-Tolerant GPU Applications journal February 2013
EMEURO: A framework for generating multi-purpose accelerators via deep learning conference February 2015
A Survey of Architectural Techniques for Near-Threshold Computing journal July 2016
Low Power GPGPU Computation with Imprecise Hardware conference January 2014
Chisel: reliability- and accuracy-aware optimization of approximate computational kernels journal December 2014
ApproxANN: An Approximate Computing Framework for Artificial Neural Network conference January 2015
Best-effort computing: re-thinking parallel software and hardware conference January 2010
ApproxMA: Approximate Memory Access for Dynamic Precision Scaling conference January 2015
General-purpose code acceleration with limited-precision analog computation journal October 2014
Analysis and characterization of inherent application resilience for approximate computing conference January 2013
SoftPCM: Enhancing Energy Efficiency and Lifetime of Phase Change Memory in Video Applications via Approximate Write conference November 2012
Architecture support for disciplined approximate programming journal April 2012
Monitoring and Debugging the Quality of Results in Approximate Programs journal May 2015
Neural Acceleration for General-Purpose Approximate Programs conference December 2012
Paraprox: pattern-based approximation for data parallel applications journal April 2014
Verifying quantitative reliability for programs that execute on unreliable hardware journal November 2013
A programming model and runtime system for significance-aware energy-efficient computing journal December 2015
Energy-efficient signal processing via algorithmic noise-tolerance conference January 1999
Rumba: an online quality management system for approximate computing journal January 2016
Spatial Memoization: Concurrent Instruction Reuse to Correct Timing Errors in SIMD Architectures journal December 2013
Green: a framework for supporting energy-conscious programming using controlled approximation journal June 2010
A survey of architectural techniques for improving cache power efficiency journal March 2014
The Art of Deception: Adaptive Precision Reduction for Area Efficient Physics Acceleration conference December 2007
Neural network-based accelerators for transcendental function approximation conference January 2014
Exploiting Partially-Forgetful Memories for Approximate Computing journal March 2015
eDRAM-based tiered-reliability memory with applications to low-power frame buffers conference January 2014
Exploring Data-Level Error Tolerance in High-Performance Solid-State Drives journal March 2015
Rumba: an online quality management system for approximate computing conference January 2015
Opportunities for Energy Efficient Computing: A Study of Inexact General Purpose Processors for High-Performance and Big-Data Applications
  • Düben, Peter; Schlachter, Jeremy; ., Parishkrati
  • Design, Automation and Test in Europe, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2015 https://doi.org/10.7873/DATE.2015.1116
conference January 2015
Flikker: saving DRAM refresh-power through critical data partitioning journal June 2012
More Flops or More Precision? Accuracy Parameterizable Linear Equation Solvers for Model Predictive Control conference April 2009
A Survey of Techniques for Modeling and Improving Reliability of Computing Systems journal April 2016
ASAC: automatic sensitivity analysis for approximate computing journal May 2014
EnerJ: approximate data types for safe and general low-power computation
  • Sampson, Adrian; Dietl, Werner; Fortuna, Emily
  • Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation - PLDI '11 https://doi.org/10.1145/1993498.1993518
conference January 2011
Composable Lightweight Processors conference December 2007
Energy-efficient signal processing via algorithmic noise-tolerance conference January 1999
Neural Acceleration for General-Purpose Approximate Programs journal May 2013
Architecture support for disciplined approximate programming
  • Esmaeilzadeh, Hadi; Sampson, Adrian; Ceze, Luis
  • Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS '12 https://doi.org/10.1145/2150976.2151008
conference January 2012
Monitoring and Debugging the Quality of Results in Approximate Programs journal May 2015
Flikker: saving DRAM refresh-power through critical data partitioning journal March 2011
Branch and data herding: reducing control and memory divergence for error-tolerant GPU applications conference January 2012
Approximate Storage in Solid-State Memories journal September 2014
Chisel: reliability- and accuracy-aware optimization of approximate computational kernels
  • Misailovic, Sasa; Carbin, Michael; Achour, Sara
  • Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications - OOPSLA '14 https://doi.org/10.1145/2660193.2660231
conference January 2014
ApproxHadoop: Bringing Approximations to MapReduce Frameworks journal May 2015
Verifying quantitative reliability for programs that execute on unreliable hardware journal July 2016

Cited By (23)

Forecasting accident frequency of an urban road network: A comparison of four artificial neural network techniques journal August 2018
The Effectiveness of Low-Precision Floating Arithmetic on Numerical Codes: A Case Study on Power Consumption
  • Sakamoto, Ryuichi; Kondo, Masaaki; Fujita, Kohei
  • HPCAsia2020: International Conference on High Performance Computing in Asia-Pacific Region, Proceedings of the International Conference on High Performance Computing in Asia-Pacific Region https://doi.org/10.1145/3368474.3368492
conference January 2020
Brian 2: an intuitive and efficient neural simulator journal April 2019
An Ultra-Area-Efficient 1024-Point In-Memory FFT Processor journal July 2019
A survey of techniques for improving efficiency of mobile web browsing journal July 2018
Using Approximate Computing and Selective Hardening for the Reduction of Overheads in the Design of Radiation-Induced Fault-Tolerant Systems journal December 2019
A survey of techniques for architecting SLC/MLC/TLC hybrid Flash memory-based SSDs: A survey of techniques for architecting hybrid flash memory based SSDs
  • Alsalibi, Ahmed Izzat; Mittal, Sparsh; Al-Betar, Mohammed Azmi
  • Concurrency and Computation: Practice and Experience, Vol. 30, Issue 13 https://doi.org/10.1002/cpe.4420
journal January 2018
Error metrics determination in functionally approximated circuits using SAT solvers journal January 2020
A Survey of ReRAM-Based Architectures for Processing-In-Memory and Neural Networks journal April 2018
A Variation-Aware Design Methodology for Distributed Arithmetic journal January 2019
A Survey of Soft-Error Mitigation Techniques for Non-Volatile Memories journal February 2017
Low power and area efficient error tolerant adder for image processing application journal January 2020
Test and Reliability in Approximate Computing journal May 2018
On Quantitative Algebraic Higher-Order Theories preprint January 2022
Evaluation of approximate operators case study
  • Ndour, Geneviève; Jost, Tiago Trevisan; Molnos, Anca
  • Proceedings of the 18th International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation https://doi.org/10.1145/3229631.3229646
conference July 2018
Evaluation of variable bit-width units in a RISC-V processor for approximate computing conference April 2019
Towards Approximate Mobile Computing journal May 2019
Optimizing Bit-Serial Matrix Multiplication for Reconfigurable Computing
  • Umuroglu, Yaman; Conficconi, Davide; Rasnayake, Lahiru
  • ACM Transactions on Reconfigurable Technology and Systems, Vol. 12, Issue 3 https://doi.org/10.1145/3337929
journal August 2019
A GPU Register File using Static Data Compression conference August 2020
Understanding Cache Compression journal June 2021
On Quantitative Algebraic Higher-Order Theories text January 2022
Differential Logical Relations, Part I: The Simply-Typed Case text January 2019
Mez: A Messaging System for Latency-Sensitive Multi-Camera Machine Vision at the IoT Edge preprint January 2020