Download PDFOpen PDF in browser

Moving the Needle on Rigorous Floating-Point Precision Tuning

12 pagesPublished: April 16, 2018

Abstract

Virtually all real-valued computations are carried out using floating-point data types and operations. With increasing emphasis on overall computational efficiency, compilers are increasingly attempting to optimize floating-point expressions. Practical reasoning about the correctness of these optimizations requires error analysis procedures that are rigorous (ideally, they can generate proof certificates), can handle a wide variety of operators (e.g., transcendentals), and handle all normal programmatic constructs (e.g., conditionals and loops). Unfortunately, none of today’s approaches can achieve this combination. This position paper summarizes recent progress achieved in the community on this topic. It then showcases the component techniques present within our own rigorous floating-point precision tuning framework called FPTuner—essentially offering a collection of “grab and go” tools that others can benefit from. Finally, we present FPTuner’s limitations and describe how we can exploit contemporaneous research to improve it.

Keyphrases: floating point round off error, mixed precision tuning, program analysis, proof certificates, rigorous global optimization

In: Natarajan Shankar and Bruno Dutertre (editors). Automated Formal Methods, vol 5, pages 19-30.

BibTeX entry
@inproceedings{AFM17:Moving_Needle_Rigorous_Floating,
  author    = {Marek Baranowski and Ian Briggs and Wei-Fan Chiang and Ganesh Gopalakrishnan and Zvonimir Rakamaric and Alexey Solovyev},
  title     = {Moving the Needle on Rigorous Floating-Point Precision Tuning},
  booktitle = {Automated Formal Methods},
  editor    = {Natarajan Shankar and Bruno Dutertre},
  series    = {Kalpa Publications in Computing},
  volume    = {5},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2515-1762},
  url       = {/publications/paper/8RHt},
  doi       = {10.29007/f4f3},
  pages     = {19-30},
  year      = {2018}}
Download PDFOpen PDF in browser