Prhub

#31928 Route /rerun-test for b200 multimodal tests to the b200 pool

原始 PR 作者 alisonshao 合并时间 2026-07-22 07:41 文件变更 1 提交数 1 评论 3 代码增减 +1 / -0

执行摘要

修复 /rerun-test 将 b200 多模态测试路由到 H100 池的问题

之前 /rerun-test test_server_b200.py 会被分发到 1-gpu-h100 池,B200 独有的 NVFP4 测试立即崩溃,报错 mm_fp4 does not support backend 'trtllm' with capability 90。PR body 明确说明该问题源于 handler 的 multimodal runner 映射只识别 2_gpu2-gpu 键,其余全部回退到 1-gpu-h100

该 PR 价值虽小但及时修复了实际的 CI 故障。建议阅读者关注 scripts/ci/utils/slash_command_handler.pydetect_multimodal_suite 函数的匹配逻辑,未来若有更多硬件后缀测试文件加入,应考虑重构为更鲁棒的正则匹配或精确匹配机制,避免字典顺序依赖。

讨论亮点

code review 中 gemini-code-assist[bot] 指出,由于 detect_multimodal_suite 顺序遍历字典并返回第一个匹配键,如果未来出现同时包含 b2002-gpu 的测试文件名(如 test_b200_2_gpu.py),会因 2-gpu 排在前面而错误路由到 H100 池。建议将 "b200" 放在字典顶部以确保 B200 硬件需求优先。但该评论为 bot 自动生成,hnyls2002 已批准合并,未采纳排序建议,实际插入位置在已有键之后。

实现拆解

变更只涉及一个文件、一行代码,分为两个逻辑层面:

  1. scripts/ci/utils/slash_command_handler.pyMULTIMODAL_PATH_TO_RUNNER 字典中新增 "b200": _B200_DEFAULT_RUNNER 条目,其中 _B200_DEFAULT_RUNNER 已在上下文中定义为 "4-gpu-b200",与 pr-test.ymlmultimodal-gen-test-1-b200 使用的 runner 池一致。
  2. 保持与其他映射键的兼容性2_gpu2-gpu 依然指向 2-gpu-h100;新增的 b200 键优先级依赖字典迭代顺序(Python 3.7+ 保持插入顺序)。

没有额外的测试或配置变更,影响范围仅限于 /rerun-test slash command 的 multimodal suite 路由逻辑。

文件 模块 状态 重要度
scripts/ci/utils/slash_command_handler.py CI modified 2.81

关键符号

handle_rerun_failed_ci

关键源码片段

scripts/ci/utils/slash_command_handler.py infrastructure

核心变更文件,新增 b200 映射键确保 B200 多模态测试路由到正确的 GPU 池。

# scripts/ci/utils/slash_command_handler.pydef handle_rerun_failed_ci(...):
    # 多模态测试路径 → runner 池的映射字典
    # detect_multimodal_suite 顺序遍历该字典,返回第一个匹配键对应的 runner
    MULTIMODAL_PATH_TO_RUNNER = {
        "2_gpu": "2-gpu-h100", # 注意:这里有两个相同的键 "2_gpu",后者覆盖前者
        "2-gpu": "2-gpu-h100",
        "b200": _B200_DEFAULT_RUNNER, # PR 新增:将 b200 映射到 4-gpu-b200 池
    }
    MULTIMODAL_DEFAULT_RUNNER = "1-gpu-h100"
    # 注意:由于字典顺序迭代,若将来出现含 "b200" 和 "2-gpu" 的路径,
    # "2-gpu" 会优先匹配导致错误路由。建议将 b200 条目置于更前位置。

评论区精华

字典顺序导致路由优先级 设计

gemini-code-assist[bot] 指出,由于 detect_multimodal_suite 顺序遍历字典,若将来出现同时包含 b200 和 2-gpu 的测试文件名,会因 2-gpu 在前而错误路由到 H100。

结论:未采纳,当前所有 b200 测试文件名不包含 2-gpu,暂时安全。 · acknowledged

风险与影响

风险极低:

  • 仅新增一个字典条目,不改变现有逻辑。
  • 但正如 review 所指出,未来可能出现文件名含多个 hint 的测试文件,现有插入位置可能导致路由不符合预期,但当前所有 b200 测试文件名均不含 2-gpu 字样,短时间内不会触发此边界情况。
  • 用户影响:开发者使用 /rerun-test 对 B200 多模态测试重跑时,不再触发 NVFP4 硬件的算力不兼容崩溃,能正确分配到 4-gpu-b200 runner pool。
  • 系统影响:CI 基础设施,无性能变化。
  • 团队影响:简化了 CI 维护人员的手动干预流程,避免了误报。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论