Prhub

#21767 [CI] add nvfp4 ci test for b200;

原始 PR 作者 Prozac614 合并时间 2026-04-02 11:31 文件变更 8 提交数 7 评论 5 代码增减 +149 / -214

执行摘要

为 B200 GPU 添加 NVFP4 量化扩散模型 CI 测试路径。

添加专用的多模态生成扩散CI路径在B200类runner上(与现有的1-GPU/2-GPU H100作业分离),并调整工具以使新阶段和套件可发现和可重跑,类似于其他硬件特定的CI。

建议CI维护者和测试工程师精读此PR,关注CI job配置、测试套件设计以及性能基线更新策略,这些决策对后续硬件扩展有借鉴意义。

讨论亮点

review中主要讨论:gemini-code-assist[bot]建议改进gen_diffusion_ci_outputs.py的代码维护性,使用动态引用SUITES.keys()而非硬编码,已被采纳;mickqian评论应启用测试配置,Prozac614确认并实施。无重大争议,所有疑虑已解决。

实现拆解

实现方案包括:1) CI工作流:在pr-test-multimodal-gen.yml中新增job 'multimodal-gen-test-1-b200',运行在B200 runner上,调用测试套件。2) 测试套件:在run_suite.py中添加'1-gpu-b200'套件,指向新测试文件test_server_c.py。3) 测试配置:更新testcase_configs.py启用B200测试;大幅更新perf_baselines.json性能基线数据。4) 工具脚本:更新gen_diffusion_ci_outputs.py支持新suite;更新slash_command_handler.py添加新stage到允许列表。5) 清理:移除过时TODO注释。

文件 模块 状态 重要度
.github/workflows/pr-test-multimodal-gen.yml CI modified 8.0
python/sglang/multimodal_gen/test/run_suite.py 测试 modified 7.0
python/sglang/multimodal_gen/test/server/perf_baselines.json 性能测试 modified 6.0
python/sglang/multimodal_gen/test/server/test_server_c.py 测试 added 7.0
scripts/ci/utils/slash_command_handler.py CI 工具 modified 5.0

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

关键符号

TestDiffusionServerOneGpuB200 case fixture SUITES dictionary main() in gen_diffusion_ci_outputs.py

评论区精华

代码维护性改进 设计

gemini-code-assist[bot] 建议使用动态引用 SUITES.keys() 替代硬编码 suite 名称,以提升脚本可维护性。

结论:建议被采纳,代码已更新为动态引用。 · 已解决

启用测试配置 测试

mickqian 评论应启用 testcase_configs.py 中的 B200 测试,Prozac614 确认并实施。

结论:测试配置被启用,确保 B200 测试正确运行。 · 已解决

风险与影响

技术风险包括:CI配置变更可能导致CI失败或阻塞,尤其是新runner的依赖安装;性能基线perf_baselines.json大幅修改,可能引入不准确数据影响回归检测;新测试套件可能未充分覆盖边缘情况或硬件特定问题。

对用户无直接影响,因为是内部CI基础设施。对系统:扩展CI覆盖到B200硬件,支持NVFP4量化扩散模型测试,提升测试自动化。对团队:需要维护新CI job,但提高了测试效率和硬件兼容性验证。

CI 配置变更 性能基线更新 测试覆盖有限

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

本PR为B200 GPU添加了专用的NVFP4量化扩散模型CI测试路径,通过更新CI工作流、测试套件和工具脚本,实现了硬件特定测试的自动化。影响范围限于CI基础设施,无用户端直接变更,但提升了团队对B200硬件的测试覆盖。

功能与动机

动机源于需要为B200类runner建立独立的多模态生成扩散CI路径,以补充现有H100作业。PR body中明确表述:“添加专用的多模态生成扩散CI路径在B200类runner上,与现有的1-GPU/2-GPU H100作业分离”,目标是使新测试阶段可发现和可重跑,类似其他硬件特定CI。

实现拆解

  • CI工作流:在.github/workflows/pr-test-multimodal-gen.yml中新增job multimodal-gen-test-1-b200,指定B200 runner并运行测试套件。
  • 测试套件python/sglang/multimodal_gen/test/run_suite.py添加“1-gpu-b200”套件,指向新文件test_server_c.py
  • 测试文件:新增test_server_c.py定义TestDiffusionServerOneGpuB200类,使用配置驱动测试。
  • 性能基线:大幅更新perf_baselines.json,移除旧数据,添加“flux_2_nvfp4_t2i”等新基线。
  • 工具脚本:更新gen_diffusion_ci_outputs.pyslash_command_handler.py以支持新suite和stage。
  • 配置清理:修改testcase_configs.py,移除过时TODO并启用B200测试。

评论区精华

review讨论聚焦于代码维护性和测试启用:

  • gemini-code-assist[bot]建议:“For better maintainability... use list(SUITES.keys())”,已被采纳,提升脚本可维护性。
  • mickqian与Prozac614交互:mickqian评论“we should enable this”,Prozac614回复“OK, I'll enable this”,确保测试配置正确激活。

风险与影响

  • 技术风险:CI配置变更可能导致runner依赖问题或测试失败;性能基线更新可能引入数据偏差,影响回归检测;新测试套件覆盖可能不足。
  • 影响分析:对用户无感知;系统层面扩展了CI硬件支持,团队需维护新job,但增强了测试自动化能力。

关联脉络

从历史PR看,本PR与扩散模型硬件支持(如PR 18648)、量化集成(如PR 21576)和硬件特定CI测试(如PR 20717)密切相关,共同推动多模态生成和量化测试的演进。

参与讨论