paperbot · PL 论文追踪

全部论文 待读 收藏

P0 Fast shadow execution for debugging numerical errors using error free transformations

使用无误差变换的快速影子执行以调试数值错误
OOPSLA 6(OOPSLA2)2022匹配度 9/10 · 该论文聚焦浮点程序分析,提出基于无误差变换的快速影子执行框架 EFTSanitizer,用于检测和调试数值误差,直接命中用户对浮点程序分析的核心研究兴趣;虽未涉及 LLM/Agent,但属于纯浮点分析方向且兼具工程实现。引用 12 inbox
Sangeeta Chowdhary, Santosh Nagarakatte
crossref: 2026-09-10

AI 速览

一句话:提出 EFTSanitizer,用无误差变换作为 oracle 快速影子执行,检测并调试数值误差。

浮点运算中单次舍入误差虽有界,但跨操作累积可能导致异常、收敛变慢甚至崩溃,而现有影子执行工具需要 oracle 且速度较慢。本文提出 EFTSanitizer,使用无误差变换(EFT)——用现有硬件浮点操作计算基本操作误差的序列——作为影子执行的 oracle。它提供有向无环图(DAG)展示误差传播,并支持跨函数调用、内存受限的追踪;还支持从动态执行任意点开始的选择性影子执行。实验表明,EFTSanitizer 比 FPSanitizer、Herbgrind 等最先进工具有数量级加速,并发现了新的数值错误。

问题
数值错误在长运行应用后期难以检测和调试;影子执行需要可靠 oracle,且现有工具开销大。
方法
以无误差变换(EFT)作为 oracle 构建影子执行,生成跨函数调用的误差传播 DAG,并支持选择性影子执行。
评估
与 FPSanitizer、Herbgrind 等最先进工具对比,EFTSanitizer 获得数量级加速,并发现和调试了新的数值错误。
原文摘要(Abstract)

This paper proposes, EFTSanitizer, a fast shadow execution framework for detecting and debugging numerical errors during late stages of testing especially for long-running applications. Any shadow execution framework needs an oracle to compare against the floating point (FP) execution. This paper makes a case for using error free transformations, which is a sequence of operations to compute the error of a primitive operation with existing hardware supported FP operations, as an oracle for shadow execution. Although the error of a single correctly rounded FP operation is bounded, the accumulation of errors across operations can result in exceptions, slow convergences, and even crashes. To ease the job of debugging such errors, EFTSanitizer provides a directed acyclic graph (DAG) that highlights the propagation of errors, which results in exceptions or crashes. Unlike prior work, DAGs produced by EFTSanitizer include operations that span various function calls while keeping the memory usage bounded. To enable the use of such shadow execution tools with long-running applications, EFTSanitizer also supports starting the shadow execution at an arbitrary point in the dynamic execution, which we call selective shadow execution. EFTSanitizer is an order of magnitude faster than prior state-of-art shadow execution tools such as FPSanitizer and Herbgrind. We have discovered new numerical errors and debugged them using EFTSanitizer.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1472,
  title = {Fast shadow execution for debugging numerical errors using error free transformations},
  author = {Sangeeta Chowdhary and Santosh Nagarakatte},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {OOPSLA2},
  year = {2022},
  doi = {10.1145/3563353}
}