skip to main content
survey

Tools for Reduced Precision Computation: A Survey

Published: 17 April 2020 Publication History

Abstract

The use of reduced precision to improve performance metrics such as computation latency and power consumption is a common practice in the embedded systems field. This practice is emerging as a new trend in High Performance Computing (HPC), especially when new error-tolerant applications are considered. However, standard compiler frameworks do not support automated precision customization, and manual tuning and code transformation is the approach usually adopted in most domains. In recent years, research have been studying ways to improve the automation of this process. This article surveys this body of work, identifying the critical steps of this process, the most advanced tools available, and the open challenges in this research area. We conclude that, while several mature tools exist, there is still a gap to close, especially for tools based on static analysis rather than profiling, as well as for integration within mainstream, industry-strength compiler frameworks.

References

[1]
2018. BFLOAT16—Hardware Numerics Definitions. Technical Report. Intel Corporation. Retrieved from https://software.intel.com/sites/default/files/managed/40/8b/bf16-hardware-numerics-definition-white-paper.pdf.
[2]
Jean-Marc Alliot, Nicolas Durand, David Gianazza, and Jean-Baptiste Gotteland. 2012. Finding and proving the optimum: Cooperative stochastic and deterministic search. In Proceedings of the 20th European Conference on Artificial Intelligence (ECAI’12). 55--60.
[3]
Alexandra Angerd, Erik Sintorn, and Per Stenström. 2017. A framework for automated and controlled floating-point accuracy reduction in graphics applications on GPUs. ACM Trans. Archit. Code Optim. 14, 4, Article 46 (Dec. 2017), 25 pages.
[4]
Jason Ansel, Yee L. 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). 85--96.
[5]
David H. Bailey. 2017. A Thread-safe Arbitrary Precision Computation Package (Full Documentation). Technical Report.
[6]
David H. Bailey, Hida Yozo, Xiaoye S. Li, and Brandon Thompson. 2002. ARPREC: An Arbitrary Precision Computation Package. Technical Report.
[7]
Sylvie Boldo and Cesar Munoz. 2006. A High-Level Formalization of Floating-Point Number in PVS. Technical Report. NASA Langley Research Center.
[8]
David Brumley, Tzi-cker Chiueh, Robert Johnson, Huijia Lin, and Dawn Song. 2007. RICH: Automatically protecting against integer-based vulnerabilities. (1 2007).
[9]
Bryan Buck and Jeffrey K. Hollingsworth. 2000. An API for runtime code patching. Int. J. High Perf. Comput. Appl. 14, 4 (2000), 317--329.
[10]
Daniele Cattaneo, Antonio Di Bello, Stefano Cherubin, Federico Terraneo, and Giovanni Agosta. 2018. Embedded operating system optimization through floating to fixed point compiler transformation. In Proceedings of the Euromicro Conference on Digital System Design (DSD’18).
[11]
Stefano Cherubin, Giovanni Agosta, Imane Lasri, Erven Rohou, and Olivier Sentieys. 2017. Implications of reduced-precision computations in HPC: Performance, energy and error. In Proceedings of the International Conference on Parallel Computing (ParCo’17).
[12]
Stefano Cherubin, Daniele Cattaneo, Michele Chiari, Antonio Di Bello, and Giovanni Agosta. 2020. TAFFO: Tuning assistant for floating to fixed point optimization. IEEE Embed. Syst. Lett. 12, 1 (2020), 5--8.
[13]
Wei-Fan Chiang, Mark Baranowski, Ian Briggs, Alexey Solovyev, Ganesh Gopalakrishnan, and Zvonimir Rakamarić. 2017. Rigorous floating-point mixed-precision tuning. In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL’17). 300--315.
[14]
Patrick Cousot, Radhia Cousot, Jerôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, and Xavier Rival. 2005. The ASTRÉE analyzer. In Proceedings of the 14th European Conference on Programming Languages and Systems (ESOP’05). 21--30.
[15]
Nasrine Damouche and Matthieu Martel. 2017. Salsa: An automatic tool to improve the numerical accuracy of programs. In Automated Formal Methods (AFM’17), Vol. 5. 63--76.
[16]
Eva Darulova, Einar Horn, and Saksham Sharma. 2018. Sound mixed-precision optimization with rewriting. In Proceedings of the 9th ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS’18). 208--219.
[17]
Eva Darulova and Viktor Kuncak. 2014. Sound compilation of reals. In Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’14). 235--248.
[18]
Eva Darulova and Viktor Kuncak. 2017. Towards a compiler for reals. ACM Trans. Program. Lang. Syst. 39, 2, Article 8 (Mar. 2017), 28 pages.
[19]
Eva Darulova, Viktor Kuncak, Rupak Majumdar, and Indranil Saha. 2013. Synthesis of fixed-point programs. In Proceedings of the 11th ACM International Conference on Embedded Software (EMSOFT’13). Article 22, 10 pages.
[20]
Marc Daumas and Guillaume Melquiond. 2010. Certification of bounds on expressions involving rounded operators. ACM Trans. Math. Softw. 37, 1, Article 2 (Jan. 2010), 20 pages.
[21]
Florent de Dinechin and Bogdan Pasca. 2011. Designing custom arithmetic data paths with FloPoCo. IEEE Des. Test Comput. 28, 4 (Jul. 2011), 18--27.
[22]
Leonardo De Moura and Nikolaj Bjørner. 2008. Z3: An efficient SMT solver. In Proceedings of the Theory and Practice of Software and 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’08/ETAPS’08). 337--340.
[23]
Christophe Denis, Pablo de Oliveira Castro, and Eric Petit. 2016. Verificarlo: Checking floating point accuracy through Monte Carlo arithmetic. In Proceedings of the 2016 IEEE 23nd Symposium on Computer Arithmetic (ARITH’16). 55--62.
[24]
Will Dietz, Peng Li, John Regehr, and Vikram Adve. 2015. Understanding integer overflow in C/C++. ACM Trans. Softw. Eng. Methodol. 25, 1, Article 2 (dec 2015), 29 pages.
[25]
François Févotte and Bruno Lathuilière. 2017. Studying the numerical quality of an industrial computing code: A case study on Code_aster. In Numerical Software Verification. 61--80.
[26]
Antoine Floc’h, Tomofumi Yuki, Ali El-Moussawi, Antoine Morvan, Kevin Martin, Maxime Naullet, Mythri Alle, Ludovic L’Hours, Nicolas Simon, Steven Derrien, François Charot, Christophe Wolinski, and Olivier Sentieys. 2013. GeCoS: A framework for prototyping custom hardware design flows. In Proceedings of the International Working Conference on Source Code Analysis and Manipulation (SCAM’13). 100--105.
[27]
Laurent Fousse, Guillaume Hanrot, Vincent Lefèvre, Patrick Pélissier, and Paul Zimmermann. 2007. MPFR: A multiple-precision binary floating-point library with correct rounding. ACM Trans. Math. Softw. 33, 2, Article 13 (June 2007).
[28]
Altaf Abdul Gaffar, Oskar Mencer, and Wayne Luk. 2004. Unifying bit-width optimisation for fixed-point and floating-point designs. In Proceedings of the 12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines. 79--88.
[29]
Sicun Gao, Soonho Kong, and Edmund M. Clarke. 2013. dReal: An SMT solver for nonlinear theories over the reals. In Proceedings of the Conference on Automated Deduction (CADE-24). 208--214.
[30]
Carlo Ghezzi, Mehdi Jazayeri, and Dino Mandrioli. 2002. Fundamentals of Software Engineering (2nd ed.). Prentice Hall PTR, Upper Saddle River, NJ.
[31]
David Goldberg. 1991. What every computer scientist should know about floating-point arithmetic. ACM Comput. Surv. 23, 1 (Mar. 1991), 5--48.
[32]
Frédéric Goualard. 2001. GAOL (Not Just Another Interval Library). Retrieved August 26, 2018 from http://frederic.goualard.net/#research-software.
[33]
Eric Goubault and Sylvie Putot. 2006. Static analysis of numerical algorithms. In Static Analysis, Kwangkeun Yi (Ed.). Springer, Berlin, 18--34.
[34]
Stef Graillat, Fabienne Jézéquel, Romain Picot, François Févotte, and Bruno Lathuilière. 2016. Auto-tuning for Floating-point Precision with Discrete Stochastic Arithmetic. Technical Report.
[35]
Stef Graillat, Fabienne Jézéquel, Romain Picot, François Févotte, and Bruno Lathuilière. 2018. Numerical Validation in Quadruple Precision using Stochastic Arithmetic. Retrieved April 2018 from https://hal.archives-ouvertes.fr/hal-01777397.
[36]
Hui Guo and Cindy Rubio-González. 2018. Exploiting community structure for floating-point precision tuning. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA’18). 333--343.
[37]
Gurobi Company. 2018. Gurobi Optimization. Retrieved August 26, 2018 from http://www.gurobi.com.
[38]
John Harrison. 1999. A machine-checked theory of floating point arithmetic. In Theorem Proving in Higher Order Logics. 113--130.
[39]
IEEE Computer Society Standards Committee. Floating-Point Working group of the Microprocessor Standards Subcommittee. 2008a. IEEE standard for floating-point arithmetic. IEEE Std 754-2008 (Aug 2008), 1--70.
[40]
IEEE Computer Society Standards Committee. Floating-Point Working group of the Microprocessor Standards Subcommittee. 1985b. IEEE standard for binary floating-point arithmetic. ANSI/IEEE Std 754-1985 (1985), 1--14.
[41]
Intel Corporation. 2018. Intel 64 and IA-32 Architectures Software Developer’s Manual. Vol. 1.
[42]
Fabienne Jézéquel and Jean-Marie Chesneaux. 2008. CADNA: A library for estimating round-off error propagation. Comput. Phys. Commun. 178, 12 (2008), 933--955.
[43]
H. Keding, M. Willems, M. Coors, and H. Meyr. 1998. FRIDGE: A fixed-point design and simulation environment. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE’98). 429--435.
[44]
Seehyun Kim, Ki-Il Kum, and Wonyong Sung. 1998. Fixed-point optimization utility for C and C++ based digital signal processing programs. IEEE Trans. Circ. Syst. II: Analog Dig. Sign. Process. 45, 11 (Nov. 1998), 1455--1464.
[45]
Adam B. Kinsman and Nicola Nicolici. 2009. Finite precision bit-width allocation using SAT-Modulo theory. In Proceedings of the 2009 Design, Automation Test in Europe Conference Exhibition. 1106--1111.
[46]
Pradeep V. Kotipalli, Ranvijay Singh, Paul Wood, Ignacio Laguna, and Saurabh Bagchi. 2019. AMPT-GA: Automatic mixed precision floating point tuning for GPU applications. In Proceedings of the ACM International Conference on Supercomputing (ICS’19). 160--170.
[47]
Ki-Il Kum, Jiyang Kang, and Wonyong Sung. 2000. AUTOSCALER for C: An optimizing floating-point to integer C program converter for fixed-point digital signal processors. IEEE Trans. Circ. Syst. II: Analog Dig. Sign. Process. 47, 9 (Sep. 2000), 840--848.
[48]
Ignacio Laguna, Paul C. Wood, Ranvijay Singh, and Saurabh Bagchi. 2019. GPUMixer: Performance-driven floating-point tuning for GPU scientific applications. In High Performance Computing. 227--246.
[49]
Michael O. Lam and Jeffrey K. Hollingsworth. 2016. Fine-grained floating-point precision analysis. Int. J. High Perf. Comput. Appl. 32, 2 (2016), 231--245.
[50]
Michael O. Lam, Jeffrey K. Hollingsworth, Bronis R. de Supinski, and Matthew P. Legendre. 2013b. Automatically adapting programs for mixed-precision floating-point computation. In Proceedings of the 27th International Conference on Supercomputing (ICS’13). 369--378.
[51]
Michael O. Lam, Jeffrey K. Hollingsworth, and G. W. Stewart. 2013a. Dynamic floating-point cancellation detection. Parallel Comput. 39, 3 (Mar. 2013), 146--155.
[52]
Michael O. Lam and Barry L. Rountree. 2016. Floating-point shadow value analysis. In Proceedings of the 5th Workshop on Extreme-Scale Programming Tools (ESPT’16). 18--25.
[53]
Michael O. Lam, Tristan Vanderbruggen, Harshitha Menon, and Markus Shordan. 2019. Tool integration for source-level mixed precision. In Proceedings of the 2019 IEEE/ACM 3rd International Workshop on Software Correctness for HPC Applications (Correctness’19).
[54]
Chris Lattner and Vikram Adve. 2004. LLVM: A compilation framework for lifelong program analysis 8 transformation. In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO’04). 75--.
[55]
Hong Q. Le, J. A. Van Norstrand, B. W. Thompto, J. E. Moreira, D. Q. Nguyen, D. Hrusecky, M. J. Genden, and M. Kroener. 2018. IBM POWER9 processor core. IBM J. Res. Dev. 62, 4/5 (2018), 2:1--2:12.
[56]
Dong-U. Lee, Altaf Abdul Gaffar, Ray C. C. Cheung, Oskar Mencer, Wayne Luk, and George A. Constantinides. 2006. Accuracy-guaranteed bit-width optimization. IEEE Trans. Comput.-Aid. Des. Integr. Circ. Syst. 25, 10 (Oct. 2006), 1990--2000.
[57]
JunKyu Lee, Hans Vandierendonck, Mahwish Arif, Gregory D. Peterson, and Dimitrios S. Nikolopoulos. 2018. Energy-efficient iterative refinement using dynamic precision. IEEE J. Emerg. Select. Top. Circ. Syst. (Jun. 2018), 1--14.
[58]
Alberto Leva, Martina Maggio, Alessandro V. Papadopoulos, and Federico Terraneo. 2013. Control-Based Operating System Design. Institution of Engineering and Technology.
[59]
Cedric Lichtenau, Steven Carlough, and Silvia M. Mueller. 2016. Quad precision floating point on the IBM z13. In Proceedings of the 2016 IEEE 23nd Symposium on Computer Arithmetic (ARITH’16). 87--94.
[60]
Chi-Keung Luk, Robert Cohn, Robert Muth, Harish Patil, Artur Klauser, Geoff Lowney, Steven Wallace, Vijay Janapa Reddi, and Kim Hazelwood. 2005. Pin: Building customized program analysis tools with dynamic instrumentation. In Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’05). 190--200.
[61]
Victor Magron, George Constantinides, and Alastair Donaldson. 2017. Certified roundoff error bounds using semidefinite programming. ACM Trans. Math. Softw. 43, 4, Article 34 (Jan. 2017), 31 pages.
[62]
Ramy Medhat, Michael O. Lam, Barry L. Rountree, Borzoo Bonakdarpour, and Sebastian Fischmeister. 2017. Managing the performance/error tradeoff of floating-point intensive applications. ACM Trans. Embed. Comput. Syst. 16, 5s, Article 184 (Oct. 2017), 19 pages.
[63]
Guillaume Melquiond. 2018. Retreived Octobe 16, 2018 from https://gforge.inria.fr/projects/gappa/.
[64]
Daniel Menard, Daniel Chillet, François Charot, and Olivier Sentieys. 2002. Automatic floating-point to fixed-point conversion for DSP code generation. In Proceedings of the 2002 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES’02). 270--276.
[65]
Harshitha Menon, Michael O. Lam, Daniel Osei-Kuffuor, Markus Schordan, Scott Lloyd, Kathryn Mohror, and Jeffrey Hittinger. 2018. ADAPT: Algorithmic differentiation applied to floating-point precision tuning. In Proceedings of the International Conference for High Performance Computing, Networking, Storage, and Analysis (SC’18). Article 48, 13 pages.
[66]
Paul S. Miner. 1995. Defining the IEEE-854 Floating-Point Standard in PVS. Technical Report. NASA Langley Research Center.
[67]
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).
[68]
David Monniaux. 2008. The pitfalls of verifying floating-point computations. ACM Trans. Program. Lang. Syst. 30, 3, Article 12 (May 2008), 41 pages.
[69]
Ramon E. Moore. 1966. Interval Analysis. Vol. 4. Prentice-Hall, Englewood Cliffs, NJ.
[70]
Mariano Moscato, Laura Titolo, Aaron Dutle, and César A. Muñoz. 2017. Automatic estimation of verified floating-point round-off errors via static analysis. In Computer Safety, Reliability, and Security. Springer International Publishing, 213--229.
[71]
Mariano M. Moscato, Laura Titolo, Marco A. Feliú, and César A. Muñoz. 2019. Provably correct floating-point implementation of a point-in-polygon algorithm. In Formal Methods—The Next 30 Years. 21--37.
[72]
Jean-Michel Muller, Nicolas Brunie, Florent de Dinechin, Claude-Pierre Jeannerod, Mioara Joldes, Vincent Lefèvre, Guillaume Melquiond, Nathalie Revol, and Serge Torres. 2018. Definitions and Basic Notions. 15--45.
[73]
Ralph Nathan, Helia Naeimi, Daniel J. Sorin, and Xiaobai Sun. 2016. Profile-Driven Automated Mixed Precision. CoRR abs/1606.00251.
[74]
Uwe Naumann. 2012. The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation. Society for Industrial and Applied Mathematics, Philadelphia, PA.
[75]
Nicholas Nethercote and Julian Seward. 2007. Valgrind: A framework for heavyweight dynamic binary instrumentation. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’07). 89--100.
[76]
Ricardo Nobre, Luís Reis, João Bispo, Tiago Carvalho, João M. P. Cardoso, Stefano Cherubin, and Giovanni Agosta. 2018. Aspect-driven mixed-precision tuning targeting GPUs. In Proceedings of the 9th Workshop on Parallel Programming and Run-Time Management Techniques for Many-core Architectures and the 7th Workshop on Design Tools and Architectures For Multicore Embedded Computing Platforms (PARMA-DITAM’18). 26--31.
[77]
William G. Osborne, Ray C. C. Cheung, José G. F. Coutinho, Wayne Luk, and Oskar Mencer. 2007. Automatic accuracy-guaranteed bit-width optimization for fixed and floating-point systems. In Proceedings of the 2007 International Conference on Field Programmable Logic and Applications. 617--620.
[78]
Sam Owre, John M. Rushby, and Natarajan Shankar. 1992. PVS: A prototype verification system. In Proceedings of the International Conference on Automated Deduction (CADE-11). 748--752.
[79]
Pavel Panchekha, Alex Sanchez-Stern, James R. Wilcox, and Zachary Tatlock. 2015a. Automatically improving accuracy for floating point expressions. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’15). 1--11.
[80]
Pavel Panchekha, Alex Sanchez-Stern, James R. Wilcox, and Zachary Tatlock. 2015b. Automatically improving accuracy for floating point expressions. SIGPLAN Not. 50, 6 (Jun. 2015), 1--11.
[81]
Yu Pang and Katarzyna Radecka. 2008. Optimizing imprecise fixed-point arithmetic circuits specified by taylor series through arithmetic transform. In Proceedings of the 2008 45th ACM/IEEE Design Automation Conference. 397--402.
[82]
Yu Pang, Katarzyna Radecka, and Zeljko Zilic. 2011. An efficient hybrid engine to perform range analysis and allocate integer bit-widths for arithmetic circuits. In Proceedings of the 16th Asia and South Pacific Design Automation Conference (ASPDAC’11). 455--460.
[83]
Heejoung Park, Yuki Yamanashi, Kazuhiro Taketomi, Nobuyuki Yoshikawa, Masamitsu Tanaka, Koji Obata, Yuki Ito, Akira Fujimaki, Naofumi Takagi, Kazuyoshi Takagi, and Shuichi Nagasawa. 2009. Design and implementation and on-chip high-speed test of SFQ half-precision floating-point adders. IEEE Trans. Appl. Superconduct. 19, 3 (Jun. 2009), 634--639.
[84]
Douglass Stott Parker. 1997. Monte Carlo Arithmetic: Exploiting Randomness in Floating-point Arithmetic. Technical Report. University of California (Los Angeles). Computer Science Department.
[85]
Pedro Pinto, Tiago Carvalho, João Bispo, and João M. P. Cardoso. 2017. LARA as a language-independent aspect-oriented programming approach. In Proceedings of the Symposium on Applied Computing (SAC’17). 1623--1630.
[86]
Dan Quinlan. 2000. ROSE: Compiler support for object-oriented frameworks. Parallel Process. Lett. 10, 02n03 (2000), 215--226.
[87]
Manuel Richey and Hossein Saiedian. 2009. A new class of floating-point data formats with applications to 16-bit digital-signal processing systems. IEEE Commun. Mag. 47, 7 (Jul. 2009), 94--101.
[88]
Victor Hugo Rodrigues, Raphael Ernani andSperle Campos and Fernando Magno Quintão Pereira. 2013. A fast and low-overhead technique to secure programs against integer overflows. In Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO’13). 1--11.
[89]
Krzysztof Rojek. 2018. Machine learning method for energy reduction by utilizing dynamic mixed precision on GPU-based supercomputers. Concurr. Comput.: Pract. Exper. 31, 6 (Apr. 2018), e4644.
[90]
Pooja Roy, Rajarshi Ray, Chundong Wang, and Weng Fai Wong. 2014. ASAC: Automatic sensitivity analysis for approximate computing. In Proceedings of the 2014 SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems (LCTES’14). 95--104.
[91]
Cindy Rubio-González, Cuong Nguyen, Benjamin Mehne, Koushik Sen, James Demmel, William Kahan, Costin Iancu, Wim Lavrijsen, David H. Bailey, and David Hough. 2016. Floating-point precision tuning using blame analysis. In Proceedings of the 38th International Conference on Software Engineering (ICSE’16). 1074--1085.
[92]
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). Article 27, 12 pages.
[93]
Alex Sanchez-Stern, Pavel Panchekha, Sorin Lerner, and Zachary Tatlock. 2018. Finding root causes of floating point error. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’18). 256--269.
[94]
Markus Schordan. 2019. Typeforge. Retrieved April 1, 2019 from https://github.com/rose-compiler/rose-develop/tree/master/projects/typeforge.
[95]
Alexey Solovyev, Charles Jacobsen, Zvonimir Rakamarić, and Ganesh Gopalakrishnan. 2015. Rigorous estimation of floating-point round-off errors with symbolic taylor expansions. In Proceedings of the Annual Conference on Formal Methods (FM’15), Nikolaj Bjørner and Frank de Boer (Eds.). 532--550.
[96]
Jorge Stolfi and Luiz Henrique de Figueiredo. 2003. An introduction to affine arithmetic. Trends Appl. Comput. Math. 4, 3 (2003), 297--312.
[97]
Giuseppe Tagliavini, Stefan Mach, Davide Rossi, Andrea Marongiu, and Luca Benini. 2018. A transprecision floating-point platform for ultra-low power computing. In Proceedings of the 2018 Design, Automation Test in Europe Conference Exhibition (DATE’18). 1051--1056.
[98]
Laura Titolo, Marco A. Feliú, Mariano Moscato, and César A. Muñoz. 2018. An abstract interpretation framework for the round-off error analysis of floating-point programs. In Verification, Model Checking, and Abstract Interpretation. Springer International Publishing, 516--537.
[99]
Laura Titolo, César A. Muñoz, Marco A. Feliú, and Mariano M. Moscato. 2019. Eliminating unstable tests in floating-point programs. In Logic-Based Program Synthesis and Transformation. 169--183.
[100]
Jean Vignes. 2004. Discrete stochastic arithmetic for validating results of numerical software. Numer. Algor. 37, 1 (01 Dec. 2004), 377--390.
[101]
Robert P. Wilson, Robert S. French, Christopher S. Wilson, Saman P. Amarasinghe, Jennifer M. Anderson, Steve W. K. Tjiang, Shih-Wei Liao, Chau-Wen Tseng, Mary W. Hall, Monica S. Lam, and John L. Hennessy. 1994. SUIF: An infrastructure for research on parallelizing and optimizing compilers. ACM SIGPLAN Not. 29, 12 (Dec. 1994), 31--37.
[102]
Serif Yesil, Ismail Akturk, and Ulya R. Karpuzcu. 2018. Toward dynamic precision scaling. IEEE Micro 38, 4 (Jul. 2018), 30--39.
[103]
Andreas Zeller and Ralf Hildebrandt. 2002. Simplifying and isolating failure-inducing input. IEEE Trans. Softw. Eng. 28, 2 (Feb. 2002), 183--200.

Cited By

View all
  • (2025)Approximate Computing Survey, Part I: Terminology and Software & Hardware Approximation TechniquesACM Computing Surveys10.1145/3716845Online publication date: 12-Feb-2025
  • (2025)Evaluating Custom-Precision Operator Support in MLIR for ARM CPUsMachine Learning and Principles and Practice of Knowledge Discovery in Databases10.1007/978-3-031-74643-7_12(150-162)Online publication date: 1-Jan-2025
  • (2024)Numerical stability of DeepGOPlus inferencePLOS ONE10.1371/journal.pone.029672519:1(e0296725)Online publication date: 29-Jan-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Computing Surveys
ACM Computing Surveys  Volume 53, Issue 2
March 2021
848 pages
ISSN:0360-0300
EISSN:1557-7341
DOI:10.1145/3388460
Issue’s Table of Contents
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 the author(s) 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: 17 April 2020
Accepted: 01 January 2020
Revised: 01 January 2020
Received: 01 November 2018
Published in CSUR Volume 53, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Reduced precision
  2. approximate computing

Qualifiers

  • Survey
  • Research
  • Refereed

Funding Sources

  • EU H2020 RECIPE project

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)155
  • Downloads (Last 6 weeks)13
Reflects downloads up to 03 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Approximate Computing Survey, Part I: Terminology and Software & Hardware Approximation TechniquesACM Computing Surveys10.1145/3716845Online publication date: 12-Feb-2025
  • (2025)Evaluating Custom-Precision Operator Support in MLIR for ARM CPUsMachine Learning and Principles and Practice of Knowledge Discovery in Databases10.1007/978-3-031-74643-7_12(150-162)Online publication date: 1-Jan-2025
  • (2024)Numerical stability of DeepGOPlus inferencePLOS ONE10.1371/journal.pone.029672519:1(e0296725)Online publication date: 29-Jan-2024
  • (2024)SeTHet - Sending Tuned numbers over DMA onto Heterogeneous clusters: an automated precision tuning storyProceedings of the 21st ACM International Conference on Computing Frontiers10.1145/3649153.3649203(258-266)Online publication date: 7-May-2024
  • (2024)Compile-Time Optimization of the Energy Consumption of Numerical ComputationsProceedings of the 21st ACM International Conference on Computing Frontiers: Workshops and Special Sessions10.1145/3637543.3654759(5-7)Online publication date: 7-May-2024
  • (2024)A Holistic Approach to Automatic Mixed-Precision Code Generation and Tuning for Affine ProgramsProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638484(55-67)Online publication date: 2-Mar-2024
  • (2024)Profiling vs Static Analysis: The Impact on Precision TuningProceedings of the 39th ACM/SIGAPP Symposium on Applied Computing10.1145/3605098.3636080(446-448)Online publication date: 8-Apr-2024
  • (2024)Predicting Performance and Accuracy of Mixed-Precision Programs for Precision TuningProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3623338(1-13)Online publication date: 20-May-2024
  • (2024)Toward Automated Precision Tuning of Weather and Climate Models: A Case StudyProceedings of the SC '24 Workshops of the International Conference on High Performance Computing, Network, Storage, and Analysis10.1109/SCW63240.2024.00026(148-159)Online publication date: 17-Nov-2024
  • (2024)The TEXTAROSSA Project: Cool all the Way Down to the Hardware2024 27th Euromicro Conference on Digital System Design (DSD)10.1109/DSD64264.2024.00076(526-533)Online publication date: 28-Aug-2024
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media