FPCC: Detecting Floating-Point Errors via Chain Conditions

被引:0
|
作者
Yi, Xin [1 ]
Yu, Hengbiao [1 ]
Chen, Liqian [2 ]
Mao, Xiaoguang [2 ]
Wang, Ji [2 ]
机构
[1] Natl Univ Def Technol, Coll Comp, Changsha, Peoples R China
[2] Natl Univ Def Technol, Coll Comp, State Key Lab Complex & Crit Software Environm, Changsha, Peoples R China
来源
基金
国家重点研发计划; 中国国家自然科学基金;
关键词
chain condition; floating-point error; error-triggering input; accuracy;
D O I
10.1145/3689764
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Floating-point arithmetic is notorious for its rounding errors, which can propagate and accumulate, leading to unacceptable results. Detecting inputs that can trigger significant floating-point errors is crucial for enhancing the reliability of numerical programs. Existing methods for generating error-triggering inputs often rely on costly shadow executions that involve high-precision computations or suffer from false positives. This paper introduces chain conditions to capture the propagation and accumulation of floating-point errors, using them to guide the search for error-triggering inputs. We have implemented a tool named FPCC and evaluated it on 88 functions from the GNU Scientific Library, as well as 21 functions with multiple inputs from previous research. The experimental results demonstrate the effectiveness and efficiency of our approach: (1) FPCC achieves 100% accuracy in detecting significant errors for the reported rank-1 inputs, while 72.69% rank-1 inputs from the state-of-the-art tool ATOMU can trigger significant errors. Overall, 99.64% (1049/1053) of the inputs reported by FPCC can trigger significant errors, whereas only 19.45% (141/723) of the inputs reported by ATOMU can trigger significant errors; (2) FPCC exhibits a 2.17x speedup over ATOMU in detecting significant errors; (3) FPCC also excels in supporting functions with multiple inputs, outperforming the state-of-the-art technique. To facilitate further research in the community, we have made FPCC available on GitHub at https://github.com/DataReportRe/FPCC.
引用
收藏
页数:28
相关论文
共 50 条
  • [41] Termination of Floating-Point Computations
    Alexander Serebrenik
    Danny De Schreye
    Journal of Automated Reasoning, 2005, 34 : 141 - 177
  • [42] BINARY FLOATING-POINT RESISTOR
    PAKER, Y
    IEEE TRANSACTIONS ON COMPUTERS, 1971, C 20 (01) : 7 - &
  • [43] FLOATING-POINT WITHOUT A COPROCESSOR
    GREHAN, R
    BYTE, 1988, 13 (09): : 313 - &
  • [44] An Effective Floating-Point Reciprocal
    Moroz, Leonid
    Samotyy, Volodymyr
    Horyachyy, Oleh
    PROCEEDINGS OF THE 2018 IEEE 4TH INTERNATIONAL SYMPOSIUM ON WIRELESS SYSTEMS WITHIN THE INTERNATIONAL CONFERENCES ON INTELLIGENT DATA ACQUISITION AND ADVANCED COMPUTING SYSTEMS (IDAACS-SWS), 2018, : 137 - 141
  • [45] PARANOIA - A FLOATING-POINT BENCHMARK
    KARPINSKI, R
    BYTE, 1985, 10 (02): : 223 - &
  • [46] ROUNDINGS IN FLOATING-POINT ARITHMETIC
    YOHE, JM
    IEEE TRANSACTIONS ON COMPUTERS, 1973, C 22 (06) : 577 - 586
  • [47] ACCURATE FLOATING-POINT SUMMATION
    MALCOLM, MA
    COMMUNICATIONS OF THE ACM, 1971, 14 (11) : 731 - &
  • [48] FLOATING-POINT SURVIVAL KIT
    WILSON, P
    BYTE, 1988, 13 (03): : 217 - &
  • [49] AN ANALYSIS OF FLOATING-POINT ADDITION
    SWEENEY, DW
    IBM SYSTEMS JOURNAL, 1965, 4 (01) : 31 - 42
  • [50] Termination of floating-point computations
    Serebrenik, A
    De Schreye, D
    JOURNAL OF AUTOMATED REASONING, 2005, 34 (02) : 141 - 177