已合并
add t5 config #44026
add t5 config #44026
已合并
lihui创建于 13 天前
2 个文件变更+9-9
Mbenchmarks/torchbench/npu_support.py+9-0
@@ -630,6 +630,15 @@ def _patch_model_24():
630 anir_config.force_fallback_kernel_names["mlir_fused_add_lt_neg_where_13"] = True630 anir_config.force_fallback_kernel_names["mlir_fused_add_lt_neg_where_13"] = True
631 except ImportError:631 except ImportError:
632 log.warning("import config failed for T5ForConditionalGeneration patch")632 log.warning("import config failed for T5ForConditionalGeneration patch")
633+ from torch._higher_order_ops.effects import (
634+ _EffectType,
635+ _register_effectful_op,
636+ )
637+ 
638+ _register_effectful_op(
639+ torch.ops.aten.native_dropout.default,
640+ _EffectType.ORDERED,
641+ )
atomgit-bot
atomgit-botatomgit-bot13 天前

🟡 Medium Priority

变更行torch_npu/_inductor/dvm/decomp.py 第 7–15 行(删除)→ benchmarks/torchbench/npu_support.py 第 633–641 行(新增)

影响的行为/合约

失效模式: 非 T5ForConditionalGeneration 的模型(以及非 benchmark 场景下使用 DVM 的所有模型)将缺少 native_dropout 的 ORDERED effectful 注册。PyTorch Inductor 编译器可能因此对 native_dropout 进行不当优化(消除、重排、CSE),在训练模式下导致 dropout 行为异常。

触发条件:任何非 T5ForConditionalGeneration 模型经过 DVM 编译路径(mlir_fusion.mfusion_graph_fusionpatch_decomp → Inductor lowering)时,native_dropout 将不被视为有副作用的操作。

建议:将 _register_effectful_op 调用恢复到 torch_npu/_inductor/dvm/decomp.py 模块顶层(或在 torch_npu/_inductor 初始化路径中找一个合适的全局位置),确保对所有 DVM 编译路径生效。T5 benchmark patch 中可保留该调用作为兜底,或在确认全局注册已生效后移除此处重复调用。

likedislike
633 642 
634 643 
635@register_patch("BartForCausalLM")644@register_patch("BartForCausalLM")
Mtorch_npu/_inductor/dvm/decomp.py+0-9
@@ -4,15 +4,6 @@ import torch
4from torch._decomp import remove_decompositions4from torch._decomp import remove_decompositions
5from torch._inductor import decomposition as inductor_decomp5from torch._inductor import decomposition as inductor_decomp
6from torch_npu._inductor.mfusion.decomp import matmul_backward6from torch_npu._inductor.mfusion.decomp import matmul_backward
7-from torch._higher_order_ops.effects import (
8- _EffectType,
9- _register_effectful_op,
10-)
11- 
12-_register_effectful_op(
13- torch.ops.aten.native_dropout.default,
14- _EffectType.ORDERED,
15-)
16 7 
17aten = torch.ops.aten8aten = torch.ops.aten
18prims = torch.ops.prims9prims = torch.ops.prims