skip to main content
research-article

Regime Inference for Sound Floating-Point Optimizations

Published: 17 September 2021 Publication History

Editorial Notes

The authors have requested minor, non-substantive changes to the VoR and, in accordance with ACM policies, a Corrected VoR was published on October 8, 2021. For reference purposes the VoR may still be accessed via the Supplemental Material section on this page.

Abstract

Efficient numerical programs are required for proper functioning of many systems. Today’s tools offer a variety of optimizations to generate efficient floating-point implementations that are specific to a program’s input domain. However, sound optimizations are of an “all or nothing” fashion with respect to this input domain—if an optimizer cannot improve a program on the specified input domain, it will conclude that no optimization is possible. In general, though, different parts of the input domain exhibit different rounding errors and thus have different optimization potential. We present the first regime inference technique for sound optimizations that automatically infers an effective subdivision of a program’s input domain such that individual sub-domains can be optimized more aggressively. Our algorithm is general; we have instantiated it with mixed-precision tuning and rewriting optimizations to improve performance and accuracy, respectively. Our evaluation on a standard benchmark set shows that with our inferred regimes, we can, on average, improve performance by 65% and accuracy by 54% with respect to whole-domain optimizations.

Supplementary Material

3477012-vor (3477012-vor.pdf)
Version of Record for "Regime Inference for Sound Floating-Point Optimizations" by Rabe et al., ACM Transactions on Embedded Computing Systems, Volume 20, Issue 5s (TECS 20:5s).

References

[1]
2020. GCC libquadmath. https://gcc.gnu.org/onlinedocs/libquadmath/.
[2]
2020. The GNU MPFR Library. https://www.mpfr.org/.
[3]
2021. ARM developer: Floating Point. https://developer.arm.com/architectures/instruction-sets/floating-point.
[4]
2021. EEMBC FPMark Floating-Point Benchmark Suite. https://www.eembc.org/fpmark/.
[5]
Adolfo Anta, Rupak Majumdar, Indranil Saha, and Paulo Tabuada. 2010. Automatic verification of control system implementations. In International Conference on Embedded Software (EMSOFT).
[6]
D. H. Bailey, Y. Hida, X. S. Li, and B. Thompson. 2015. C++/Fortran-90 double-double and quad-double package. Technical Report. http://crd-legacy.lbl.gov/ dhbailey/mpdist/.
[7]
Joachim Bard, Heiko Becker, and Eva Darulova. 2019. Formally verified roundoff errors using SMT-based certificates and subdivisions. In Formal Methods (FM).
[8]
Hans-J. Boehm. 2020. Towards an API for the real numbers. In Programming Language Design and Implementation (PLDI).
[9]
Wei-Fan Chiang, Mark Baranowski, Ian Briggs, Alexey Solovyev, Ganesh Gopalakrishnan, and Zvonimir Rakamarić. 2017. Rigorous floating-point mixed-precision tuning. In Principles of Programming Languages (POPL).
[10]
Nasrine Damouche and Matthieu Martel. 2018. Mixed precision tuning with salsa. In International Joint Conference on Pervasive and Embedded Computing and Communication Systems (PECCS).
[11]
Nasrine Damouche, Matthieu Martel, Pavel Panchekha, Chen Qiu, Alex Sanchez-Stern, and Zachary Tatlock. 2016. Toward a standard benchmark format and suite for floating-point analysis. In International Workshop on Numerical Software Verification (NSV).
[12]
Eva Darulova, Einar Horn, and Saksham Sharma. 2018. Sound mixed-precision optimization with rewriting. In International Conference on Cyber-Physical Systems (ICCPS).
[13]
Eva Darulova, Anastasiia Izycheva, Fariha Nasir, Fabian Ritter, Heiko Becker, and Robert Bastian. 2018. Daisy - Framework for analysis and optimization of numerical programs. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS).
[14]
Eva Darulova and Viktor Kuncak. 2017. Towards a Compiler for Reals. TOPLAS 39, 2 (2017).
[15]
Eva Darulova, Viktor Kuncak, Rupak Majumdar, and Indranil Saha. 2013. Synthesis of fixed-point programs. In International Conference on Embedded Software (EMSOFT).
[16]
Eva Darulova and Anastasia Volkova. 2018. Sound approximation of programs with elementary functions. In Computer Aided Verification (CAV).
[17]
Arnab Das, Ian Briggs, Ganesh Gopalakrishnan, Sriram Krishnamoorthy, and Pavel Panchekha. 2020. Scalable yet rigorous floating-point error analysis. In International Conference for High Performance Computing, Networking, Storage and Analysis (SC).
[18]
Rémy Garcia, Claude Michel, and Michel Rueher. 2020. A branch-and-bound algorithm to rigorously enclose the round-off errors. In Principles and Practice of Constraint Programming (CP).
[19]
David Goldberg. 1991. What every computer scientist should know about floating-point arithmetic. ACM Comput. Surv. 23, 1 (1991).
[20]
Eric Goubault and Sylvie Putot. 2011. Static analysis of finite precision computations. In Verification, Model Checking, and Abstract Interpretation (VMCAI).
[21]
Eric Goubault, Sylvie Putot, Philippe Baufreton, and Jean Gassino. 2007. Static analysis of the accuracy in control systems: Principles and experiments. In Formal Methods for Industrial Critical Systems (FMICS).
[22]
Stef Graillat, Fabienne Jézéquel, Romain Picot, François Févotte, and Bruno Lathuilière. 2019. Auto-tuning for floating-point precision with discrete stochastic arithmetic. Journal of Computational Science 36 (2019).
[23]
Gustafson and Yonemoto. 2017. Beating floating point at its own game: Posit arithmetic. Supercomput. Front. Innov.: Int. J. 4, 2 (2017).
[24]
Matthew R. Guthaus, Jeffrey S. Ringenberg, Dan Ernst, Todd M. Austin, Trevor Mudge, and Richard B. Brown. 2021. MiBench: A free, commercially representative embedded benchmark suite. In IEEE 4th Annual Workshop on Workload Characterization. http://vhosts.eecs.umich.edu/mibench//index.html.
[25]
Nhut-Minh Ho, Elavarasi Manogaran, Weng-Fai Wong, and Asha Anoosheh. 2017. Efficient floating point precision tuning for approximate computing. In Asia and South Pacific Design Automation Conference (ASP-DAC).
[26]
IEEE. 2008. IEEE Standard for Floating-Point Arithmetic. IEEE Std 754-2008 (2008).
[27]
Anastasiia Izycheva, Eva Darulova, and Helmut Seidl. 2019. Synthesizing efficient low-precision kernels. In Automated Technology for Verification and Analysis (ATVA).
[28]
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.
[29]
Olga Kupriianova and Christoph Quirin Lauter. 2014. A domain splitting algorithm for the mathematical functions code generator. In Asilomar Conference on Signals, Systems and Computers, (ACSSC).
[30]
Michael O. Lam and Jeffrey K. Hollingsworth. 2018. Fine-grained floating-point precision analysis. The International Journal of High Performance Computing Applications 32, 2 (2018).
[31]
Wonyeol Lee, Rahul Sharma, and Alex Aiken. 2016. Verifying bit-manipulations of floating-point. In Programming Language Design and Implementation (PLDI).
[32]
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. Article 48.
[33]
Antoine Miné. 2012. Abstract domains for bit-level machine integer and floating-point operations. In ATx’12/WInG’12: Joint Proceedings of the Workshops on Automated Theory eXploration and on Invariant Generation.
[34]
Sasa Misailovic, Michael Carbin, Sara Achour, Zichao Qi, and Martin C. Rinard. 2014. Chisel: Reliability- and accuracy-aware optimization of approximate computational kernels. In Object Oriented Programming Systems Languages & Applications (OOPSLA).
[35]
Mariano Moscato, Laura Titolo, Aaron Dutle, and Cesar Muñoz. 2017. Automatic estimation of verified floating-point round-off errors via static analysis. In SAFECOMP.
[36]
NVIDIA. 2020. TensorFloat-32 in the A100 GPU Accelerates AI Training. (2020). https://blogs.nvidia.com/blog/2020/05/14/tensoroat-32-precision-format/.
[37]
Pavel Panchekha, Alex Sanchez-Stern, James R. Wilcox, and Zachary Tatlock. 2015. Automatically improving accuracy for floating point expressions. In Programming Language Design and Implementation (PLDI).
[38]
Cindy Rubio-González, Cuong Nguyen, Hong Diep Nguyen, James Demmel, William Kahan, Koushik Sen, D. H. Bailey, Costin Iancu, and David Hough. 2013. Precimonious: Tuning assistant for floating-point precision. In International Conference for High Performance Computing, Networking, Storage and Analysis (SC).
[39]
Eric Schkufza, Rahul Sharma, and Alex Aiken. 2014. Stochastic optimization of floating-point programs with tunable precision. In Programming Language Design and Implementation (PLDI).
[40]
Kushal Seetharam, Lance Ong-Siong Co Ting Keh, Ralph Nathan, and Daniel J. Sorin. 2013. Applying reduced precision arithmetic to detect errors in floating point multiplication. In Pacific Rim International Symposium on Dependable Computing (PRDC).
[41]
Alexey Solovyev, Marek S. Baranowski, Ian Briggs, Charles Jacobsen, Zvonimir Rakamarić, and Ganesh Gopalakrishnan. 2018. Rigorous estimation of floating-point round-off errors with symbolic taylor expansions. 41, 1, Article 2 (2018).
[42]
Alexey Solovyev, Charles Jacobsen, Zvonimir Rakamaric, and Ganesh Gopalakrishnan. 2015. Rigorous estimation of floating-point round-off errors with symbolic taylor expansions. In FM.
[43]
Giuseppe Tagliavini, Stefan Mach, Davide Rossi, Andrea Marongiu, and Luca Benini. 2018. A transprecision floating-point platform for ultra-low power computing. In Design, Automation & Test in Europe Conference & Exhibition (DATE).
[44]
Xie Wang, Huaijin Wang, Zhendong Su, Enyi Tang, Xin Chen, Weijun Shen, Zhenyu Chen, Linzhang Wang, Xianpei Zhang, and Xuandong Li. 2019. Global optimization of numerical programs via prioritized stochastic algebraic transformations. In International Conference on Software Engineering (ICSE).
[45]
Darrell Whitley. 1989. The GENITOR algorithm and selection pressure: Why rank-based allocation of reproductive trials is best. In Proceedings of the Third International Conference on Genetic Algorithms.
[46]
Xin Yi, Liqian Chen, Xiaoguang Mao, and Tao Ji. 2019. Efficient automated repair of high floating-point errors in numerical libraries. Proceedings of the ACM on Programming Languages 3, POPL (2019).

Cited By

View all
  • (2024)Arfa: An Agile Regime-Based Floating-Point Optimization Approach for Rounding ErrorsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680378(1516-1528)Online publication date: 11-Sep-2024
  • (2023)Eiffel: Inferring Input Ranges of Significant Floating-Point Errors via Polynomial ExtrapolationProceedings of the 38th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE56229.2023.00139(1441-1453)Online publication date: 11-Nov-2023
  • (2022)Inferring Interval-Valued Floating-Point PreconditionsTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-030-99524-9_16(303-321)Online publication date: 2-Apr-2022

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Embedded Computing Systems
ACM Transactions on Embedded Computing Systems  Volume 20, Issue 5s
Special Issue ESWEEK 2021, CASES 2021, CODES+ISSS 2021 and EMSOFT 2021
October 2021
1367 pages
ISSN:1539-9087
EISSN:1558-3465
DOI:10.1145/3481713
  • Editor:
  • Tulika Mitra
Issue’s Table of Contents
ACM acknowledges that this contribution was authored or co-authored by an employee, contractor, or affiliate of the United States government. As such, the United States government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for government purposes only.

Publisher

Association for Computing Machinery

New York, NY, United States

Journal Family

Publication History

Published: 17 September 2021
Accepted: 01 July 2021
Received: 01 April 2021
Published in TECS Volume 20, Issue 5s

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Floating-point arithmetic
  2. regime inference

Qualifiers

  • Research-article
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)25
  • Downloads (Last 6 weeks)1
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Arfa: An Agile Regime-Based Floating-Point Optimization Approach for Rounding ErrorsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680378(1516-1528)Online publication date: 11-Sep-2024
  • (2023)Eiffel: Inferring Input Ranges of Significant Floating-Point Errors via Polynomial ExtrapolationProceedings of the 38th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE56229.2023.00139(1441-1453)Online publication date: 11-Nov-2023
  • (2022)Inferring Interval-Valued Floating-Point PreconditionsTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-030-99524-9_16(303-321)Online publication date: 2-Apr-2022

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

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media