Prhub

#45768 [XPU][CI] Add agent_tags for Intel GPU CI

原始 PR 作者 zxd1997066 合并时间 2026-06-22 10:33 文件变更 10 提交数 9 评论 4 代码增减 +120 / -0

执行摘要

为 Intel GPU CI 添加 agent_tags 资源调度

Intel GPU CI 中缺乏显式的节点资源约束,可能导致大作业(如多 GPU 测试)被调度到单 GPU 或内存不足的实例上,造成失败或性能下降。从 review 评论 jikunshang 的担忧(“如果 YAML 中缺少此参数会怎样?”)可以看出这一必要性。

此 PR 对普通开发者阅读价值不高,但 CI 维护者应关注其 agent_tags 设计模式,特别是如何根据测试负载划分 GPU 和内存需求。对 vllm 的 CI 基础设施演进有一定参考意义。

讨论亮点

在 review 中,jikunshang 提问:“如果 YAML 中缺少此参数会怎样?” wendyliu235 回答:“会使用所有 intel_gpu 队列设备,即随机分配,可能导致大作业使用小实例。” jikunshang 进一步确认了风险(“将随机选取,大作业可能被分配到小实例”)。最终决定添加 agent_tags 以显式控制资源匹配,所有评论已解决并获批准。

实现拆解

  1. 主 CI 配置调整:在 .buildkite/intel_jobs/ 目录下的 9 个 YAML 文件中(如 models_multimodal_intel.yamllora_intel.yamlmisc_intel.yaml 等)为每个测试步骤添加 agent_tags 字段。字段包含 label: productiongpu: 1+2+mem: 16+24+,根据测试负载调整:多 GPU 测试要求 gpu: 2+,大模型测试要求 mem: 24+

  2. Nightly CI 配置同步:在 .buildkite/hardware_tests/intel_xpu_ci/test-intel.yaml 中添加同样的 agent_tags,确保夜间 CI 也受资源约束。

  3. 调优与验证:通过多次提交迭代(如使用 VLLM_USE_SINGLE_GPU 模拟单卡环境、调整标签取值)最终确定合理配置,并合入 main 分支。

整个变更为纯 CI 配置,无需单元测试,集成验证由 CI 自身保证。

文件 模块 状态 重要度
.buildkite/intel_jobs/models_multimodal_intel.yaml CI 配置 modified 4.6
.buildkite/hardware_tests/intel_xpu_ci/test-intel.yaml CI 配置 modified 4.55
.buildkite/intel_jobs/lora_intel.yaml CI 配置 modified 4.35

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

agent_tags 缺失时的默认行为 question

jikunshang 询问如果 YAML 中缺少 agent_tags 参数会怎样,wendyliu235 回复会使用所有 intel_gpu 队列设备(随机分配),jikunshang 进而指出大作业可能被分配到小实例的风险。

结论:必须显式添加 agent_tags 以避免调度不匹配。所有担忧已通过添加字段解决,PR 获得批准。 · 已解决

风险与影响

风险极低。唯一风险是标签设置不合理(如要求过高导致作业无法调度或过低导致资源不足),但 CI 会自动重试并可通过调整标签快速修复。没有回归或安全风险。

直接影响 Intel GPU CI 的作业调度,使每个测试步骤运行在指定资源上,减少不可预期的失败。对其他平台(AMD、NVIDIA)无影响。对开发者的影响:CI 更稳定,但引入新的约束,如果本地环境标签不一致可能需要调整。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论