特性交叉影响检查

目的:确保 Graph-autofusion 新需求在 SuperKernel、Autofuse、构建交付和测试场景下均被覆盖,避免只验证单一路径导致功能缺失、性能退化或交付失败。

逐项分析本需求与以下场景的关系,填写“适用/不适用”。适用场景需在设计章节给出对应方案;不适用场景需说明理由。

场景 适用性 分析说明
SuperKernel Python 接口 {适用/不适用} {是否影响 Python 包、选项解析、pytest UT/ST、wheel 交付}
SuperKernel C++/AOT 接口 {适用/不适用} {是否影响 libascendsk.so、AOT 测试、设备端 RDV、ABI/API}
Autofuse 图优化 {适用/不适用} {是否影响 ASCIR 图结构、融合 pass、图改写等价性、pass 时序}
Autofuse Codegen/Backend {适用/不适用} {是否影响代码生成、tiling、kernel 编译、backend E2E}
AscendC API / Runtime 交互 {适用/不适用} {是否新增 runtime/aclrt/AscendC 调用,是否满足资源生命周期和同步约束}
Python/C++ 混合绑定 {适用/不适用} {是否影响 pyautofuse、CPython 扩展、Python 导入路径和异常传播}
构建与打包 {适用/不适用} {是否影响 CMake、build.sh、第三方依赖、run 包内容、安装路径}
测试与覆盖率 {适用/不适用} {是否需要新增 UT/ST/RDV/pytest/gtest/覆盖率验证}
性能与日志 {适用/不适用} {是否影响编译时长、融合收益、执行耗时、日志量和内存占用}
兼容性 {适用/不适用} {是否影响已有 API/ABI、配置、产物布局、历史模型或脚本调用方式}

分析指引

  • SuperKernel Python 接口:检查 super_kernel/*.pysuper_kernel/src/super_kernel/tests/utsuper_kernel/tests/st。若修改选项解析、异常行为或 wheel 内容,需补充 pytest 用例。
  • SuperKernel C++/AOT 接口:检查 super_kernel/kernel/super_kernel/tests/aot/。对外符号、结构体、枚举和动态库行为变化需评估 ABI/API 兼容。
  • Autofuse 图优化:检查 autofuse/optimize/autofuse/ascir/autofuse/graph_metadef/。图改写必须保持数据边和控制边等价;新增 pass 需说明时序依赖。
  • Autofuse Codegen/Backend:检查 autofuse/codegen/autofuse/backend/autofuse/tests/st/codegen/e2e/。新增 codegen 行为需覆盖生成代码、tiling 和 kernel 执行验证。
  • AscendC API / Runtime 交互:新增 rt*aclrt*、AscendC API 调用时,检查内存有效期、异步拷贝同步、size 为 0 的行为和错误码处理。
  • Python/C++ 混合绑定:检查 autofuse/compiler/py_module/。新增接口需同时验证 C++ 绑定层和 Python 使用方式。
  • 构建与打包:修改 CMake 或 install/package 逻辑时,确认 build.sh --pkg -j 8--no-autofuse、模块化测试路径是否仍可用。
  • 测试与覆盖率:新功能优先按 TDD 添加最小失败用例;Bug 修复必须有复现用例。C++ 使用 gtest/mockcpp,Python 使用 pytest。
  • 性能与日志:编译期循环、图遍历、字符串处理、日志和运行时调度路径需评估性能;执行高频路径禁止新增默认开启的海量日志。
  • 兼容性:对外接口、安装路径、脚本参数、配置项和产物命名变化需说明兼容策略;不确定时先提 Issue 讨论。