不加syncbn的不同卡Elapse Time示意图,如图1所示。
产生这一空隙之前的算子是“site-packages/mmdet/models/losses/utils.py(29): weight_reduce_loss”29行,算子为aclnnReduceSum。
20节点的共网任务,截止到目前的syncbn优化措施,单步时延已从5.693s优化到3.866s,优化效果明显。
优化类型 |
分析 |
优化措施 |
实验结果 |
---|---|---|---|
算子优化 |
syncbn基于torch原生代码,为使能路径3,加入过patch;若去掉patch,在当前版本上会走到路径5。 |
去掉syncbn上为NPU适配的patch |
|
消除transdata。 |
torch_npu.config.allow_internal_format = False |
2.55s -> 2.53s |
|
模型优化 |
资源抢占问题。 |
建议关闭gc |
5节点,2.68s -> 2.6s |
小算子太多,下发频繁,性能不好。当前numa为8,需要额外尝试绑核。 |
绑核 |
5节点,2.6s -> 2.555s |
|
融合优化器。 |
使能融合优化器 |
2.53s -> 2.49s |