昇腾分布式用例迁移与异常排查实践
作者:昇腾实战派
知识地图:https://blog.csdn.net/Lumos_Lovegood/article/details/161601003
背景概述
在系统功能持续迭代过程中,为保障新版本环境的兼容性与稳定性,需将原有测试用例迁移至新部署的分布式测试环境进行验证。近期在执行从旧环境向新环境的用例迁移时,部分分布式测试用例出现执行失败现象,初步判断可能与环境配置、依赖版本或执行逻辑差异有关。本文旨在梳理该类问题的复现路径与排查方法,为后续类似场景提供标准化处理参考。
问题复现流程
当遇到用例执行异常时,可按照以下步骤进行系统性复现与定位:
-
查看日志溯源
查看完整执行日志。 -
定位关键日志片段
在日志中查找与问题现象相符的输出内容,重点关注错误堆栈、状态码、超时信息或异常提示。可参考如下典型日志。时间 级别 线程 ID 模块 内容 2026-04-16 09:48:19.976 INFO ThreadID:281467863200832 lib.common.SSHClient-line:479 Send command: cd /autotest/pytorch/torch_autotest/model/scripts/ && bash start_train_container.sh -i drivingsdk_atk:py3.10_torch2.7.1 -m 8p -p /bin/bash2026-04-16 09:48:21.493 INFO ThreadID:281467863200832 lib.common.SSHClient-line:479 Send command: source /usr/local/Ascend/ascend-toolkit/set_env.sh && cd /autotest/pytorch/torch_autotest/pt_framework/distributed && python3 -m torch.distributed.launch --nproc_per_node=8 test_ddpmodel.py --bucket-cap-mb=25 --is-broadcast-buffers --precision=fp32 -
执行用例并观察结果
- 若用例执行失败,且错误信息与日志中一致,则可确认问题已复现,进入深入分析阶段。
- 若用例执行成功,但日志内容不符合预期,需进一步核查测试框架的校验逻辑。可能存在校验规则过于严格或预期输出未更新的情况,需结合用例代码与框架实现共同分析。
提示:若无法复现问题,建议优先确认测试环境状态是否稳定,包括网络、资源分配、依赖服务可用性等,排除环境干扰因素。
典型用例示例
以下为迁移过程中涉及的典型用例及其执行情况,供参考:
样例一
用例名称:PT_Feature_ddp_base_class_bb_True_bcm_25MB_fup_False_gabv_False_sg_False_PT_2.1
执行命令:
python run_test.py --case PT_Feature_ddp_base_class_bb_True_bcm_25MB_fup_False_gabv_False_sg_False_PT_2.1
执行结果:
2026-04-20 02:19:29,691 - root - INFO - Deinit default process group success on rank0
Testcase OK
2026-04-20 02:19:29,707 - root - INFO - Deinit default process group success on rank4
Testcase OK
2026-04-20 02:19:29,748 - root - INFO - Deinit default process group success on rank5
Testcase OK
2026-04-20 02:19:29,761 - root - INFO - Deinit default process group success on rank7
Testcase OK
2026-04-20 02:19:29,805 - root - INFO - Deinit default process group success on rank3
Testcase OK
2026-04-20 02:19:29,823 - root - INFO - Deinit default process group success on rank2
Testcase OK
2026-04-20 02:19:29,870 - root - INFO - Deinit default process group success on rank1
Testcase OK
2026-04-20 02:19:29,945 - root - INFO - Deinit default process group success on rank6
Testcase OK
样例二
用例名称:PT_Feature_ddp_base_class_bb_False_bcm_25MB_fup_False_gabv_True_sg_False_PT_2.1
执行命令:
python run_test.py --case PT_Feature_ddp_base_class_bb_False_bcm_25MB_fup_False_gabv_True_sg_False_PT_2.1
执行结果:
2026-04-20 02:58:25,342 - root - INFO - Deinit default process group success on rank0
Testcase OK
2026-04-20 02:58:25,375 - root - INFO - Deinit default process group success on rank5
Testcase OK
2026-04-20 02:58:25,381 - root - INFO - Deinit default process group success on rank7
Testcase OK
2026-04-20 02:58:25,430 - root - INFO - Deinit default process group success on rank1
Testcase OK
2026-04-20 02:58:25,492 - root - INFO - Deinit default process group success on rank2
Testcase OK
2026-04-20 02:58:25,524 - root - INFO - Deinit default process group success on rank6
Testcase OK
2026-04-20 02:58:25,536 - root - INFO - Deinit default process group success on rank3
Testcase OK
2026-04-20 02:58:25,582 - root - INFO - Deinit default process group success on rank4
Testcase OK
样例三
用例名称:PT_Device_Mesh
执行命令:
python run_test.py --case PT_Device_Mesh
执行结果:
warnings.warn( # warn only once
/usr/local/lib/python3.10/dist-packages/torch/distributed...
et by the user.
warnings.warn( # warn only once
排查建议与处理思路
- 优先确认环境一致性:检查新环境的CUDA版本、PyTorch版本、网络配置及资源分配是否与原环境一致。
- 分析日志上下文:结合错误信息定位具体模块,如通信层、参数同步、设备初始化等。
- 核对用例代码与预期行为:若用例成功但日志异常,需审查测试框架的断言逻辑,确认是否误判。
- 复现与隔离:在最小化环境中复现问题,逐步排除干扰项,提升定位效率。
总结
通过建立标准化的复现流程与日志分析机制,可有效提升分布式用例迁移过程中的问题定位效率。建议在后续迭代中完善用例执行前的环境校验机制,并统一日志输出规范,以增强测试结果的可追溯性与可比性。
更多推荐




所有评论(0)