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.
@article{osti_1286958,
author = {Mittal, Sparsh},
title = {A Survey of Techniques for Approximate Computing},
annote = {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.},
doi = {10.1145/2893356},
url = {https://www.osti.gov/biblio/1286958},
journal = {ACM Computing Surveys},
issn = {ISSN 0360-0300},
number = {4},
volume = {48},
place = {United States},
publisher = {Association for Computing Machinery (ACM)},
year = {2016},
month = {03}}
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
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 Multimediahttps://doi.org/10.1109/ESTIMedia.2013.6704499
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 Designhttps://doi.org/10.1109/ISLPED.2011.5993675
2011 24th International Conference on VLSI Design: concurrently with the 10th International Conference on Embedded Systems Design, 2011 24th Internatioal Conference on VLSI Designhttps://doi.org/10.1109/VLSID.2011.51
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 '11https://doi.org/10.1145/2025113.2025133
Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS '12https://doi.org/10.1145/2150976.2151008
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems - ASPLOS '14https://doi.org/10.1145/2541940.2541948
Bornholt, James; Mytkowicz, Todd; McKinley, Kathryn S.
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems - ASPLOS '14https://doi.org/10.1145/2541940.2541958
Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications - OOPSLA '14https://doi.org/10.1145/2660193.2660231
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 Programminghttps://doi.org/10.1145/2688500.2688546
Ringenburg, Michael; Sampson, Adrian; Ackerman, Isaac
Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS '15https://doi.org/10.1145/2694344.2694365
Ndour, Geneviève; Jost, Tiago Trevisan; Molnos, Anca
Proceedings of the 18th International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulationhttps://doi.org/10.1145/3229631.3229646
HPCAsia2020: International Conference on High Performance Computing in Asia-Pacific Region, Proceedings of the International Conference on High Performance Computing in Asia-Pacific Regionhttps://doi.org/10.1145/3368474.3368492