中文

揭示软件/硬件实现中的浮点累加顺序

数值分析 2025-07-02 v3 数学软件 数值分析 软件工程

摘要

累加类操作,如求和和矩阵乘法,是众多计算领域的基础。然而,其累加顺序在现有软件和硬件实现中往往缺乏文档记录,使开发者难以确保跨系统的一致性结果。为解决此问题,本文引入 FPRev,一种旨在通过数值测试揭示软件和硬件实现中累加顺序的诊断工具。借助 FPRev,开发者可以识别和比较累加顺序,从而实现软件的可复现性并验证实现的等价性。FPRev 是一种基于测试的工具,通过分析测试实现在特定设计输入下的输出,非侵入性地揭示累加顺序。利用 FPRev,我们展示了流行库(如 NumPy 和 PyTorch)在 CPU 和 GPU(包括配备专用矩阵加速器如 Tensor Core 的 GPU)上的累加顺序。我们还通过大量实验验证了 FPRev 的效率。FPRev 的时间复杂度低于基础解法。FPRev 已开源,地址:https://github.com/peichenxie/FPRev。

关键词

引用

@article{arxiv.2411.00442,
  title  = {Revealing Floating-Point Accumulation Orders in Software/Hardware Implementations},
  author = {Peichen Xie and Yanjie Gao and Yang Wang and Jilong Xue},
  journal= {arXiv preprint arXiv:2411.00442},
  year   = {2025}
}

备注

Camera-ready for USENIX ATC 2025