skip to main content
survey
Open Access

Exploiting Errors for Efficiency: A Survey from Circuits to Applications

Authors Info & Claims
Published:12 June 2020Publication History
Skip Abstract Section

Abstract

When a computational task tolerates a relaxation of its specification or when an algorithm tolerates the effects of noise in its execution, hardware, system software, and programming language compilers or their runtime systems can trade deviations from correct behavior for lower resource usage. We present, for the first time, a synthesis of research results on computing systems that only make as many errors as their end-to-end applications can tolerate. The results span the disciplines of computer-aided design of circuits, digital system design, computer architecture, programming languages, operating systems, and information theory. Rather than over-provisioning the resources controlled by each of these layers of abstraction to avoid errors, it can be more efficient to exploit the masking of errors occurring at one layer and thereby prevent those errors from propagating to a higher layer.

We demonstrate the potential benefits of end-to-end approaches using two illustrative examples. We introduce a formalization of terminology that allows us to present a coherent view across the techniques traditionally used by different research communities in their individual layer of focus. Using this formalization, we survey tradeoffs for individual layers of computing systems at the circuit, architecture, operating system, and programming language levels as well as fundamental information-theoretic limits to tradeoffs between resource usage and correctness.

References

  1. Sara Achour and Martin C. Rinard. 2015. Approximate computation with outlier detection in topaz. In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages, and Applications. 711--730.Google ScholarGoogle Scholar
  2. Sameer Agarwal, Barzan Mozafari, Aurojit Panda, Henry Milner, Samuel Madden, and Ion Stoica. 2013. BlinkDB: Queries with bounded errors and bounded response times on very large data. In Proceedings of the European Conference on Computer Systems. 29--42.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Ismail Akturk, Karen Khatamifard, and Ulya R. Karpuzcu. 2015. On quantification of accuracy loss in approximate computing. In Proceedings of the Workshop on Duplicating, Deconstructing and Debunking (WDDD’15). 15.Google ScholarGoogle Scholar
  4. Armin Alaghi and John P. Hayes. 2013. Survey of stochastic computing. ACM Trans. Embed. Comput. Syst. 12, 2s (2013), 92:1--92:19.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Armin Alaghi and John P. Hayes. 2014. Fast and accurate computation using stochastic circuits. In Proceedings of the Design, Automation Test in Europe Conference (DATE’14). 1--4.Google ScholarGoogle Scholar
  6. Armin Alaghi, Weikang Qian, and John P. Hayes. 2018. The promise and challenge of stochastic computing. IEEE Trans. Comput.-Aided Design Integr. Circ. Syst. 37, 8 (2018), 1515–1531. DOI:10.1109/TCAD.2017.2778107Google ScholarGoogle ScholarCross RefCross Ref
  7. Rajeevan Amirtharajah and Anantha P. Chandrakasan. 2004. A micropower programmable DSP using approximate signal processing based on distributed arithmetic. IEEE J. Solid-State Circ. 39, 2 (2004), 337--347.Google ScholarGoogle ScholarCross RefCross Ref
  8. Jason Ansel, Cy Chan, Yee Lok Wong, Marek Olszewski, Qin Zhao, Alan Edelman, and Saman Amarasinghe. 2009. PetaBricks: A language and compiler for algorithmic choice. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI’09). 38--49.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Jason Ansel, Yee Lok Wong, Cy Chan, Marek Olszewski, Alan Edelman, and Saman Amarasinghe. 2011. Language and compiler support for auto-tuning variable-accuracy algorithms. In Proceedings of the International Symposium on Code Generation and Optimization (CGO’11). IEEE Computer Society, 85--96.Google ScholarGoogle ScholarCross RefCross Ref
  10. Alexander Aponte-Moreno, Alejandro Moncada, Felipe Restrepo-Calle, and Cesar Pedraza. 2018. A review of approximate computing techniques towards fault mitigation in HW/SW systems. In Proceedings of the Latin-American Test Symposium (LATS’18). 1--6.Google ScholarGoogle ScholarCross RefCross Ref
  11. Hakan Aydın, Rami Melhem, and Daniel Mossé. 1999. Incorporating error recovery into the imprecise computation model. In Proceedings of the International Conference on Real-Time Computing Systems and Applications. 348--355.Google ScholarGoogle ScholarCross RefCross Ref
  12. Woongki Baek and Trishul M. Chilimbi. 2010. Green: A framework for supporting energy-conscious programming using controlled approximation. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI’10). 198--209.Google ScholarGoogle Scholar
  13. Nilanjan Banerjee, Georgios Karakonstantis, and Kaushik Roy. 2007. Process variation tolerant low power DCT architecture. In Proceedings of the Design, Automation Test in Europe Conference. 1--6.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Benjamin Barrois, Olivier Sentieys, and Daniel Menard. 2017. The hidden cost of functional approximation against careful data sizing—A case study. In Proceedings of the Design, Automation Test in Europe. 181--186.Google ScholarGoogle ScholarCross RefCross Ref
  15. Luiz A. Barroso and Urs Hölzle. 2007. The case for energy-proportional computing. IEEE Comput. 40, 12 (2007), 33--37.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Charles H. Bennett and Rolf Landauer. 1985. The fundamental physical limits of computation. Sci. Amer. 253, 1 (1985), 48--56.Google ScholarGoogle Scholar
  17. T. Berger and J. D. Gibson. 1998. Lossy source coding. IEEE Trans. Info. Theory 44, 6 (1998), 2693–2723. DOI:10.1109/18.720552Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. James Bornholt, Todd Mytkowicz, and Kathryn S. McKinley. 2014. Uncertain<T>: A first-order type for uncertain data. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’14). 51--66.Google ScholarGoogle Scholar
  19. Daniele Bortolotti, Hossein Mamaghanian, Andrea Bartolini, Maryam Ashouei, Jan Stuijt, David Atienza, Pierre Vandergheynst, and Luca Benini. 2014. Approximate compressed sensing: Ultra-low power biosignal processing via aggressive voltage scaling on a hybrid memory multi-core processor. In Proceedings of the International Symposium on Low Power Electronics and Design. 45--50.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Brett Boston, Zoe Gong, and Michael Carbin. 2018. Leto: Verifying application-specific hardware fault tolerance with programmable execution models. Proc. ACM Program. Lang. 2 (2018), 1--30.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Brett Boston, Adrian Sampson, Dan Grossman, and Luis Ceze. 2015. Probability type inference for flexible approximate programming. In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’15). 470--487.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Rahul Boyapati, Jiayi Huang, Pritam Majumder, Ki Hwan Yum, and Eun Jung Kim. 2017. APPROX-NoC: A data approximation framework for network-on-chip architectures. In Proceedings of the International Symposium on Computer Architecture (ISCA’17). 666--677.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Melvin Breuer. 2005. Multi-media applications and imprecise computation. In Proceedings of the Euromicro Conference on Digital System Design. 2--7.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Michael Bromberger, Wolfgang Karl, and Vincent Heuveline. 2015. Exploiting approximate computing methods in FPGAs to accelerate stereo correspondence algorithms. In Proceedings of the Workshop On Approximate Computing.Google ScholarGoogle Scholar
  25. Mark Buckler, Suren Jayasuriya, and Adrian Sampson. 2017. Reconfiguring the imaging pipeline for computer vision. In Proceedings of the International Conference on Computer Vision (ICCV’17).Google ScholarGoogle ScholarCross RefCross Ref
  26. Richard L. Burden, J. Douglas Faires, and Annette M. Burden. 2015. Numerical Analysis. Brooks Cole.Google ScholarGoogle Scholar
  27. Jose Cambronero, Phillip Stanley-Marbell, and Martin Rinard. 2018. Incremental color quantization for color-vision-deficient observers using mobile gaming data. CoRR abs/1803.08420.Google ScholarGoogle Scholar
  28. Simone Campanoni, Glenn Holloway, Gu-Yeon Wei, and David Brooks. 2015. HELIX-UP: Relaxing program semantics to unleash parallelization. In Proceedings of the International Symposium on Code Generation and Optimization (CGO’15). IEEE/ACM, 235--245.Google ScholarGoogle ScholarCross RefCross Ref
  29. M. Carbin, D. Kim, S. Misailovic, and M. Rinard. 2012. Proving acceptability properties of relaxed nondeterministic approximate programs. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI’12). ACM, 169--180.Google ScholarGoogle Scholar
  30. Michael Carbin, Sasa Misailovic, and Martin C. Rinard. 2013. Verifying quantitative reliability for programs that execute on unreliable hardware. In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’13). 33--52.Google ScholarGoogle Scholar
  31. Lakshmi N. Chakrapani, Pinar Korkmaz, Bilge E. S. Akgul, and Krishna V. Palem. 2007. Probabilistic system-on-a-chip architectures. ACM Trans. Design Autom. Electron. Syst. 12, 3 (2007), 29.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Ik Joon Chang, Debabrata Mohapatra, and Kaushik Roy. 2011. A priority-based 6T/8T hybrid SRAM architecture for aggressive voltage scaling in video applications. IEEE Trans. Circ. Syst. Video Technol. 21, 2 (2011), 101--112.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Avhishek Chatterjee and Lav R. Varshney. 2016. Energy-reliability limits in nanoscale circuits. In Proceedings of Information Theory and Applications Workshop (ITA’16). 1--6.Google ScholarGoogle Scholar
  34. Swarat Chaudhuri, Sumit Gulwani, Roberto Lublinerman, and Sara Navidpour. 2011. Proving programs robust. In Proceedings of the Symposium and the European Conference on Foundations of Software Engineering (ESEC/FSE’11). 102--112.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Suresh Cheemalavagu, Pinar Korkmaz, Krishna V. Palem, Bilge E. S. Akgul, and Lakshmi N. Chakrapani. 2005. A probabilistic CMOS switch and its realization by exploiting noise. In Proceedings of International Conference on VLSI. IFIP, 535--541.Google ScholarGoogle Scholar
  36. Hao Chen, Lav R. Varshney, and Pramod K. Varshney. 2014. Noise-enhanced information systems. Proc. IEEE 102, 10 (2014), 1607--1621.Google ScholarGoogle ScholarCross RefCross Ref
  37. Wenlin Chen, James T. Wilson, Stephen Tyree, Kilian Q. Weinberger, and Yixin Chen. 2015. Compressing neural networks with the hashing trick. CoRR abs/1504.04788.Google ScholarGoogle Scholar
  38. Wei-Chung Cheng and Massoud Pedram. 2001. Memory bus encoding for low power: A tutorial. In Proceedings of International Symposium on Quality Electronic Design (ISQED’01). IEEE, 199--204.Google ScholarGoogle Scholar
  39. Wei-Fan Chiang, Mark Baranowski, Ian Briggs, Alexey Solovyev, Ganesh Gopalakrishnan, and Zvonimir Rakamarić. 2017. Rigorous floating-point mixed-precision tuning. In Proceedings of Principles of Programming Languages (POPL’17).Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Vinay Chippa, Anand Raghunathan, Kaushik Roy, and Srimat Chakradhar. 2011. Dynamic effort scaling: Managing the quality-efficiency tradeoff. In Proceedings of the Design Automation Conference (DAC’11). ACM/EDAC/IEEE, 603--608.Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Vinay K. Chippa, Srimat T. Chakradhar, Kaushik Roy, and Anand Raghunathan. 2013. Analysis and characterization of inherent application resilience for approximate computing. In Proceedings of the Design Automation Conference (DAC’13). ACM/EDAC/IEEE, 113.Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Vinay K. Chippa, Debabrata Mohapatra, Anand Raghunathan, Kaushik Roy, and Srimat T. Chakradhar. 2010. Scalable effort hardware design: Exploiting algorithmic resilience for energy efficiency. In Proceedings of the Design Automation Conference (DAC’10). ACM/EDAC/IEEE, 555--560.Google ScholarGoogle Scholar
  43. R. J. Cole, B. M. Maggs, and R. K. Sitaraman. 1997. Reconfiguring arrays with faults part I: Worst-case faults. SIAM J. Comput. 26, 6 (Dec. 1997), 1581--1611.Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Christian Constanda. 2017. Numerical Methods. In Differential Equations. Springer Undergraduate Texts in Mathematics and Technology. Springer.Google ScholarGoogle Scholar
  45. Matthieu Courbariaux, Yoshua Bengio, and Jean-Pierre David. 2015. BinaryConnect: Training deep neural networks with binary weights during propagations. CoRR abs/1511.00363.Google ScholarGoogle Scholar
  46. Germund Dahlquist and Åke Björk. 2008. Numerical Methods in Scientific Computing. Society for Industrial and Applied Mathematics.Google ScholarGoogle Scholar
  47. Eva Darulova, Einar Horn, and Saksham Sharma. 2018. Sound mixed-precision optimization with rewriting. In Proceedings of the International Conference on Cyber-Physical Systems (ICCPS’18).Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Enrico A. Deiana, Vincent St.-Amour, Peter A. Dinda, Nikos Hardavellas, and Simone Campanoni. 2018. Unconventional parallelization of nondeterministic applications. In Proceedings of the 23rd International Conference on Architectural Support for Programming Languages and Operating Systems. 432--447.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Emily Denton, Wojciech Zaremba, Joan Bruna, Yann LeCun, and Rob Fergus. 2014. Exploiting linear structure within convolutional networks for efficient evaluation. CoRR abs/1404.0736.Google ScholarGoogle Scholar
  50. J. A. Dickson, R. D. McLeod, and H. C. Card. 1993. Stochastic arithmetic implementations of neural networks with in situ learning. In Proceedings of the International Conference on Neural Networks. IEEE, 711--716.Google ScholarGoogle Scholar
  51. Zidong Du, Avinash Lingamneni, Yunji Chen, Krishna Palem, Olivier Temam, and Chengyong Wu. 2014. Leveraging the error resilience of machine-learning applications for designing highly energy efficient accelerators. In Proceedings of Asia and South Pacific Design Automation Conference (ASP-DAC’14). IEEE, 201--206.Google ScholarGoogle Scholar
  52. Pradeep Dubey. 2005. Recognition, mining and synthesis moves computers to the era of tera. Technol. Intel Mag. 9, 2 (2005), 1--10.Google ScholarGoogle Scholar
  53. Bo Einarsson. 2005. Accuracy and Reliability in Scientific Computing. Society for Industrial and Applied Mathematics.Google ScholarGoogle Scholar
  54. Peter Elias. 1958. Computation in the presence of noise. IBM J. Res. Dev. 2, 4 (1958), 346--353.Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Dan Ernst, Nam Sung Kim, Shidhartha Das, Sanjay Pant, Rajeev Rao, Toan Pham, Conrad Ziesler, David Blaauw, Todd Austin, Krisztian Flautner, and Trevor Mudge. 2003. Razor: A low-power pipeline based on circuit-level timing speculation. In Proceedings of the International Symposium on Microarchitecture (MICRO’03). IEEE/ACM.Google ScholarGoogle ScholarCross RefCross Ref
  56. Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger. 2012. Architecture support for disciplined approximate programming. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’12). ACM, 301--312.Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger. 2012. Neural acceleration for general-purpose approximate programs. In Proceedings of the International Symposium on Microarchitecture (MICRO’12). 449--460.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. William Evans and Nicholas Pippenger. 1998. On the maximum tolerable noise for reliable computation by formulas. IEEE Trans. Info. Theory 44, 3 (1998), 1299--1305.Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Shuangde Fang, Zidong Du, Yuntan Fang, Yuanjie Huang, Yang Chen, Lieven Eeckhout, Olivier Temam, Huawei Li, Yunji Chen, and Chengyong Wu. 2014. Performance portability across heterogeneous SoCs using a generalized library-based approach. ACM Trans. Archit. Code Optim. 11, 2 (June 2014), 21:1--21:25.Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Vimuth Fernando, Keyur Joshi, and Sasa Misailovic. 2019. Verifying safety and accuracy of approximate parallel programs via canonical sequentialization. Proc. ACM Program. Lang. 3, OOPSLA, Article 119 (October 2019), 29 pages. DOI:https://doi.org/10.1145/3360545Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Mikhail Figurnov, Aizhan Ibraimova, Dmitry P. Vetrov, and Pushmeet Kohli. 2016. PerforatedCNNs: Acceleration through elimination of redundant convolutions. In Advances in Neural Information Processing Systems. MIT Press, 947--955.Google ScholarGoogle Scholar
  62. Daichi Fujiki, Kiyo Ishii, Ikki Fujiwara, Hiroki Matsutani, Hideharu Amano, Henri Casanova, and Michihiro Koibuchi. 2017. High-bandwidth low-latency approximate interconnection networks. In Proceedings of the International Symposium on High Performance Computer Architecture (HPCA’17). 469--480.Google ScholarGoogle ScholarCross RefCross Ref
  63. Brian R. Gaines. 1967. Stochastic computing. In Proceedings of the Joint Computer Conference. ACM, 149--156.Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Shrikanth Ganapathy, Georgios Karakonstantis, Adam Teman, and Andreas Burg. 2015. Mitigating the impact of faults in unreliable memories for error-resilient applications. In Proceedings of the Design Automation Conference (DAC’15). ACM, 1--6.Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Jason George, Bo Marr, Bilge ES Akgul, and Krishna V Palem. 2006. Probabilistic arithmetic and energy efficient embedded signal processing. In Proceedings of the International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES’06). ACM, 158--168.Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. G. A. Gillani and Andre B. J. Kokkeler. 2017. Improving error resilience analysis methodology of iterative workloads for approximate computing. In Proceedings of the Computing Frontiers Conference (CF’17). ACM, 374--379.Google ScholarGoogle Scholar
  67. Inigo Goiri, Ricardo Bianchini, Santosh Nagarakatte, and Thu D. Nguyen. 2015. ApproxHadoop: Bringing approximations to MapReduce frameworks. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’15). ACM, 383--397.Google ScholarGoogle Scholar
  68. Gene H. Golub and James M. Ortega. 2014. Scientific Computing and Differential Equations: An Introduction to Numerical Methods. Elsevier.Google ScholarGoogle Scholar
  69. Minglun Gong, Ruigang Yang, Liang Wang, and Mingwei Gong. 2007. A performance study on different cost aggregation approaches used in real-time stereo matching. Int. J. Comput. Vision 75, 2 (2007), 283--296.Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Pulkit Grover. 2014. Is “Shannon-capacity of noisy computing” zero? In Proceedings of the International Symposium on Information Theory (ISIT’14). IEEE, 2854--2858.Google ScholarGoogle Scholar
  71. Qing Guo, Karin Strauss, Luis Ceze, and Henrique S. Malvar. 2016. High-density image storage using approximate memory cells. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’16). 413--426.Google ScholarGoogle Scholar
  72. Prabhat K. Gupta and Ramdas Kumaresan. 1988. Binary multiplication with PN sequences. IEEE Trans. Acoust. Speech Signal Process. 36, 4 (Apr. 1988), 603--606.Google ScholarGoogle ScholarCross RefCross Ref
  73. Vaibhav Gupta, Debabrata Mohapatra, Anand Raghunathan, and Kaushik Roy. 2013. Low-power digital signal processing using approximate adders. IEEE Trans. Comput.-Aided Design Integr. Circ. Syst. 32, 1 (2013), 124--137.Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Jie Han and Michael Orshansky. 2013. Approximate computing: An emerging paradigm for energy-efficient design. In Proceedings of the European Test Symposium (ETS’13). IEEE, 1--6.Google ScholarGoogle ScholarCross RefCross Ref
  75. Song Han, Huizi Mao, and William J. Dally. 2015. Deep compression: Compressing deep neural network with pruning, trained quantization and huffman coding. CoRR abs/1510.00149.Google ScholarGoogle Scholar
  76. Soheil Hashemi, R. Iris Bahar, and Sherief Reda. 2015. DRUM: A dynamic range unbiased multiplier for approximate applications. In Proceedings of the IEEE/ACM International Conference on Computer-Aided Design (ICCAD’15). IEEE, 418--425.Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. Ku He, Andreas Gerstlauer, and Michael Orshansky. 2013. Circuit-level timing-error acceptance for design of energy-efficient DCT/IDCT-based systems. Trans. Circ. Syst. Video Technol. 23, 6 (2013), 961--974.Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Shaobo He, Shuvendu K. Lahiri, and Zvonimir Rakamarić. 2018. Verifying relative safety, accuracy, and termination for program approximations. J. Autom. Reason. 60, 1 (January 2018), 23–42. DOI:https://doi.org/10.1007/s10817-017-9421-9Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. Rajamohana Hegde and Naresh R. Shanbhag. 1999. Energy-efficient signal processing via algorithmic noise-tolerance. In Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED’99). ACM, 30--35.Google ScholarGoogle Scholar
  80. Rajamohana Hegde and Naresh R. Shanbhag. 2001. Soft digital signal processing. IEEE Trans. VLSI Syst. 9, 6 (2001), 813--823.Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Nicholas Higham. 2002. Accuracy and Stability of Numerical Algorithms. Society for Industrial and Applied Mathematics.Google ScholarGoogle Scholar
  82. Henry Hoffmann. 2015. JouleGuard: Energy guarantees for approximate applications. In Proceedings of the 25th Symposium on Operating Systems Principles. 198--214.Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Hoffmann, Henry, Sasa Misailovic, Stelios Sidiroglou, Anant Agarwal, and Martin Rinard. 2009. Using code perforation to improve performance, reduce energy consumption, and respond to failures. Retreived on May 2020 from http://hdl.handle.net/1721.1/46709.Google ScholarGoogle Scholar
  84. Henry Hoffmann, Stelios Sidiroglou, Michael Carbin, Sasa Misailovic, Anant Agarwal, and Martin Rinard. 2011. Dynamic knobs for responsive power-aware computing. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’11). ACM, 199--212.Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Andrew G. Howard, Menglong Zhu, Bo Chen, Dmitry Kalenichenko, Weijun Wang, Tobias Weyand, Marco Andreetto, and Hartwig Adam. 2017. MobileNets: Efficient convolutional neural networks for mobile vision applications. CoRR abs/1704.04861.Google ScholarGoogle Scholar
  86. Chu-Hsiang Huang, Yao Li, and Lara Dolecek. 2015. ACOCO: Adaptive coding for approximate computing on faulty memories. IEEE Trans. Commun. 63, 12 (2015), 4615--4628.Google ScholarGoogle ScholarCross RefCross Ref
  87. David Hull and Jane Liu. 1993. ICS: A system for imprecise computations. In Proceedings of AIAA Computing in Aerospace, Vol. 9.Google ScholarGoogle ScholarCross RefCross Ref
  88. Forrest N. Iandola, Matthew W. Moskewicz, Khalid Ashraf, Song Han, William J. Dally, and Kurt Keutzer. 2016. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <1MB model size. CoRR abs/1602.07360.Google ScholarGoogle Scholar
  89. Anastasiia Izycheva, Eva Darulova, and Helmut Seidl. 2019. Synthesizing efficient low-precision kernels. In Proceedings of the 17th International Symposium on Automated Technology for Verification and Analysis (ATVA’19). 294--313.Google ScholarGoogle ScholarCross RefCross Ref
  90. Djordje Jevdjic, Karin Strauss, Luis Ceze, and Henrique S. Malvar. 2017. Approximate storage of compressed and encrypted videos. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems.Google ScholarGoogle Scholar
  91. Honglan Jiang, Cong Liu, Naman Maheshwari, Fabrizio Lombardi, and Jie Han. 2016. A comparative evaluation of approximate multipliers. In Proceedings of the IEEE/ACM International Symposium on Nanoscale Architectures. IEEE, 191--196.Google ScholarGoogle Scholar
  92. Keyur Joshi, Vimuth Fernando, and Sasa Misailovic. 2019. Statistical algorithmic profiling for randomized approximate programs. In Proceedings of the IEEE/ACM 41st International Conference on Software Engineering (ICSE’19). IEEE, 608--618.Google ScholarGoogle ScholarDigital LibraryDigital Library
  93. Matthias Jung, Deepak M. Mathew, Christian Weis, and Norbert Wehn. 2016. Approximate computing with partially unreliable dynamic random access memory-approximate DRAM. In Proceedings of the 53rd Annual Design Automation Conference (DAC’16). ACM.Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. Andrew B. Kahng and Seokhyeong Kang. 2012. Accuracy-configurable adder for approximate arithmetic designs. In Proceedings of the 49th Annual Design Automation Conference (DAC’12). ACM, 820--825.Google ScholarGoogle Scholar
  95. Andrew B. Kahng, Seokhyeong Kang, Rakesh Kumar, and John Sartori. 2010. Slack redistribution for graceful degradation under voltage overscaling. In Proceedings of the Asia and South Pacific Design Automation Conference (ASPDAC’10). IEEE Press, 825--831.Google ScholarGoogle Scholar
  96. Srikanth Kandula, Anil Shanbhag, Aleksandar Vitorovic, Matthaios Olma, Robert Grandl, Surajit Chaudhuri, and Bolin Ding. 2016. Quickr: Lazily approximating complex adhoc queries in bigdata clusters. In Proceedings of the International Conference on Management of Data. ACM, 631--646.Google ScholarGoogle ScholarDigital LibraryDigital Library
  97. Georgios Karakonstantis, Debabrata Mohapatra, and Kaushik Roy. 2009. System level DSP synthesis using voltage overscaling, unequal error protection and adaptive quality tuning. In IEEE Workshop on Signal Processing Systems.Google ScholarGoogle Scholar
  98. Walter J. Karplus and Walter W. Soroka. 1959. Analog Methods: Computation and Simulation. McGraw-Hill.Google ScholarGoogle Scholar
  99. R. Baker Kearfott, Mitsuhiro T. Nakao, Arnold Neumaier, Siegfried M. Rump, Sergey P. Shary, and Pascal van Hentenryck. 2010. Standardized notation in interval analysis. Comput. Technol. 15, 1 (2010), 7--13.Google ScholarGoogle Scholar
  100. Robert W. Keyes. 1985. What makes a good computer device?Science 230, 4722 (1985), 138--144.Google ScholarGoogle Scholar
  101. Daya S. Khudia, Babak Zamirai, Mehrzad Samadi, and Scott Mahlke. 2015. Rumba: An online quality management system for approximate computing. In Proceedings of the 42nd Annual International Symposium on Computer Architecture (ISCA’15). ACM, 554--566.Google ScholarGoogle ScholarDigital LibraryDigital Library
  102. Jaeyoon Kim and Sandip Tiwari. 2014. Inexact computing using probabilistic circuits: Ultra low-power digital processing. ACM J. Emerg. Technol. Comput. Syst. 10, 2 (2014), 16.Google ScholarGoogle ScholarDigital LibraryDigital Library
  103. Sung Kim, Patrick Howe, Thierry Moreau, Armin Alaghi, Luis Ceze, and Sathe Visvesh. 2018. MATIC: Learning around errors for efficient low-voltage neural network accelerators. In Proceedings of the Design Automation and Test in Europe Conference (DATE’18).Google ScholarGoogle ScholarCross RefCross Ref
  104. Younghyun Kim, Setareh Behroozi, Vijay Raghunathan, and Anand Raghunathan. 2017. AXSERBUS: A quality-configurable approximate serial bus for energy-efficient sensing. In Proceedings of the IEEE/ACM International Symposium on Low Power Electronics and Design (ISLPED’17). IEEE, 1--6.Google ScholarGoogle ScholarCross RefCross Ref
  105. Yong-Deok Kim, Eunhyeok Park, Sungjoo Yoo, Taelim Choi, Lu Yang, and Dongjun Shin. 2015. Compression of deep convolutional neural networks for fast and low power mobile applications. CoRR abs/1511.06530.Google ScholarGoogle Scholar
  106. Young-Chul Kim and M. A. Shanblatt. 1995. Architecture and statistical model of a pulse-mode digital multilayer neural network. IEEE Trans. Neural Netw. 6, 5 (Sep. 1995), 1109--1118.Google ScholarGoogle Scholar
  107. Phil Knag, Wei Lu, and Zhengya Zhang. 2014. A native stochastic computing architecture enabled by memristors. IEEE Trans. Nanotechnol. 13, 2 (Mar. 2014), 283--293.Google ScholarGoogle ScholarDigital LibraryDigital Library
  108. Parag Kulkarni, Puneet Gupta, and Milos Ercegovac. 2011. Trading accuracy for power with an underdesigned multiplier architecture. In Proceedings of the 24th International Conference on VLSI Design (VLSI’11). IEEE, 346--351.Google ScholarGoogle ScholarDigital LibraryDigital Library
  109. F. Kurdahi, A. Eltawil, K. Yi, S. Cheng, and A. Khajeh. 2010. Low-power multimedia system design by aggressive voltage scaling. IEEE Trans. VLSI Syst. 18, 5 (2010), 852--856.Google ScholarGoogle ScholarDigital LibraryDigital Library
  110. Michael A Laurenzano, Parker Hill, Mehrzad Samadi, Scott Mahlke, Jason Mars, and Lingjia Tang. 2016. Input responsiveness: Using canary inputs to dynamically steer approximation. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation. 161--176.Google ScholarGoogle ScholarDigital LibraryDigital Library
  111. Yann LeCun, Léon Bottou, Yoshua Bengio, and Patrick Haffner. 1998. Gradient-based learning applied to document recognition. Proc. IEEE 86, 11 (1998), 2278--2324.Google ScholarGoogle ScholarCross RefCross Ref
  112. Yann LeCun, John S. Denker, and Sara A. Solla. 1990. Optimal brain damage. In Advances in Neural Information Processing Systems. MIT Press, 598--605.Google ScholarGoogle Scholar
  113. Seogoo Lee, Lizy K. John, and Andreas Gerstlauer. 2017. High-level synthesis of approximate hardware under joint precision and voltage scaling. In Proceedings of the Design, Automation and Test in Europe (DATE’17). IEEE, 187--192.Google ScholarGoogle ScholarCross RefCross Ref
  114. Vincent T. Lee, Armin Alaghi, John P. Hayes, Visvesh Sathe, and Luis Ceze. 2017. Energy-efficient hybrid stochastic-binary neural networks for near-sensor computing. In Proceedings of the Design, Automation and Test in Europe (DATE’17). IEEE, 13--18.Google ScholarGoogle ScholarCross RefCross Ref
  115. Chaofan Li, Wei Luo, Sachin S. Sapatnekar, and Jiang Hu. 2015. Joint precision optimization and high level synthesis for approximate computing. In Proceedings of the 52nd ACM/EDAC/IEEE Design Automation Conference (DAC’15). IEEE, 1--6.Google ScholarGoogle ScholarDigital LibraryDigital Library
  116. Shikai Li, Sunghyun Park, and Scott Mahlke. 2018. Sculptor: Flexible approximation with selective dynamic loop perforation. In Proceedings of the International Conference on Supercomputing. 341--351.Google ScholarGoogle ScholarDigital LibraryDigital Library
  117. Avinash Lingamneni, Christian Enz, Krishna Palem, and Christian Piguet. 2011. Parsimonious circuits for error-tolerant applications through probabilistic logic minimization. In Proceedings of the 21st International Conference on Integrated Circuit and System Design: Power and Timing modeling, Optimization, and Simulation (PATMOS’11). Springer, 204--213.Google ScholarGoogle ScholarDigital LibraryDigital Library
  118. Jane W. S. Liu, Kwei-Jay Lin, Wei-Kuan Shih, Albert Chuang-shi Yu, Jen-Yao Chung, and Wei Zhao. 1991. Algorithms for scheduling imprecise computations. Computer 24, 5 (1991), 58--68.Google ScholarGoogle ScholarDigital LibraryDigital Library
  119. Jane W. S. Liu, Wei-Kuan Shih, Kwei-Jay Lin, Ricardo Bettati, and Jen-Yao Chung. 1994. Imprecise computations. Proc. IEEE 82, 1 (1994), 83--94.Google ScholarGoogle ScholarCross RefCross Ref
  120. Song Liu, Karthik Pattabiraman, Thomas Moscibroda, and Benjamin Zorn. 2011. Flikker: Saving DRAM refresh-power through critical data partition. In Proceedings of the 16th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’11). ACM.Google ScholarGoogle ScholarDigital LibraryDigital Library
  121. Jeffrey W. Lockhart, Gary M. Weiss, Jack C. Xue, Shaun T. Gallagher, Andrew B. Grosner, and Tony T. Pulickal. 2011. Design considerations for the WISDM smart phone-based sensor mining architecture. In Proceedings of the 5th International Workshop on Knowledge Discovery from Sensor Data (SensorKDD’11). ACM, 25--33.Google ScholarGoogle Scholar
  122. Debasmita Lohar, Eva Darulova, Sylvie Putot, and Eric Goubault. 2018. Discrete choice in the presence of numerical uncertainties. IEEE Trans. CAD Integr. Circ. Syst. 37, 11 (2018), 2381--2392.Google ScholarGoogle ScholarCross RefCross Ref
  123. Debasmita Lohar, Milos Prokop, and Eva Darulova. 2019. Sound probabilistic numerical error analysis. In Proceedings of the 15th International Conference on Integrated Formal Methods (IFM’19). 322--340.Google ScholarGoogle ScholarCross RefCross Ref
  124. Li-ming Lou, Paul Nguyen, Jason Lawrence, and Connelly Barnes. 2016. Image perforation: Automatically accelerating image pipelines by intelligently skipping samples. ACM Trans. Graph. 35, 5 (2016), 153:1--153:14.Google ScholarGoogle Scholar
  125. Bruce J. MacLennan. 2009. Analog computation. In Encyclopedia of Complexity and Systems Science. Springer, 271--294.Google ScholarGoogle Scholar
  126. Hamid Reza Mahdiani, Ali Ahmadi, Sied Mehdi Fakhraie, and Caro Lucas. 2010. Bio-inspired imprecise computational blocks for efficient VLSI implementation of soft-computing applications. IEEE Trans. Circ. Syst. I: Reg. Papers 57, 4 (2010), 850--862.Google ScholarGoogle ScholarDigital LibraryDigital Library
  127. Daniel Maier, Biagio Cosenza, and Ben Juurlink. 2018. Local memory-aware kernel perforation. In Proceedings of the International Symposium on Code Generation and Optimization. 278--287.Google ScholarGoogle Scholar
  128. Igor L. Markov. 2014. Limits on fundamental limits to computation. Nature 512 (08 2014), 147--54.Google ScholarGoogle Scholar
  129. Mark M. Meerschaert. 2013. Mathematical Modeling. Academic Press.Google ScholarGoogle Scholar
  130. Judicaël Menant, Muriel Pressigout, Luce Morin, and Jean-Francois Nezan. 2014. Optimized fixed point implementation of a local stereo matching algorithm onto C66x DSP. In Proceedings of the Conference on Design and Architectures for Signal and Image Processing (DASIP’14). IEEE, 1--6.Google ScholarGoogle ScholarCross RefCross Ref
  131. Jin Miao, Andreas Gerstlauer, and Michael Orshansky. 2013. Approximate logic synthesis under general error magnitude and frequency constraints. In Proceedings of the IEEE/ACM International Conference on Computer-Aided Design (ICCAD’13). IEEE, 779--786.Google ScholarGoogle ScholarCross RefCross Ref
  132. Jin Miao, Ku He, Andreas Gerstlauer, and Michael Orshansky. 2012. Modeling and synthesis of quality-energy optimal approximate adders. In Proceedings of the IEEE/ACM International Conference on Computer-Aided Design (ICCAD’12). IEEE, 728--735.Google ScholarGoogle ScholarDigital LibraryDigital Library
  133. Joshua San Miguel and Natalie Enright Jerger. 2016. The anytime automaton. In Proceedings of the 43rd International Symposium on Computer Architecture (ISCA’16). 545--557.Google ScholarGoogle ScholarDigital LibraryDigital Library
  134. Sasa Misailovic, Michael Carbin, Sara Achour, Zichao Qi, and Martin C. Rinard. 2014. Chisel: Reliability- and accuracy-aware optimization of approximate computational kernels. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA’14). ACM, 309--328.Google ScholarGoogle Scholar
  135. Sasa Misailovic, Deokhwan Kim, and Martin Rinard. 2013. Parallelizing sequential programs with statistical accuracy tests. ACM Trans. Embed. Comput. Syst. 12, 2s (2013), 88:1--88:26.Google ScholarGoogle ScholarDigital LibraryDigital Library
  136. Sasa Misailovic, Stelios Sidiroglou, Henry Hoffmann, and Martin Rinard. 2010. Quality of service profiling. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE ’10). ACM, 25--34.Google ScholarGoogle ScholarDigital LibraryDigital Library
  137. Sasa Misailovic, Stelios Sidiroglou, and Martin C. Rinard. 2012. Dancing with uncertainty. In Proceedings of the ACM Workshop on Relaxing Synchronization for Multicore and Manycore Scalability (RACES’12). ACM, 51--60.Google ScholarGoogle Scholar
  138. Asit K. Mishra, Rajkishore Barik, and Somnath Paul. 2014. iACT: A software-hardware framework for understanding the scope of approximate computing. In Proceedings of the Workshop on Approximate Computing Across the System Stack (WACAS’14).Google ScholarGoogle Scholar
  139. Subrata Mitra, Manish K. Gupta, Sasa Misailovic, and Saurabh Bagchi. 2017. Phase-aware optimization in approximate computing. In Proceedings of the IEEE/ACM International Symposium on Code Generation and Optimization (CGO’17). IEEE, 185--196.Google ScholarGoogle ScholarCross RefCross Ref
  140. Sparsh Mittal. 2016. A survey of techniques for approximate computing. Comput. Surveys 48, 4 (2016), 62:1--62:33.Google ScholarGoogle Scholar
  141. Michael Mitzenmacher and Eli Upfal. 2017. Probability and Computing: Randomization and Probabilistic Techniques in Algorithms and Data Analysis. Cambridge University Press.Google ScholarGoogle Scholar
  142. Debabrata Mohapatra, Georgios Karakonstantis, and Kaushik Roy. 2009. Significance driven computation: A voltage-scalable, variation-aware, quality-tuning motion estimator. In Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED’09). ACM.Google ScholarGoogle ScholarDigital LibraryDigital Library
  143. Thierry Moreau, Felipe Augusto, Patrick Howe, Armin Alaghi, and Luis Ceze. 2017. Exploiting quality-energy tradeoffs with arbitrary quantization. In Proceedings of the 12th IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS’17). ACM, 30:1--30:2.Google ScholarGoogle ScholarDigital LibraryDigital Library
  144. Thierry Moreau, Joshua San Miguel, Mark Wyse, James Bornholt, Armin Alaghi, Luis Ceze, Natalie Enright Jerger, and Adrian Sampson. 2018. A taxonomy of general purpose approximate computing techniques. IEEE Embed. Syst. Lett. 10, 1 (2018), 2--5.Google ScholarGoogle ScholarDigital LibraryDigital Library
  145. Thierry Moreau, Mark Wyse, Jacob Nelson, Adrian Sampson, Hadi Esmaeilzadeh, Luis Ceze, and Mark Oskin. 2015. SNNAP: Approximate computing on programmable SoCs via neural acceleration. In Proceedings of the IEEE International Symposium on High Performance Computer Architecture (HPCA’15). 603--614.Google ScholarGoogle ScholarCross RefCross Ref
  146. M. Hassan Najafi, Devon Jenson, David J. Lilja, and Marc D. Riedel. 2019. Performing stochastic computation deterministically. IEEE Trans. Very Large Scale Integr. Syst. 27, 12 (Dec. 2019), 2925--2938.Google ScholarGoogle ScholarCross RefCross Ref
  147. K. Nepal, S. Hashemi, H. Tann, R. I. Bahar, and S. Reda. 2019. Automated high-level generation of low-power approximate computing circuits. IEEE Transactions on Emerging Topics in Computing 7, 1 (2019), 18–30. DOI:10.1109/TETC.2016.2598283Google ScholarGoogle ScholarCross RefCross Ref
  148. Frank Olken and Doron Rotem. 1986. Simple random sampling from relational databases. In Proceedings of the 12th International Conference on Very Large Data Bases. 160--169.Google ScholarGoogle ScholarDigital LibraryDigital Library
  149. Frank Olken and Doron Rotem. 1990. Random sampling from database files: A survey. In Proceedings of the 5th International Conference on Statistical and Scientific Database Management (SSDBM’90). Springer-Verlag, 92--111.Google ScholarGoogle ScholarDigital LibraryDigital Library
  150. Daniele Jahier Pagliari, Enrico Macii, and Massimo Poncino. 2016. Serial T0: Approximate bus encoding for energy-efficient transmission of sensor signals. In Proceedings of the 53rd Annual Design Automation Conference. 14.Google ScholarGoogle ScholarDigital LibraryDigital Library
  151. Krishna V. Palem. 2003. Energy aware algorithm design via probabilistic computing: From algorithms and models to Moore’s law and novel (semiconductor) devices. In Proceedings of the 2003 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES’03). ACM, 113--116.Google ScholarGoogle ScholarDigital LibraryDigital Library
  152. Krishna V. Palem. 2005. Energy aware computing through probabilistic switching: A study of limits. IEEE Trans. Comput. 54, 9 (Sep. 2005), 1123--1137.Google ScholarGoogle ScholarDigital LibraryDigital Library
  153. Jongse Park, Hadi Esmaeilzadeh, Xin Zhang, Mayur Naik, and William Harris. 2015. FlexJava: Language support for safe and modular approximate programming. In Proceedings of the 10th Joint Meeting on Foundations of Software Engineering (ESEC/FSE’15). 745--757.Google ScholarGoogle ScholarDigital LibraryDigital Library
  154. John G. Proakis and Dimitris G. Manolakis. 1996. Digital Signal Processing (3rd ed.): Principles, Algorithms, and Applications. Prentice-Hall.Google ScholarGoogle Scholar
  155. W. Qian, Xin Li, Marc D. Riedel, Kia Bazargan, and David J. Lilja. 2011. An architecture for fault-tolerant computation with stochastic logic. IEEE Trans. Comput. 60, 1 (Jan. 2011), 93--105.Google ScholarGoogle ScholarDigital LibraryDigital Library
  156. Jan Rabaey, Abbas Rahimi, Sohum Datta, Miles Rusch, Pentti Kanerva, and Bruno Olshausen. 2017. Human-centric computing—The case for a hyper-dimensional approach. In Proceedings of the International Workshop on Advances in Sensors and Interfaces (IWASI’17). 29--29.Google ScholarGoogle ScholarCross RefCross Ref
  157. Jan M. Rabaey. 1996. Digital Integrated Circuits: A Design Perspective. Prentice-Hall.Google ScholarGoogle ScholarDigital LibraryDigital Library
  158. Eric Rachlin and John E. Savage. 2008. A framework for coded computation. In Proceedings of the IEEE International Symposium on Information Theory (ISIT’08). IEEE, 2342--2346.Google ScholarGoogle Scholar
  159. Arnab Raha and Vijay Raghunathan. 2018. Approximating beyond the processor: Exploring full-system energy-accuracy tradeoffs in a smart camera system. IEEE Trans. Very Large Scale Integr. Syst. 26, 12 (2018), 2884--2897.Google ScholarGoogle ScholarCross RefCross Ref
  160. Arnab Raha, Soubhagya Sutar, Hrishikesh Jayakumar, and Vijay Raghunathan. 2017. Quality configurable approximate DRAM. IEEE Trans. Comput. 66, 7 (2017), 1172--1187.Google ScholarGoogle ScholarDigital LibraryDigital Library
  161. Ashish Ranjan, Arnab Raha, Swagath Venkataramani, Kaushik Roy, and Anand Raghunathan. 2014. ASLAN: Synthesis of approximate sequential circuits. In Proceedings of the Design, Automation Test in Europe Conference. IEEE, 1--6.Google ScholarGoogle Scholar
  162. Ashish Ranjan, Swagath Venkataramani, Xuanyao Fong, Kaushik Roy, and Anand Raghunathan. 2015. Approximate storage for energy efficient spintronic memories. In Proceedings of the 52nd Annual Design Automation Conference (DAC’15).Google ScholarGoogle ScholarDigital LibraryDigital Library
  163. Brandon Reagen, Paul Whatmough, Robert Adolf, Saketh Rama, Hyunkwang Lee, Sae Kyu Lee, José Miguel Hernández-Lobato, Gu-Yeon Wei, and David Brooks. 2016. Minerva: Enabling low-power, highly accurate deep neural network accelerators. In Proceedings of the 43rd International Symposium on Computer Architecture. IEEE Press, 267--278.Google ScholarGoogle ScholarDigital LibraryDigital Library
  164. Semeen Rehman, Walaa El-Harouni, Muhammad Shafique, Akash Kumar, and Jörg Henkel. 2016. Architectural-space exploration of approximate multipliers. In Proceedings of the IEEE/ACM International Conference on Computer-Aided Design (ICCAD’16).Google ScholarGoogle ScholarDigital LibraryDigital Library
  165. Lakshminarayanan Renganarayana, Vijayalakshmi Srinivasan, Ravi Nair, and Daniel Prener. 2012. Programming with relaxed synchronization. In Proceedings of the ACM Workshop on Relaxing Synchronization for Multicore and Manycore Scalability (RACES’12). ACM, 41--50.Google ScholarGoogle ScholarDigital LibraryDigital Library
  166. M. Rinard. 2006. Probabilistic accuracy bounds for fault-tolerant computations that discard tasks. In Proceedings of the International Conference on Supercomputing (ICS’06). 324--334.Google ScholarGoogle ScholarDigital LibraryDigital Library
  167. Martin C. Rinard. 2007. Using early phase termination to eliminate load imbalances at barrier synchronization points. In Proceedings of the Conference on Object-oriented Programming Systems and Applications (OOPSLA’07). ACM, 369--386.Google ScholarGoogle ScholarDigital LibraryDigital Library
  168. Adriana Romero, Nicolas Ballas, Samira Ebrahimi Kahou, Antoine Chassang, Carlo Gatta, and Yoshua Bengio. 2014. FitNets: Hints for thin deep nets. CoRR abs/1412.6550.Google ScholarGoogle Scholar
  169. Cindy Rubio-González, Cuong Nguyen, Hong Diep Nguyen, James Demmel, William Kahan, Koushik Sen, David H. Bailey, Costin Iancu, and David Hough. 2013. Precimonious: Tuning assistant for floating-point precision. In Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis (SC’13). ACM.Google ScholarGoogle ScholarDigital LibraryDigital Library
  170. T. Sakurai and A. R. Newton. 1990. Alpha-power law MOSFET model and its applications to CMOS inverter delay and other formulas. IEEE J. Solid-State Circ. 25, 2 (1990), 584--594.Google ScholarGoogle ScholarCross RefCross Ref
  171. Mehrzad Samadi, Davoud Anoushe Jamshidi, Janghaeng Lee, and Scott Mahlke. 2014. Paraprox: Pattern-based approximation for data parallel applications. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’14). ACM, 35--50.Google ScholarGoogle ScholarDigital LibraryDigital Library
  172. Mehrzad Samadi, Janghaeng Lee, D. Anoushe Jamshidi, Amir Hormati, and Scott Mahlke. 2013. SAGE: Self-tuning approximation for graphics engines. In Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO’13). ACM, 13--24.Google ScholarGoogle ScholarDigital LibraryDigital Library
  173. Adrian Sampson, André Baixo, Benjamin Ransford, Thierry Moreau, Joshua Yip, Luis Ceze, and Mark Oskin. 2015. Accept: A programmer-guided compiler framework for practical approximate computing. University of Washington Technical Report UW-CSE-15-01, Vol. 1.Google ScholarGoogle Scholar
  174. Adrian Sampson, Werner Dietl, Emily Fortuna, Danushen Gnanapragasam, Luis Ceze, and Dan Grossman. 2011. EnerJ: Approximate data types for safe and general low-power computation. In Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’11). ACM, 164--174.Google ScholarGoogle ScholarDigital LibraryDigital Library
  175. Adrian Sampson, Jacob Nelson, Karin Strauss, and Luis Ceze. 2013. Approximate storage in solid-state memories. In Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO’13).Google ScholarGoogle ScholarDigital LibraryDigital Library
  176. Adrian Sampson, Pavel Panchekha, Todd Mytkowicz, Kathryn S. McKinley, Dan Grossman, and Luis Ceze. 2014. Expressing and verifying probabilistic assertions. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation. 112--122.Google ScholarGoogle ScholarDigital LibraryDigital Library
  177. Joshua San Miguel, Jorge Albericio, and Natalie Enright Jerger. 2016. The Bunker Cache for spatio-value approximation. In Proceedings of the 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO’16).Google ScholarGoogle ScholarDigital LibraryDigital Library
  178. Joshua San Miguel, Jorge Albericio, Andreas Moshovos, and Natalie Enright Jerger. 2015. Doppelganger: A cache for approximate computing. In Proceedings of the 48th Annual IEEE/ACM International Symposium on Microarchitecture.Google ScholarGoogle ScholarDigital LibraryDigital Library
  179. Joshua San Miguel, Mario Badr, and Natalie Enright Jerger. 2014. Load value approximation. In Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO’14).Google ScholarGoogle ScholarDigital LibraryDigital Library
  180. Rahul Sarpeshkar. 1998. Analog versus digital: Extrapolating from electronics to neurobiology. Neural Comput. 10, 7 (1998), 1601--1638.Google ScholarGoogle ScholarDigital LibraryDigital Library
  181. Daniel Scharstein and Richard Szeliski. 2002. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms. Int. J. Comput. Vis. 47, 1--3 (2002), 7--42.Google ScholarGoogle ScholarDigital LibraryDigital Library
  182. Eric Schkufza, Rahul Sharma, and Alex Aiken. 2014. Stochastic optimization of floating-point programs with tunable precision. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation.Google ScholarGoogle ScholarDigital LibraryDigital Library
  183. Jeremy Schlachter, Vincent Camus, Krishna V. Palem, and Christian Enz. 2017. Design and applications of approximate circuits by gate-level pruning. IEEE Trans. Very Large Scale Integr. Syst. 25, 5 (2017), 1694--1702.Google ScholarGoogle ScholarDigital LibraryDigital Library
  184. Muhammad Shafique, Waqas Ahmad, Rehan Hafiz, and Jörg Henkel. 2015. A low latency generic accuracy configurable adder. In Proceedings of the 52nd Design Automation Conference (DAC’15).Google ScholarGoogle ScholarDigital LibraryDigital Library
  185. Muhammad Shafique, Rehan Hafiz, Semeen Rehman, Walaa El-Harouni, and Jörg Henkel. 2016. Cross-layer approximate computing: From logic to architectures. In Proceedings of the 53rd Annual Design Automation Conference (DAC’16).Google ScholarGoogle ScholarDigital LibraryDigital Library
  186. Naresh R. Shanbhag. 2002. Reliable and energy-efficient digital signal processing. In Proceedings of the 39th Annual Design Automation Conference (DAC’02). ACM, 830--835.Google ScholarGoogle ScholarDigital LibraryDigital Library
  187. Claude E. Shannon. 1959. Coding theorems for a discrete source with a fidelity criterion. IRE Natl. Convent. Rec. 7, 4 (1959), 142--163.Google ScholarGoogle Scholar
  188. Hashim Sharif, Prakalp Srivastava, Muhammad Huzaifa, Maria Kotsifakou, Keyur Joshi, Yasmin Sarita, Nathan Zhao, Vikram S. Adve, Sasa Misailovic, and Sarita Adve. 2019. ApproxHPVM: A portable compiler IR for accuracy-aware optimizations. Proceedings of the ACM on Programming Languages 3 (2019), 1--30.Google ScholarGoogle ScholarDigital LibraryDigital Library
  189. Wei-Kuan Shih and Jane W. S. Liu. 1995. Algorithms for scheduling imprecise computations with timing constraints to minimize maximum error. IEEE Trans. Comput. 44, 3 (1995), 466--471.Google ScholarGoogle ScholarDigital LibraryDigital Library
  190. Byonghyo Shim and Naresh R. Shanbhag. 2006. Energy-efficient soft error-tolerant digital signal processing. IEEE Trans. VLSI Syst. 14, 4 (2006), 336--348.Google ScholarGoogle ScholarDigital LibraryDigital Library
  191. Doochul Shin and Sandeep K. Gupta. 2010. Approximate logic synthesis for error tolerant applications. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE’10).Google ScholarGoogle Scholar
  192. Majid Shoushtari, Abbas BanaiyanMofrad, and Nikil Dutt. 2015. Exploiting partially-forgetful memories for approximate computing. IEEE Embed. Syst. Lett. 7, 1 (2015), 19--22.Google ScholarGoogle ScholarDigital LibraryDigital Library
  193. Stelios Sidiroglou-Douskos, Sasa Misailovic, Henry Hoffmann, and Martin Rinard. 2011. Managing performance vs. accuracy trade-offs with loop perforation. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering (ESEC/FSE’11).Google ScholarGoogle ScholarDigital LibraryDigital Library
  194. Jacob Sorber, Alexander Kostadinov, Matthew Garber, Matthew Brennan, Mark D. Corner, and Emery D. Berger. 2007. Eon: A language and runtime system for perpetual systems. In Proceedings of the 5th International Conference on Embedded Networked Sensor Systems (SenSys’07).Google ScholarGoogle Scholar
  195. Daniel Alan Spielman. 1996. Highly fault-tolerant parallel computation. In Proceedings of the 37th Annual Symposium on Foundations of Computer Science (FOCS’96).Google ScholarGoogle ScholarDigital LibraryDigital Library
  196. Vilas Sridharan and David R. Kaeli. 2009. Eliminating microarchitectural dependency from architectural vulnerability. In Proceedings of the 15th International Symposium on High Performance Computer Architecture (HPCA’09).Google ScholarGoogle Scholar
  197. Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdinov. 2014. Dropout: A simple way to prevent neural networks from overfitting. J. Mach. Learn. Res. 15, 1 (2014), 1929--1958.Google ScholarGoogle ScholarDigital LibraryDigital Library
  198. Renée St. Amant, Amir Yazdanbakhsh, Jongse Park, Bradley Thwaites, Hadi Esmaeilzadeh, Arjang Hassibi, Luis Ceze, and Doug Burger. 2014. General-purpose code acceleration with limited-precision analog computation. In Proceedings of the 41st Annual International Symposium on Computer Architecuture (ISCA’14). 505--516.Google ScholarGoogle ScholarCross RefCross Ref
  199. Mircea R. Stan and Wayne P. Burleson. 1995. Bus-invert coding for low-power I/O. IEEE TVLSI 3, 1 (1995), 49--58.Google ScholarGoogle Scholar
  200. Phillip Stanley-Marbell. 2009. Encoding efficiency of digital number representations under deviation constraints. In Proceedings of the IEEE Information Theory Workshop. 203--207.Google ScholarGoogle ScholarCross RefCross Ref
  201. Phillip Stanley-Marbell, Virginia Estellers, and Martin Rinard. 2016. Crayon: Saving power through shape and color approximation on next-generation displays. In Proceedings of the 11th European Conference on Computer Systems (EuroSys’16). 11:1--11:17.Google ScholarGoogle ScholarDigital LibraryDigital Library
  202. Phillip Stanley-Marbell, Pier Andrea Francese, and Martin Rinard. 2016. Encoder logic for reducing serial I/O power in sensors and sensor hubs. In Proceedings of the 28th IEEE Hot Chips Symposium (HotChips’16). 1--2.Google ScholarGoogle ScholarCross RefCross Ref
  203. Phillip Stanley-Marbell and Paul Hurley. 2018. Probabilistic value-deviation-bounded integer codes for approximate communication. Computing Research Repository (CoRR) abs/1804.02317.Google ScholarGoogle Scholar
  204. P. Stanley-Marbell and D. Marculescu. 2006. A programming model and language implementation for concurrent failure-prone hardware. In Proceedings of the 2nd Workshop on Programming Models for Ubiquitous Parallelism (PMUP’06). 44--49.Google ScholarGoogle Scholar
  205. Phillip Stanley-Marbell and Martin Rinard. 2015. Approximating outside the processor. In Proceedings of the Workshop Approximate Computing Across the System Stack (WACAS’15). 1--3.Google ScholarGoogle Scholar
  206. Phillip Stanley-Marbell and Martin Rinard. 2015. Efficiency limits for value-deviation-bounded approximate communication. IEEE Embed. Syst. Lett. 7, 4 (2015), 109--112.Google ScholarGoogle ScholarDigital LibraryDigital Library
  207. Phillip Stanley-Marbell and Martin Rinard. 2015. Lax: Driver interfaces for approximate sensor device access. In Proceedings of the 15th Workshop on Hot Topics in Operating Systems (HotOS’15).Google ScholarGoogle Scholar
  208. Phillip Stanley-Marbell and Martin Rinard. 2016. Reducing serial I/O power in error-tolerant applications by efficient lossy encoding. In Proceedings of the 53rd Annual Design Automation Conference (DAC’16). 62:1--62:6.Google ScholarGoogle ScholarDigital LibraryDigital Library
  209. Phillip Stanley-Marbell and Martin Rinard. 2017. Error-efficient computing systems. Found. Trends Electron. Design Autom. 11, 4 (2017), 362--461.Google ScholarGoogle ScholarDigital LibraryDigital Library
  210. P. Stanley-Marbell and M. Rinard. 2018. Perceived-color approximation transforms for programs that draw. IEEE Micro 38, 4 (July 2018), 20--29.Google ScholarGoogle ScholarCross RefCross Ref
  211. P. Stanley-Marbell and M. Rinard. 2020. Warp: A hardware platform for efficient multi-modal sensing with adaptive approximation. IEEE Micro 40, 1 (Jan. 2020), 57--66.Google ScholarGoogle ScholarCross RefCross Ref
  212. Xin Sui, Andrew Lenharth, Donald S. Fussell, and Keshav Pingali. 2016. Proactive control of approximate programs. ACM SIGPLAN Notices 51, 4 (2016), 607--621.Google ScholarGoogle ScholarDigital LibraryDigital Library
  213. Olivier Temam. 2012. A defect-tolerant accelerator for emerging high-performance applications. In Proceedings of the 39th Annual International Symposium on Computer Architecture (ISCA’12). 356--367.Google ScholarGoogle ScholarDigital LibraryDigital Library
  214. Bradley Thwaites, Gennady Pekhimenko, Hadi Esmaeilzadeh, Amir Yazdanbakhsh, Onur Mutlu, Jongse Park, Girish Mururu, and Todd Mowry. 2014. Rollback-free value prediction with approximate loads. In Proceedings of the 23rd International Conference on Parallel Architectures and Compilation Techniques.Google ScholarGoogle ScholarDigital LibraryDigital Library
  215. Federico Tombari, Stefano Mattoccia, Luigi Di Stefano, and Elisa Addimanda. 2008. Classification and evaluation of cost aggregation methods for stereo correspondence. In Proceedings of the Conference on Computer Vision and Pattern Recognition (CVPR’08). IEEE, 1--8.Google ScholarGoogle ScholarCross RefCross Ref
  216. Sergio L. Toral, Jose M. Quero, and Leopoldo G. Franquelo. 2000. Stochastic pulse coded arithmetic. In Proceedings of the IEEE International Symposium on Circuits and Systems, Vol. 1. 599--602.Google ScholarGoogle Scholar
  217. Georgios Tziantzioulis, Nikos Hardavellas, and Simone Campanoni. 2018. Temporal approximate function memoization. IEEE Micro 38, 4 (2018), 60--70.Google ScholarGoogle ScholarDigital LibraryDigital Library
  218. Girish V. Varatkar and Naresh R. Shanbhag. 2006. Energy-efficient motion estimation using error tolerance. In Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED’06).Google ScholarGoogle Scholar
  219. Lav Varshney. 2011. Performance of LDPC codes under faulty iterative decoding. IEEE Trans. Info. Theory 57, 7 (2011), 4427--4444. DOI:10.1109/TIT.2011.2145870Google ScholarGoogle ScholarDigital LibraryDigital Library
  220. Vassilis Vassiliadis, Jan Riehme, Jens Deussen, Konstantinos Parasyris, Christos D. Antonopoulos, Nikolaos Bellas, Spyros Lalis, and Uwe Naumann. 2016. Towards automatic significance analysis for approximate computing. In Proceedings of the IEEE/ACM International Symposium on Code Generation and Optimization (CGO’16). IEEE, 182--193.Google ScholarGoogle ScholarDigital LibraryDigital Library
  221. Vijay V. Vazirani. 2013. Approximation Algorithms. Springer Science 8 Business Media.Google ScholarGoogle ScholarDigital LibraryDigital Library
  222. Swagath Venkataramani, Vinay Chippa, Srimat Chakradhar, Kaushik Roy, and Anand Raghunathan. 2013. Quality programmable vector processors for approximate computing. In Proceedings of the 46th Annual International Symposium on Microarchitecture. ACM, 1--12.Google ScholarGoogle ScholarDigital LibraryDigital Library
  223. Swagath Venkataramani, Anand Raghunathan, Jie Liu, and Mohammed Shoaib. 2015. Scalable-effort classifiers for energy-efficient machine learning. In Proceedings of the 52nd Annual Design Automation Conference (DAC’15). ACM, 67:1--67:6.Google ScholarGoogle ScholarDigital LibraryDigital Library
  224. Swagath Venkataramani, Amit Sabne, Vivek Kozhikkottu, Kaushik Roy, and Anand Raghunathan. 2012. Salsa: Systematic logic synthesis of approximate circuits. In Proceedings of the 49th Annual Design Automation Conference (DAC’12). ACM, 796--801.Google ScholarGoogle ScholarDigital LibraryDigital Library
  225. Ajay Verma, Philip Brisk, and Paolo Ienne. 2008. Variable latency speculative addition: A new paradigm for arithmetic circuit design. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE’08). ACM, 1250--1255.Google ScholarGoogle ScholarDigital LibraryDigital Library
  226. John von Neumann. 1956. Probabilistic logics and the synthesis of reliable organisms from unreliable components. Autom. Studies 34 (1956), 43--98.Google ScholarGoogle Scholar
  227. Qiang Xu, Todd Mytkowicz, and Nam Sung Kim. 2016. Approximate computing: A survey. IEEE Design Test 33, 1 (2016), 8--22.Google ScholarGoogle ScholarCross RefCross Ref
  228. Yaoqing Yang, Pulkit Grover, and Soummya Kar. 2014. Can a noisy encoder be used to communicate reliably? In Proceedings of the 52nd Annual Allerton Conference on Communication, Control, and Computing. IEEE, 659--666.Google ScholarGoogle ScholarCross RefCross Ref
  229. Amir Yazdanbakhsh, Jongse Park, Hardik Sharma, Pejman Lotfi-Kamran, and Hadi Esmaeilzadeh. 2015. Neural acceleration for GPU throughput processors. In Proceedings of the 48th International Symposium on Microarchitecture. 482--493.Google ScholarGoogle ScholarDigital LibraryDigital Library
  230. S. M. Sadegh Tabatabaei Yazdi, Chu-Hsiang Huang, and Lara Dolecek. 2012. Optimal design of a Gallager B noisy decoder for irregular LDPC codes. IEEE Commun. Lett. 16, 12 (2012), 2052--2055.Google ScholarGoogle ScholarCross RefCross Ref
  231. Sadegh Tabatabaei Yazdi, Hyungmin Cho, and Lara Dolecek. 2013. Gallager B decoder on noisy hardware. Trans. Commun. 61 (2013), 1660--1673.Google ScholarGoogle ScholarCross RefCross Ref
  232. Yavuz Yetim, Sharad Malik, and Margaret Martonosi. 2015. CommGuard: Mitigating communication errors in error-prone parallel execution. In Proceedings of the 20th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’15). 311--323.Google ScholarGoogle ScholarDigital LibraryDigital Library
  233. Neil Zhao. 2010. Full-featured pedometer design realized with 3-Axis digital accelerometer. Analog Dial. 44 (2010).Google ScholarGoogle Scholar
  234. Ning Zhu, Wang Ling Goh, Weija Zhang, Kiat Seng Yeo, and Zhi Hui Kong. 2009. Design of low-power high-speed truncation-error-tolerant adder and its application in digital signal processing. IEEE Trans. Very Large Scale Integr. Syst. 18, 8 (2009), 1225--1229.Google ScholarGoogle Scholar
  235. Zeyuan Allen Zhu, Sasa Misailovic, Jonathan A. Kelner, and Martin Rinard. 2012. Randomized accuracy-aware program transformations for efficient approximate computations. In Proceedings of the 39th Annual Symposium on Principles of Programming Languages (POPL’12). ACM, 441--454.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Exploiting Errors for Efficiency: A Survey from Circuits to Applications

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM Computing Surveys
                ACM Computing Surveys  Volume 53, Issue 3
                May 2021
                787 pages
                ISSN:0360-0300
                EISSN:1557-7341
                DOI:10.1145/3403423
                Issue’s Table of Contents

                Copyright © 2020 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 12 June 2020
                • Online AM: 7 May 2020
                • Revised: 1 February 2020
                • Accepted: 1 February 2020
                • Received: 1 June 2018
                Published in csur Volume 53, Issue 3

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • survey
                • Research
                • Refereed

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader

              HTML Format

              View this article in HTML Format .

              View HTML Format