执行摘要
- 一句话:NPU 单节点测试超时改为可配置,流水线显式传 180 分钟
- 推荐动作:这是一个简单且聚焦的 CI 配置改进,值得快速浏览以了解其输入传递与覆写模式;如果有 NPU 测试运行时间数据,可以进一步验证 180 分钟是否合理,并考虑将默认值也收敛到 180 以减少配置分歧。
功能与动机
PR 正文仅说明为 NPU 单节点测试增加超时配置。从提交演进看,默认保持 300 分钟、夜间和 PR 流水线显式覆盖为 180 分钟,目的是让 NPU 作业更快结束,提高 CI 资源利用率,同时保留默认安全值。
实现拆解
实现分为四步:
- 在
.github/workflows/_npu-single-node-test-stage.yml 中新增 test_timeout_minutes 输入(required: false,默认 '300',描述为 Run test 超时时间),并将 “Run test” 步骤的 timeout-minutes 由硬编码 300 改为 ${{ fromJson(inputs.test_timeout_minutes) }},使超时时间可被调用方覆写。
- 在
.github/workflows/nightly-test-npu.yml 的 nightly-acc-2-npu-a3 作业中传入 test_timeout_minutes: '180',将夜间精度测试的超时从 300 缩短为 180 分钟。
- 在
.github/workflows/pr-test-npu.yml 的 base-c 作业中同样传入 test_timeout_minutes: '180',保证 PR 测试也使用 180 分钟超时。
- 没有新增源码测试或文档配套;提交历史显示默认值经历了 300 → 180 → 300(默认)+ 180(覆盖)的迭代,最终采用“默认 300 + 显式覆盖 180”的安全策略。
关键文件:
.github/workflows/_npu-single-node-test-stage.yml(模块 CI 流水线;类别 infra;类型 infrastructure;符号 test_timeout_minutes, Run test): 核心改动文件:新增可配置的 test_timeout_minutes 输入,并将 Run test 步骤的超时改为动态值。
.github/workflows/nightly-test-npu.yml(模块 CI 流水线;类别 infra;类型 infrastructure;符号 test_timeout_minutes): 夜间流水线显式传入 180 分钟超时,缩短夜间精度测试的等待时间。
.github/workflows/pr-test-npu.yml(模块 CI 流水线;类别 infra;类型 infrastructure;符号 test_timeout_minutes): PR 流水线 base-c 作业也改为 180 分钟超时,保证 PR 测试与夜间测试行为一致。
关键符号:未识别
关键源码片段
.github/workflows/_npu-single-node-test-stage.yml
核心改动文件:新增可配置的 test_timeout_minutes 输入,并将 Run test 步骤的超时改为动态值。
# 新增可覆写的超时输入:默认 300 分钟,调用方可按作业类型覆盖
test_timeout_minutes:
required: false
type: string
default: '300'
description: 'timeout-minutes for the Run test step'
# Run test 步骤不再硬编码 300,改用输入值
- name: Run test
# fromJson 将字符串参数转换为数值,供 timeout-minutes 使用
timeout-minutes: ${{ fromJson(inputs.test_timeout_minutes) }}
env:
SGLANG_USE_MODELSCOPE: true
HF_ENDPOINT: https://hf-mirror.com
评论区精华
无人工 review 评论,sglang-npu-bot 自动 APPROVED。PR 内仅 CI 触发指令(/tag-and-rerun-ci、/rerun-failed-ci),没有关于设计权衡的实质讨论。
风险与影响
- 风险:主要风险集中在 CI 行为变化:若 NPU 测试实际运行时间超过 180 分钟,会造成误报失败并增加重跑成本;
fromJson 解析要求输入必须是合法整数,否则工作流步骤会报错;若调用方忘记传递新输入,会静默回退到默认值 300,导致不同作业间超时行为不一致。这些风险都限定在 NPU CI 工作流内部,不影响产品代码。
- 影响:影响范围限于 NPU CI 流水线,包括夜间测试和 PR 测试作业;单作业最长等待时间从 300 分钟降到 180 分钟,加快失败反馈,但可能增加重跑次数。对最终用户推理性能、模型输出无任何影响,对团队而言主要是维护 CI 配置时需注意输入传递的完整性。
- 风险标记:CI 超时变更, 误报失败风险, 输入传递不一致
关联脉络
参与讨论