Prhub

#21487 feat(ci): add GB300 nightly benchmark test suites

原始 PR 作者 Kangyan-Zhou 合并时间 2026-03-29 12:54 文件变更 11 提交数 17 评论 9 代码增减 +874 / -4

执行摘要

为 GB300 硬件添加 8 个模型 nightly 基准测试套件,支持 NVFP4 和 FP8 变体。

根据PR body,目标是'为GB300(4x B200 NVL4, arm64)添加nightly benchmark测试套件',并'Designed for K8s CronJob orchestration with sequential per-model execution and cleanup',表明为了自动化CI流水线和硬件特定测试覆盖。Issue评论中Fridge003提到'maybe cc @nvpohanh , we can split some of our CI tasks here',进一步支持分摊CI任务的动机。

建议技术管理者和工程师精读此PR以学习如何扩展测试套件和集成外部评估工具。重点关注:

  • _run_nemo_skills_eval函数的实现,它展示了依赖隔离、缓存和错误处理的设计模式。
  • 变体配置的组织方式,如何通过ModelLaunchSettings支持多个运行变体。
  • 同时,注意未采纳的review建议,考虑未来改进profile_dir的动态派生以提高代码可维护性。
讨论亮点

review评论中,gemini-code-assist[bot]在多个测试文件上提出了唯一的核心讨论点:profile_dir硬编码问题。例如,评论指出'The profile_dir string is hardcoded. Consider deriving it dynamically from the test_name to reduce repetition and potential for inconsistencies.' 并提供了代码建议。但没有进一步的讨论或决策结论,建议未被采纳或修改,状态为未解决,焦点是设计权衡以提高维护性。

实现拆解

实现方案按模块拆解:

  1. 新增测试文件:在test/registered/gb300/目录下添加8个文件,如test_deepseek_v32.py,每个文件定义特定模型变体(NVFP4或FP8)的测试参数,包括模型路径、额外参数和变体配置,使用run_combined_tests运行。
  2. 测试运行器增强:修改python/sglang/test/accuracy_test_runner.py,新增_run_nemo_skills_eval函数和辅助函数_get_nemo_venv_ensure_nemo_data_prepared,通过隔离uv venv集成NeMo Skills进行MMMU-Pro评估,并缓存数据和环境以提高效率。
  3. 测试结果展示:修改python/sglang/test/run_combined_tests.py,在模型结果中添加variant字段,并在失败消息中显示变体名称,提升调试清晰度。
  4. CI套件注册:修改test/run_suite.py,将新套件'nightly-4-gpu-gb300'添加到CUDA CI套件列表中,支持CI系统发现和调度。
文件 模块 状态 重要度
test/registered/gb300/test_deepseek_v32.py test/gb300 added 7.0
python/sglang/test/accuracy_test_runner.py test/runner modified 8.0
python/sglang/test/run_combined_tests.py test/runner modified 5.0

关键符号

_run_nemo_skills_eval _get_nemo_venv run_combined_tests

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

评论区精华

profile_dir 硬编码建议 设计

gemini-code-assist[bot] 在多个测试文件中评论,指出 `profile_dir` 参数硬编码为 'performance_profiles_gb300',建议从 `test_name` 动态派生(例如使用 `profile_dir=f"performance_profiles_{test_name.lower().replace('.', '_').replace('-', '_')}"`)以减少重复和潜在不一致。

结论:建议未被采纳或未在 PR 中修改,状态为未解决,可能留给未来优化。 · 未解决

风险与影响

技术风险具体包括:

  • 硬编码路径风险:多个测试文件中的profile_dir硬编码为'performance_profiles_gb300',如果test_name变更或套件扩展,可能导致路径不一致和维护困难。
  • 外部依赖风险:新增的_run_nemo_skills_eval函数依赖外部NeMo Skills库,需网络安装并可能引入版本冲突或安装失败,影响测试稳定性。
  • 测试时间开销:套件设计为长时间运行(est_time=7200秒),可能拖慢CI流水线效率,尤其在高并发或资源受限环境下。
  • 硬件依赖性:测试针对特定GB300硬件(4x B200 NVL4),限制了通用性,可能在其他环境中无法运行或需调整配置。

影响评估:

  • 对用户:无直接影响,因为这是内部CI测试套件,不改变用户-facing功能。
  • 对系统:增加了测试覆盖,特别是针对GB300硬件和大型模型变体(如NVFP4/FP8量化),有助于捕捉性能回归和精度问题,但可能增加CI资源消耗和运行时间。
  • 对团队:提供了标准化的GB300基准测试能力,支持持续集成和性能监控,促进硬件优化;但需关注维护成本和外部依赖管理。
硬编码路径 外部依赖风险 长测试时间

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论