Accurate Residues for Floating-Point Debugging
Yumeng He, Pavel Panchekha
Abstract
Floating-point arithmetic is error-prone and unintuitive. Floating-point debuggers instrument programs to monitor floating-point arithmetic at run time and flag numerical issues. To do so, they estimate residues-the difference between actual floating-point and ideal real values-for every floating-point value in the program. A large literature has explored various approaches for computing these residues accurately (leading to few false reports, i.e., false positives and false negatives) and efficiently (leading to low overhead over uninstrumented execution). Unfortunately, the most efficient methods, based on "error-free transformations", have a high rate of false positives, while the most accurate methods, based on high-precision arithmetic, are very slow. This paper builds on error-free-transformations-based approaches and aims to improve their accuracy while preserving efficiency.
To more accurately compute residues, this paper divides residue computation into two steps-rounding error computation and residue function evaluation-and shows how to perform each step accurately via careful improvements to the current state of the art. We evaluate on 44 large scientific computing workloads, focusing on the 14 benchmarks where prior tools produce false reports: our approach eliminates false reports on 10 benchmarks and substantially reduces them on the remaining 3 benchmarks.
Moreover, we find that more complex numerical issues, such as those found in numerical analysis textbooks, require additional care, because floating-point debuggers suffer from absorption, in which two different machine-precision residues cannot both be computed accurately in a single execution. To address absorption, this paper introduces residue override, which re-executes the program multiple times, computing different residues in different executions and assembling a final "patchwork" execution where all residues are accurately computed. We evaluate on 169 standard benchmarks drawn from numerical analysis papers and textbooks, requiring only 3.6 re-executions on average. Among 34 benchmarks with false reports in the initial run, residue override is triggered on 29 of them and reduces false reports on 25 of them, averaging 7.1 re-executions.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 350baa19-16d8-4596-9dbc-b43d796d4a05Builds on6
- Detecting floating-point errors via atomic conditionsDaming Zou, Muhan Zeng, Yingfei Xiong, Zhoulai Fu et al.POPL 2020 · 45 citations
- Scalable yet rigorous floating-point error analysisArnab Das, Ian Briggs, Ganesh Gopalakrishnan, Sriram Krishnamoorthy et al.SC 2020 · 36 citations
- Debugging and detecting numerical errors in computation with positsSangeeta Chowdhary, Jay P. Lim, Santosh NagarakattePLDI 2020 · 26 citations
- Parallel shadow execution to accelerate the debugging of numerical errorsSangeeta Chowdhary, Santosh NagarakatteFSE 2021 · 21 citations
- Fast shadow execution for debugging numerical errors using error free transformationsSangeeta Chowdhary, Santosh NagarakatteOOPSLA 2022 · 13 citations
Related papers
- Design and Evaluation of GPU-FPX: A Low-Overhead tool for Floating-Point Exception Detection in NVIDIA GPUsXinyi Li, Ignacio Laguna, Bo Fang, Katarzyna Swirydowicz et al.HPDC 2023 · 12 citations
- When AllClose Fails: Round-Off Error Estimation for Deep Learning ProgramsQi Zhan, Xing Hu, Yuanyi Lin, Tongtong Xu et al.ASE 2025
- Efficient generation of error-inducing floating-point inputs via symbolic executionHui Guo, Cindy Rubio-GonzálezICSE 2020 · 27 citations
- Oracle-free repair synthesis for floating-point programsDaming Zou, Yuchen Gu, Yuanfeng Shi, Mingzhe Wang et al.OOPSLA 2022 · 9 citations
- Polynomial Invariant Generation for Floating-Point ProgramsXuran Cai, Liqian Chen, Hongfei FuCAV 2026
