TorchProbe:动态深度学习编译器的模糊测试
软件工程
2023-11-01 v1
摘要
静态与动态计算图代表了构建深度学习框架的两种不同途径。前者优先基于编译器的优化,后者侧重可编程性与用户友好性。近期发布的PyTorch 2.0支持编译Python中任意深度学习程序,标志着深度学习基础设施演进的新方向:以更动态的方式融合编译技术,并支持动态控制流与闭包等更动态的语言特性。鉴于PyTorch与Python的无缝集成,其编译器旨在支持用Python编写的任意深度学习代码。然而,Python固有的动态性对编译器的完整性与鲁棒性提出了挑战。尽管近期研究已引入模糊测试来检验深度学习编译器,仍缺乏对如何测试动态特性的全面分析。为解决此问题,我们提出若干代码变换以生成涉及动态特性的测试用例。这些变换保持程序语义,确保变换后与原程序间的任何差异均表明存在缺陷。通过我们的方法,我们已在PyTorch编译器及其底层张量编译器Triton中成功识别出二十个此前未知的缺陷。
引用
@article{arxiv.2310.20078,
title = {TorchProbe: Fuzzing Dynamic Deep Learning Compilers},
author = {Qidong Su and Chuqin Geng and Gennady Pekhimenko and Xujie Si},
journal= {arXiv preprint arXiv:2310.20078},
year = {2023}
}