执行摘要
- 一句话:NPU 测试超时修复:watchdog-timeout 从 300 提升到 900
- 推荐动作:该 PR 属于应急性质的小幅参数调整,不值得精读。但可作为测试基础设施维护的参考:对于超时类失败,适当放宽阈值是快速稳定 CI 的手段之一。建议同时记录权重加载预期时间,并考虑后续优化加载速度以从根本上消除超时风险。
功能与动机
夜间流水线中 test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py 测试用例因权重加载耗时过长导致失败,错误信息表明默认 watchdog-timeout 值为 300 秒不足以覆盖加载时间。PR body 明确说明:"The actual value of watchdog-timeout is 300",并指出加载权重超时是失败根因。
实现拆解
- 定位问题:识别出
test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py 在 NPU 夜间流水线中因权重加载时间超过默认 watchdog-timeout(300s)而失败。
- 参数调整:在测试类的
setUpClass 方法中,向 popen_launch_server 的 other_args 列表添加 "--watchdog-timeout" 和 "900",将 watchdog 超时时间延长至 900 秒。
- 无需配套修改:由于仅涉及测试配置参数的调整,无需修改源码、schema 或部署脚本。
关键文件:
test/registered/ascend/basic_function/parallel_strategy/expert_parallelism/test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py(模块 NPU测试;类别 test;类型 test-coverage): 唯一被修改的文件;在服务启动参数中添加 --watchdog-timeout 900 以延长超时时间,解决权重加载耗时导致的测试失败。
关键符号:未识别
关键源码片段
test/registered/ascend/basic_function/parallel_strategy/expert_parallelism/test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py
唯一被修改的文件;在服务启动参数中添加 --watchdog-timeout 900 以延长超时时间,解决权重加载耗时导致的测试失败。
# 文件 : test/registered/ascend/basic_function/parallel_strategy/expert_parallelism/test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py
# 变更:在 setUpClass 的服务启动参数中添加 --watchdog-timeout 900
@classmethod
def setUpClass(cls):
cls.model = DEEPSEEK_V3_2_W8A8_WEIGHTS_PATH
cls.base_url = DEFAULT_URL_FOR_TEST
cls.process = popen_launch_server(
cls.model,
cls.base_url,
timeout=6000, # 整体测试超时保持 6000 秒
other_args=[
"--trust-remote-code",
"--tp-size", "16",
"--quantization", "modelslim",
"--moe-a2a-backend", "deepep",
"--deepep-mode", "low_latency",
"--mem-fraction-static", 0.82,
"--disable-cuda-graph",
"--disable-radix-cache",
"--context-length", 40960,
"--max-prefill-tokens", 128,
"--max-total-tokens", 40960,
"--watchdog-timeout", 900, # 新增:将 watchdog 超时从默认 300 秒提高到 900 秒,避免权重加载耗时过长导致进程被误杀
],
env={
"PYTORCH_NPU_ALLOC_CONF": "expandable_segments:True",
"STREAMS_PER_DEVICE": "32",
"SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK": "128",
"HCCL_BUFFSIZE": "2048",
"HCCL_OP_EXPANSION_MODE": "AIV",
"TASK_QUEUE_ENABLE": "0",
**os.environ,
},
)
评论区精华
本 PR 无 review 评论,仅有一条来自 iforgetmyname 的 /tag-run-ci-label 指令用于触发 CI。无技术争议或设计讨论。
风险与影响
- 风险:风险极低。变更仅修改测试用例内的超时参数,不影响任何生产逻辑或模块接口。可能的风险是:如果权重加载时间长期超过 900s,测试仍可能失败,但可进一步调大超时或优化加载流程。另外,过度放宽超时可能掩盖其他潜在的性能退化问题。
- 影响:影响范围:仅限 NPU 上
test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py 一个测试用例。影响程度:低,仅提升测试稳定性,对用户和系统无影响。团队影响:减少 NPU 夜间流水线误报,节省排查时间。
- 风险标记:低风险
关联脉络
- PR #26775 fix test cases failed on 5/30 in nightly pipeline: 同为 NPU 夜间测试修复 PR,涉及相同的测试文件组,属于持续稳定的同一类工作。
- PR #27238 Add quiet mode for busy mem check (level 1: buffer + dump on leak): 同样关注测试/调试基础设施的稳定性改进,修改了调度器组件中的检测器。
参与讨论