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.
- 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.Google Scholar
- 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. DOI:https://doi.org/10.3233/978-1-61499-098-7-55Google Scholar
- 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. DOI:https://doi.org/10.1145/3151032Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1109/CGO.2011.5764677Google ScholarCross Ref
- David H. Bailey. 2017. A Thread-safe Arbitrary Precision Computation Package (Full Documentation). Technical Report.Google Scholar
- David H. Bailey, Hida Yozo, Xiaoye S. Li, and Brandon Thompson. 2002. ARPREC: An Arbitrary Precision Computation Package. Technical Report.Google ScholarCross Ref
- Sylvie Boldo and Cesar Munoz. 2006. A High-Level Formalization of Floating-Point Number in PVS. Technical Report. NASA Langley Research Center.Google Scholar
- David Brumley, Tzi-cker Chiueh, Robert Johnson, Huijia Lin, and Dawn Song. 2007. RICH: Automatically protecting against integer-based vulnerabilities. (1 2007). DOI:https://doi.org/10.1184/R1/6469253.v1Google Scholar
- Bryan Buck and Jeffrey K. Hollingsworth. 2000. An API for runtime code patching. Int. J. High Perf. Comput. Appl. 14, 4 (2000), 317--329. DOI:https://doi.org/10.1177/109434200001400404Google ScholarDigital Library
- 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).Google ScholarCross Ref
- 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).Google Scholar
- 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. DOI:https://doi.org/10.1109/LES.2019.2913774Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/3009837.3009846Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1007/978-3-540-31987-0_3Google ScholarDigital Library
- 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. DOI:https://doi.org/10.29007/j2fdGoogle Scholar
- 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. DOI:https://doi.org/10.1109/ICCPS.2018.00028Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/2535838.2535874Google ScholarDigital Library
- Eva Darulova and Viktor Kuncak. 2017. Towards a compiler for reals. ACM Trans. Program. Lang. Syst. 39, 2, Article 8 (Mar. 2017), 28 pages. DOI:https://doi.org/10.1145/3014426Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1109/EMSOFT.2013.6658600Google ScholarCross Ref
- 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. DOI:https://doi.org/10.1145/1644001.1644003Google ScholarDigital Library
- Florent de Dinechin and Bogdan Pasca. 2011. Designing custom arithmetic data paths with FloPoCo. IEEE Des. Test Comput. 28, 4 (Jul. 2011), 18--27. DOI:https://doi.org/10.1109/MDT.2011.44Google ScholarDigital Library
- 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.Google ScholarCross Ref
- 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. DOI:https://doi.org/10.1109/ARITH.2016.31Google ScholarCross Ref
- 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. DOI:https://doi.org/10.1145/2743019Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1007/978-3-319-63501-9_5Google Scholar
- 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.Google ScholarCross Ref
- 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). DOI:https://doi.org/10.1145/1236463.1236468Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1109/FCCM.2004.59Google ScholarDigital Library
- 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.Google Scholar
- Carlo Ghezzi, Mehdi Jazayeri, and Dino Mandrioli. 2002. Fundamentals of Software Engineering (2nd ed.). Prentice Hall PTR, Upper Saddle River, NJ.Google Scholar
- David Goldberg. 1991. What every computer scientist should know about floating-point arithmetic. ACM Comput. Surv. 23, 1 (Mar. 1991), 5--48. DOI:https://doi.org/10.1145/103162.103163Google ScholarDigital Library
- Frédéric Goualard. 2001. GAOL (Not Just Another Interval Library). Retrieved August 26, 2018 from http://frederic.goualard.net/#research-software.Google Scholar
- Eric Goubault and Sylvie Putot. 2006. Static analysis of numerical algorithms. In Static Analysis, Kwangkeun Yi (Ed.). Springer, Berlin, 18--34.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- 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. DOI:https://doi.org/10.1145/3213846.3213862Google ScholarDigital Library
- Gurobi Company. 2018. Gurobi Optimization. Retrieved August 26, 2018 from http://www.gurobi.com.Google Scholar
- John Harrison. 1999. A machine-checked theory of floating point arithmetic. In Theorem Proving in Higher Order Logics. 113--130. DOI:https://doi.org/10.1007/3-540-48256-3_9Google Scholar
- 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. DOI:https://doi.org/10.1109/IEEESTD.2008.4610935Google Scholar
- 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. DOI:https://doi.org/10.1109/IEEESTD.1985.82928Google Scholar
- Intel Corporation. 2018. Intel 64 and IA-32 Architectures Software Developer’s Manual. Vol. 1.Google Scholar
- 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. DOI:https://doi.org/10.1016/j.cpc.2008.02.003Google ScholarCross Ref
- 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.Google Scholar
- 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. DOI:https://doi.org/10.1109/82.735357Google Scholar
- 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. DOI:https://doi.org/10.1109/DATE.2009.5090829Google Scholar
- 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. DOI:https://doi.org/10.1145/3330345.3330360Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1109/82.868453Google Scholar
- 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. DOI:https://doi.org/10.1007/978-3-030-20656-7_12Google Scholar
- 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. DOI:https://doi.org/10.1177/1094342016652462Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/2464996.2465018Google Scholar
- Michael O. Lam, Jeffrey K. Hollingsworth, and G. W. Stewart. 2013a. Dynamic floating-point cancellation detection. Parallel Comput. 39, 3 (Mar. 2013), 146--155. DOI:https://doi.org/10.1016/j.parco.2012.08.002Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1109/ESPT.2016.10Google Scholar
- 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).Google ScholarCross Ref
- 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--.Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1147/JRD.2018.2854039Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1109/TCAD.2006.873887Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1109/JETCAS.2018.2850665Google Scholar
- Alberto Leva, Martina Maggio, Alessandro V. Papadopoulos, and Federico Terraneo. 2013. Control-Based Operating System Design. Institution of Engineering and Technology.Google Scholar
- 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. DOI:https://doi.org/10.1109/ARITH.2016.26Google ScholarCross Ref
- 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. DOI:https://doi.org/10.1145/1065010.1065034Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/3015465Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/3126519Google ScholarDigital Library
- Guillaume Melquiond. 2018. Retreived Octobe 16, 2018 from https://gforge.inria.fr/projects/gappa/.Google Scholar
- 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. DOI:https://doi.org/10.1145/581630.581674Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1109/SC.2018.00051Google ScholarDigital Library
- Paul S. Miner. 1995. Defining the IEEE-854 Floating-Point Standard in PVS. Technical Report. NASA Langley Research Center.Google Scholar
- 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 Scholar
- David Monniaux. 2008. The pitfalls of verifying floating-point computations. ACM Trans. Program. Lang. Syst. 30, 3, Article 12 (May 2008), 41 pages. DOI:https://doi.org/10.1145/1353445.1353446Google ScholarDigital Library
- Ramon E. Moore. 1966. Interval Analysis. Vol. 4. Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- 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. DOI:https://doi.org/10.1007/978-3-319-76526-6_2Google Scholar
- Ralph Nathan, Helia Naeimi, Daniel J. Sorin, and Xiaobai Sun. 2016. Profile-Driven Automated Mixed Precision. CoRR abs/1606.00251.Google Scholar
- Uwe Naumann. 2012. The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation. Society for Industrial and Applied Mathematics, Philadelphia, PA.Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/1250734.1250746Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/3183767.3183776Google Scholar
- 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. DOI:https://doi.org/10.1109/FPL.2007.4380730Google ScholarCross Ref
- 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.Google ScholarCross Ref
- 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. DOI:https://doi.org/10.1145/2737924.2737959Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/2813885.2737959Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/1391469.1391574Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1109/ASPDAC.2011.5722233Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1109/TASC.2009.2019070Google Scholar
- Douglass Stott Parker. 1997. Monte Carlo Arithmetic: Exploiting Randomness in Floating-point Arithmetic. Technical Report. University of California (Los Angeles). Computer Science Department.Google Scholar
- 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. DOI:https://doi.org/10.1145/3019612.3019749Google Scholar
- Dan Quinlan. 2000. ROSE: Compiler support for object-oriented frameworks. Parallel Process. Lett. 10, 02n03 (2000), 215--226. DOI:https://doi.org/10.1142/S0129626400000214Google ScholarCross Ref
- 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. DOI:https://doi.org/10.1109/MCOM.2009.5183478Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1109/CGO.2013.6494996Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1002/cpe.4644Google Scholar
- 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. DOI:https://doi.org/10.1145/2597809.2597812Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/2884781.2884850Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/2503210.2503296Google ScholarDigital Library
- 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. DOI:https://doi.org/10.1145/3192366.3192411Google ScholarDigital Library
- Markus Schordan. 2019. Typeforge. Retrieved April 1, 2019 from https://github.com/rose-compiler/rose-develop/tree/master/projects/typeforge.Google Scholar
- 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.Google ScholarCross Ref
- Jorge Stolfi and Luiz Henrique de Figueiredo. 2003. An introduction to affine arithmetic. Trends Appl. Comput. Math. 4, 3 (2003), 297--312. DOI:https://doi.org/10.5540/tema.2003.04.03.0297Google Scholar
- 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. DOI:https://doi.org/10.23919/DATE.2018.8342167Google ScholarCross Ref
- 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.Google Scholar
- 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. DOI:https://doi.org/10.1007/978-3-030-13838-7_10Google Scholar
- Jean Vignes. 2004. Discrete stochastic arithmetic for validating results of numerical software. Numer. Algor. 37, 1 (01 Dec. 2004), 377--390. DOI:https://doi.org/10.1023/B:NUMA.0000049483.75679.ceGoogle Scholar
- 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. DOI:https://doi.org/10.1145/193209.193217Google ScholarDigital Library
- Serif Yesil, Ismail Akturk, and Ulya R. Karpuzcu. 2018. Toward dynamic precision scaling. IEEE Micro 38, 4 (Jul. 2018), 30--39. DOI:https://doi.org/10.1109/MM.2018.043191123Google ScholarCross Ref
- Andreas Zeller and Ralf Hildebrandt. 2002. Simplifying and isolating failure-inducing input. IEEE Trans. Softw. Eng. 28, 2 (Feb. 2002), 183--200. DOI:https://doi.org/10.1109/32.988498Google ScholarDigital Library
Index Terms
- Tools for Reduced Precision Computation: A Survey
Recommendations
Mixed-precision explicit stabilized Runge–Kutta methods for single- and multi-scale differential equations
AbstractMixed-precision algorithms combine low- and high-precision computations in order to benefit from the performance gains of reduced-precision without sacrificing accuracy. In this work, we design mixed-precision Runge–Kutta–Chebyshev (...
Highlights- Mixed-precision algorithms can obtain high-accuracy results at a low-precision cost.
Reduced precision discretization based on information theory
AbstractIn recent years, new technological areas have emerged and proliferated, such as the Internet of Things or embedded systems in drones, which are usually characterized by making use of devices with strict requirements of weight, size, cost and power ...
CASE tools: understanding the reasons for non-use
Computer-Aided Software Engineering (CASE) technologies are tools that provide automated assistance for software development [3]. The goal of introducing CASE tools is the reduction of the time and cost of software development and the enhancement of the ...
Comments