已关闭
[Bug] lazy npugraph_ex proxy 与独立打包导入不兼容,smoke_npugraph_ex 全量失败 #4222
黄桂军创建于  11 天前关闭于  10 天前
黄桂军
黄桂军成员
11 天前 创建

问题概述

PR-pipeline_torchair_smoke#455smoke_npugraph_ex 任务失败。失败与 torchair PR #3584 的文档改动无关,根因初步定位为 torch_npu 的 Dynamo 懒加载代理与独立打包的 npugraph_ex 导入方式不兼容。

相关流水线:

环境信息

  • PyTorch:2.7.1
  • torch_npu:2.7.1.post9.dev20260820
  • Python:3.10.16
  • 架构:AArch64
  • CANN:9.0.1
  • 测试包:torchair/npugraph_ex 独立打包目录

关键错误

所有失败用例均在 setUp() 阶段失败,还未进入 stream/aclgraph 业务逻辑:

/workspace/torchair/npugraph_ex/tests/smoke/stream_test.py:63
self.optimize_fx_bak = npugraph_ex.npu_fx_compiler._optimize_fx

/opt/_internal/cpython-3.10.16/lib/python3.10/site-packages/torch_npu/dynamo/__init__.py:127
return getattr(self._npugraph_ex, name)

AttributeError: module 'torch_npu.dynamo.npugraph_ex' has no attribute 'npu_fx_compiler'

复现链路

流水线先将独立包复制到:

site-packages/torch_npu/dynamo/npugraph_ex

独立包初始化代码使用绝对导入:

from npugraph_ex.npu_fx_compiler import (
    compile_fx, get_npu_backend, get_compiler
)

而 torch_npu 提交 ee15004fe8064b8e90018177109c775a93fcf2fd 的懒加载路径在 add_dynamo_methods() 中预先安装:

sys.modules["npugraph_ex"] = _LazyNpuGraphEx("npugraph_ex")

_LazyNpuGraphEx 加载真实模块后,属性访问转发到 torch_npu.dynamo.npugraph_ex。独立包通过顶层 npugraph_ex.npu_fx_compiler 导入的子模块没有正确绑定到该真实包对象,最终导致 npu_fx_compiler 属性缺失。

初步定位

疑似回归点:

  • torch_npu/dynamo/__init__.py_LazyNpuGraphEx.__getattr__()
  • torch_npu/utils/_dynamo.pyadd_dynamo_methods() 安装顶层 npugraph_ex 代理
  • 关联提交:ee15004fe8064b8e90018177109c775a93fcf2fd(defer dynamo and inductor imports)

PR #3584 本身只修改 torchair 文档文件,不包含运行时代码修改。

建议修复方向

请在 torch_npu 侧修复懒代理与独立包导入协议的兼容性,优先考虑:

  1. 使 _LazyNpuGraphEx 正确支持 __spec____path__、子模块导入和子模块属性绑定;或
  2. 独立打包模式下不要用顶层 sys.modules["npugraph_ex"] 代理替换真实包;或
  3. 增加回归用例,覆盖独立包复制到 torch_npu/dynamo/npugraph_ex 后的真实导入场景:
import npugraph_ex
assert hasattr(npugraph_ex, "npu_fx_compiler")
assert hasattr(npugraph_ex.npu_fx_compiler, "_optimize_fx")

不建议通过修改 torchair 文档或屏蔽 smoke 用例规避。

likedislike
黄桂军黄桂军成员
11 天前 关联了看板:FrameworkPTAdapter 版本issue看板
TorchNPU-BotTorchNPU-Bot成员
11 天前 添加了label:triage-review
ascend-robotascend-robot成员
11 天前 添加了label:bug
TorchNPU-Bot
TorchNPU-Bot成员
11 天前 评论:

issue待分派,添加triage-review标签

likedislike
黄桂军黄桂军成员
11 天前 关联了pull request:fix: 修复懒加载 npugraph_ex 子模块绑定(#4222)
黄桂军黄桂军成员
11 天前 关联了pull request:fix: 修复 lazy 编译器代理子模块导入兼容性(#4222)
黄桂军黄桂军成员
11 天前 关联了pull request:fix: 修复 lazy 编译器代理子模块导入兼容性(#4222)
黄桂军黄桂军成员
11 天前 关联了pull request:fix: 修复 lazy 编译器代理子模块导入兼容性(#4222)
黄桂军黄桂军成员
11 天前 关联了pull request:fix: 修复 lazy 编译器代理子模块导入兼容性(#4222)
黄桂军黄桂军成员
11 天前 关联了pull request:fix: 修复 lazy 编译器代理子模块导入兼容性(#4222)
ascend-robotascend-robot成员
10 天前 关闭了 issue
ascend-robotascend-robot成员
10 天前 添加了label:resolved