已合并
fix: preserve deferred Triton backend loading (v2.9.0) #44735
fix: preserve deferred Triton backend loading (v2.9.0) #44735
已合并
黄桂军创建于 6 天前
黄桂军
黄桂军成员
6 天前

关联 Issue

  • #4094

背景

import torch性能优化需求(pull/44372)将 Inductor 初始化从首次 backend 执行阶段提前到 torch.compile() wrapper 创建阶段。默认 Triton backend 因此被提前导入;在未安装 triton-ascend 的环境中,torch_npu/_inductor/runtime/triton_helpers.py 会报 tl.extra.ascend 缺失。

修改内容

  • 恢复默认 Inductor backend 的首次执行加载时机。
  • 增加测试,验证创建 backend="inductor" wrapper 时不会加载 torch_npu._inductor

验证

环境:torch-npu-2.10.0-py311、PyTorch 2.10.0+cpu、AArch64、CANN 9.1.0。

  • tl.extra.ascend 缺失错误消失。
likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 黄桂军 的贡献)
黄桂军黄桂军成员
6 天前 创建了 pull request,commit 94e86ee3
atomgit-bot
atomgit-bot
6 天前 评论:

变更摘要

本 PR 将 deferred Triton backend loading 修复同步到 v2.9.0 分支,核心目标是避免 Inductor wrapper 在创建阶段提前加载 Triton backend。torch_npu/utils/_dynamo.py 中,patch_inductor_wrapper() 不再调用原先的 _setup_inductor_for_compile(),改为仅执行 _lazy_dynamo_setup(),将 Inductor/NPU backend 的实际注册推迟到 backend scope 进入时进行;同时删除了 _setup_inductor_for_compile() 函数,并在 _NpuBackendScope 进入时补充调用 _lazy_inductor_setup()。对应测试改为验证延迟加载时机,并新增了真实 torch.compile(..., backend="inductor") 入口的测试用例。

主要改动

  • 延迟 backend 加载流程调整: patch_inductor_wrapper() 中原先调用 _setup_inductor_for_compile(self.config) 的逻辑被替换为仅调用 _lazy_dynamo_setup(),使 wrapper 构造阶段不再提前加载 Triton backend。
  • 移除旧的初始化函数: 删除了 _setup_inductor_for_compile() 函数,该函数原先会在编译调用阶段解析 npu_backend 并触发 _lazy_inductor_setup()
  • backend scope 进入时完成注册: _NpuBackendScope 中在 register_inductor_npu() 之后新增 _lazy_inductor_setup() 调用,确保 Inductor/NPU backend 注册在实际进入 backend scope 时才执行。
  • shape-handling 前置校验: patch_inductor_wrapper() 中新增 is_inductor_npu_initialized() 判断,若尚未初始化则先调用 register_inductor_npu(),再执行 torch_npu._inductor.patch_shape_handling()
  • 测试用例更新与新增: test/dynamo/test_compile_trigger.py 将 mock 目标从 _setup_inductor_for_compile 改为 _lazy_dynamo_setup_lazy_inductor_setup,并新增 test_inductor_backend_load_is_deferred_until_first_call,验证创建 Inductor wrapper 时不会提前加载 torch_npu._inductor
likedislike
atomgit-bot
atomgit-bot
6 天前 评论:

代码审查

✅ 未发现问题

likedislike
ascend-robotascend-robot成员
6 天前 添加了label:ascend-cla/yes
此处折叠了87条消息 查看更多
ascend-robotascend-robot成员
4 天前 添加了label:approved
renyujin成员
4 天前 评论:

/lgtm

likedislike
ascend-robotascend-robot成员
4 天前 添加了label:lgtm
ascend-robotascend-robot成员
4 天前 合入了pull request
ascend-robot
ascend-robot成员
4 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#14195 [ commitID:c6d4d8bc ] 已完成
likedislike