一句话:提出并行影子执行方法,用多核以更高精度模拟浮点计算,从而高效调试数值误差。
浮点计算中的数值误差往往难以察觉和调试。本文提出一种并行影子执行方法:程序员指定需要调试的程序片段,编译器据此生成影子执行任务,这些任务在不同核心上以更高精度重新计算。由于影子执行源自顺序程序,作者提出一种从任意内存状态开始执行影子任务的新技术,并保证影子执行遵循与原程序相同的控制流路径。运行时系统自动分配影子任务以平衡各核负载。原型工具 PFPSanitizer 能够全面检测数值错误,且性能开销低于已有方法。
This paper proposes a new approach for debugging errors in floating point computation by performing shadow execution with higher precision in parallel. The programmer specifies parts of the program that need to be debugged for errors. Our compiler creates shadow execution tasks, which execute on different cores and perform the computation with higher precision. We propose a novel method to execute a shadow execution task from an arbitrary memory state, which is necessary because we are creating a parallel shadow execution from a sequential program. Our approach also ensures that the shadow execution follows the same control flow path as the original program. Our runtime automatically distributes the shadow execution tasks to balance the load on the cores. Our prototype for parallel shadow execution, PFPSanitizer, provides comprehensive detection of errors while having lower performance overheads than prior approaches.
DOI 原文 ·
@inproceedings{paperbot6399,
title = {Parallel shadow execution to accelerate the debugging of numerical errors},
author = {Sangeeta Chowdhary and Santosh Nagarakatte},
booktitle = {FSE},
year = {2021},
doi = {10.1145/3468264.3468585}
}