[Paper] 面向优化的深度学习编译器测试生成
发布: (2025年11月24日 GMT+8 17:27)
7 min read
原文: arXiv
Source: arXiv - 2511.18918v1
概览
深度学习编译器(如 TVM 和 ONNX Runtime)将高级神经网络模型翻译为硬件特定代码,并通过激进的优化来挤出性能。由于这些编译器位于 DL 部署流水线的核心,它们的优化阶段出现的 bug 可能会悄然降低精度、导致崩溃,甚至留下安全漏洞。本文提出 OATest,一种自动生成感知优化的测试程序(计算图)的方法,能够比以往方法更彻底地对 DL 编译器进行压力测试。
关键贡献
- 感知优化的图合成 – 从现有编译器测试套件中提取真实的优化模式,并将其注入种子图,确保生成的测试能够真正触发编译器优化。
- 边复用策略 – 将提取的模式与周围图的上下文紧密耦合,保留对真实优化路径至关重要的数据流关系。
- 辅助层插入 – 自动修复合成图中破坏的张量形状或类型约束,保证生成的程序在语义上是合法的。
- 双 Oracle 差分测试 – 利用 (i) 与参考解释器的输出等价性检查和 (ii) 编译器内部状态比较,能够检测 TVM 和 ONNX Runtime 中的细微 bug。
- 实证影响 – OATest 发现了 58 个新 bug(其中 36 已确认/修复),并实现了比之前最先进的模糊测试工具更高的语句和分支覆盖率。
方法论
- 模式挖掘 – 作者解析 TVM 与 ONNX Runtime 的官方测试套件,识别出被优化 passes 明确针对的重复子图(例如算子融合、常量折叠)。
- 种子图选择 – 从开源模型仓库(如 ONNX model zoo)收集一批简单、类型正确的计算图作为种子。
- 图增强
- 边复用:对每个挖掘出的模式,OATest 重用种子图已有的边来嵌入该模式,保持真实的数据依赖。
- 辅助层:当插入破坏了形状或类型约束时,OATest 自动添加“帮助”层(如 reshape、cast)以恢复合法性。
- 测试 Oracle 构建
- 差分 Oracle:将同一图分别在两个编译器(或编译器与参考解释器)上运行,若数值输出不一致或出现执行崩溃则标记为错误。
- 覆盖 Oracle:对编译器源码进行插桩,收集语句/分支覆盖率,以此引导模糊器探索未覆盖的优化代码。
- 搜索循环 – 在引导模糊循环中反复变异图结构,监控覆盖反馈,并记录 Oracle 报告的任何分歧。
结果与发现
| 指标 | OATest | 先前最先进方法(如 DL‑Fuzz) |
|---|---|---|
| 检测到的 bug(TVM) | 42 | 21 |
| 检测到的 bug(ONNX Runtime) | 16 | 9 |
| 语句覆盖率提升 | +12 % | — |
| 分支覆盖率提升 | +15 % | — |
| 有效测试生成率 | 98 %(经辅助层修复后) | 84 % |
- Bug 类型:大多数被发现的 bug 出现在算子融合、布局转换、内存规划等优化 passes 中。部分 bug 导致静默数值漂移,另一些则引起崩溃或非法内存访问。
- 开发者影响:58 个新发现的 bug 中,有 36 个已被 TVM 与 ONNX Runtime 团队在披露后数周内确认并修复。
实际意义
- 更稳健的部署:将 OATest 集成到 CI 流水线后,DL 框架供应商可以在代码进入生产前捕获与优化相关的回归,降低边缘或云服务中代价高昂的运行时故障。
- 安全加固:优化 passes 常常操作内存布局;其中的 bug 可能被利用进行拒绝服务或代码执行攻击。系统化、感知优化的测试提升了 DL 编译器的安全基线。
- 开发者工具:边复用和辅助层技术可封装为库,供开发自定义编译器 passes 的人员使用,实现新转换的快速 sanity‑check。
- 基准与竞争:企业可以使用 OATest 生成的图作为压力测试套件,对比自研编译器与开源基线的有效性与安全性。
局限性与未来工作
- 模式依赖:OATest 的效果依赖于挖掘到的模式的质量与多样性;测试套件稀少的编译器可能只能得到有限的有用模式。
- 对大模型的可扩展性:当前工作侧重于相对较小的合成图;将方法推广到完整规模模型(如 GPT‑3)可能需要额外的内存感知启发式。
- Oracle 覆盖:差分测试假设参考实现是正确的;对于没有可信基线的新优化,可能会出现误报。
- 未来方向:作者提出 (i) 通过对编译器源码的静态分析自动发现新优化模式,(ii) 与硬件‑in‑the‑loop 测试结合捕获设备特定 bug,(iii) 使用机器学习引导的变异策略进一步提升覆盖率。
作者
- Qingchao Shen
- Zan Wang
- Haoyang Ma
- Yongqiang Tian
- Lili Huang
- Zibo Xiao
- Junjie Chen
- Shing-Chi Cheung
论文信息
- arXiv ID: 2511.18918v1
- 分类: cs.SE
- 发布日期: 2025 年 11 月 24 日
- PDF: Download PDF