已关闭
在使用融合优化器和亲和梯度裁剪时,advisor提示torch_npu内部使用了不亲和的梯度裁剪算子 #136
布衣创建于  2025年12月30日关闭于  1月28日
布衣
布衣
2025年12月30日 创建

Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.

Describe the current behavior / 问题描述 (Mandatory / 必填)

在训练代码中使用了optimizer = torch_npu.optim.NpuFusedAdamW(g[2], lr=lr, betas=(momentum, 0.999), weight_decay=0.0)和self.optimizer.clip_grad_norm_fused_(max_norm=10, norm_type=2)来进行亲和优化,然后重新进行诊断和advisor分析,但advisor仍提示存在非亲和的梯度裁剪操作,提示trace到的位置位于torch:

/root/.local/share/mamba/envs/torch/lib/python3.11/site-packages/torch_npu/optim/npu_fused_optim_base.py(176): _clip_grad_norm_fused_; /root/.local/share/mamba/envs/torch/lib/python3.11/site-packages/torch_npu/optim/npu_fused_optim_base.py(224): clip_grad_norm_fused_; /root/work/filestorage/zhoufei/hermite/my-ultra/ultralytics/engine/trainer.py(955): optimizer_step; /root/work/filestorage/zhoufei/hermite/my-ultra/ultralytics/engine/trainer.py(682): _do_train; /root/work/filestorage/zhoufei/hermite/my-ultra/ultralytics/engine/trainer.py(291): train; /root/work/filestorage/zhoufei/hermite/misc/config/Ultralytics/DDP/_temp_sfbdsbq6281471058966608.py(13): <module>

image.png

Environment / 环境信息 (Mandatory / 必填)

Atlas 800T A2,8卡910B2
CANN 8.3rc1 + torchnpu 2.8 + pytorch 2.8
ubuntu 2004

Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)

优化器实例化:
optimizer = torch_npu.optim.NpuFusedAdamW(g[2], lr=lr, betas=(momentum, 0.999), weight_decay=0.0)
优化与梯度裁剪:

        self.scaler.unscale_(self.optimizer)  # unscale gradients
        if hasattr(self.optimizer, "clip_grad_norm_fused_"):
            self.optimizer.clip_grad_norm_fused_(max_norm=10, norm_type=2)
        else:
            torch.nn.utils.clip_grad_norm_(self.model.parameters(), max_norm=10.0)
        self.scaler.step(self.optimizer)
        self.scaler.update()
        self.optimizer.zero_grad()
        if self.ema:
            self.ema.update(self.model)

Describe the expected behavior / 预期结果 (Mandatory / 必填)

不存在非亲和梯度裁剪操作

image.png

Special notes for this issue/备注 (Optional / 选填)

likedislike
布衣
布衣
2025年12月30日 评论:
likedislike
布衣布衣
2025年12月30日 修改了issue 的描述
fanglanyue
fanglanyue成员
2025年12月30日 评论:

感谢您的反馈,方便传一份profiling数据吗,便于我们定位

likedislike
布衣
布衣
2025年12月30日 评论:

感谢您的反馈,方便传一份profiling数据吗,便于我们定位

@fanglanyue0916

https://drive.google.com/file/d/17xpel2WoDJlXZDcmu5AQh05tDmmXS8F8/view?usp=sharing

likedislike
fanglanyue
fanglanyue成员
1月28日 评论:

经确认,修改前后都会识别出相关的算子序列,我们会做对应的bugfix

likedislike
fanglanyuefanglanyue成员
1月28日 issue状态由 TODO 改变为 DONE
fanglanyuefanglanyue成员
1月28日 关闭了 issue