Prhub

#22336 [AMD] Add GLM-5.1-FP8 nightly accuracy and performance benchmarks for MI30x and MI35x

sgl-project/sglang · 作者 michaelzhang-ai · 合并时间 2026-04-09 13:57

分析状态 已生成
文件变更 6提交数 4 · 评论 8
代码增减 +918 / -25
run-ci test performance amd moe

执行摘要

为 AMD MI30x/MI35x 添加 GLM-5.1-FP8 模型的夜间准确性与性能基准测试。

PR body中说明需要为GLM-5.1-FP8模型添加夜间基准测试,基于GLM-5的测试模式(参考#21710),以评估新模型在AMD MI30x和MI35x硬件上的表现,确保模型推理准确性和性能可监控。

该PR值得精读以了解AMD硬件测试集成模式;关注测试设计中的配置一致性和代码可维护性;review中提到的硬编码路径和零除问题建议后续修复;可参考GLM-5测试模式作为模板。

讨论亮点

review中gemini-code-assist[bot]指出硬编码路径(如/data2/models/huggingface)违反PEP 8,配置不一致(MI35x准确性测试缺少SGLANG_USE_AITER等环境变量),以及性能测试中潜在的ZeroDivisionError。1am9trash询问EP配置差异,作者通过提交修正以匹配GLM-5纯TP配置,结论是已解决;但硬编码和零除问题可能未在PR中修复。

实现拆解

新增4个测试文件:test/registered/amd/accuracy/mi30x/test_glm51_eval_amd.py和test/registered/amd/accuracy/mi35x/test_glm51_eval_mi35x.py用于GSM8K准确性测试;test/registered/amd/perf/mi30x/test_glm51_perf_amd.py和test/registered/amd/perf/mi35x/test_glm51_perf_mi35x.py用于bench_one_batch性能测试。修改CI工作流文件.github/workflows/nightly-test-amd.yml和.github/workflows/nightly-test-amd-rocm720.yml,添加新测试任务并移除GLM-4.7-FP8任务。测试配置采用TP=8、NSA attention后端、FP8 KV缓存,并设置环境变量如SGLANG_USE_AITER。

文件 模块 状态 重要度
.github/workflows/nightly-test-amd.yml CI modified 7.0
.github/workflows/nightly-test-amd-rocm720.yml CI modified 7.0
test/registered/amd/accuracy/mi30x/test_glm51_eval_amd.py 测试 added 6.0
test/registered/amd/perf/mi30x/test_glm51_perf_amd.py 测试 added 6.0

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

关键符号

run_gsm8k_benchmark TestNightlyGLM51Performance.setUpClass generate_simple_markdown_report ModelConfig.get_display_name

评论区精华

硬编码路径和 PEP 8 违反 style

gemini-code-assist[bot] 指出在 test/registered/amd/accuracy/mi35x/test_glm51_eval_mi35x.py 中硬编码路径如 /data2/models/huggingface,并违反 PEP 8 导入顺序,降低代码可移植性。

结论:可能未修复,PR 已合并,但问题仍存在。 · 待处理

配置不一致 正确性

gemini-code-assist[bot] 指出 MI35x 准确性测试配置缺失环境变量(如 SGLANG_USE_AITER)和参数(如 num_threads: 8),与 PR 描述和性能测试不一致。

结论:未解决,可能导致测试行为差异。 · 待处理

ZeroDivisionError 风险 正确性

gemini-code-assist[bot] 指出在 test/registered/amd/perf/mi30x/test_glm51_perf_amd.py 和 mi35x 版本中,ITL 计算可能因 output_throughput 为零导致除零错误。

结论:未解决,建议添加检查但未实现。 · 待处理

EP 配置差异 设计

1am9trash 在 Issue 评论中询问为什么 GLM-5.1 添加 --ep-size 8 而 GLM-5 用纯 TP,作者通过提交修正以匹配 GLM-5 配置。

结论:已解决,移除 --ep-size 以保持一致性。 · 已解决

风险与影响

硬编码路径限制测试可移植性,可能在其他环境失败;配置不一致可能导致MI35x准确性测试结果不准确或性能偏差;ZeroDivisionError可能使性能报告失效或崩溃;CI工作流修改可能引入任务依赖错误或资源竞争风险;测试文件新增增加维护负担。

对用户无直接影响,但为AMD硬件用户提供GLM-5.1模型的基准数据参考。对系统:扩展测试覆盖,增加CI运行时间和资源消耗(如GPU使用)。对团队:提升测试基础设施,需定期维护新增测试文件;配置不一致可能影响测试可靠性。

硬编码路径 配置不一致 零除风险 CI 变更风险

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

本PR为AMD MI30x和MI35x硬件新增GLM-5.1-FP8 MoE模型的夜间准确性与性能基准测试,扩展测试覆盖以评估新模型表现,基于GLM-5测试模式优化CI工作流并移除过时任务,但存在硬编码路径、配置不一致等风险需后续关注。

功能与动机

PR旨在解决GLM-5.1-FP8模型在AMD硬件上缺乏系统化测试的问题。PR body中说明:“Add GLM-5.1-FP8 nightly accuracy + perf benchmarks for MI30x and MI35x”,基于GLM-5测试模式(#21710),确保模型推理准确性和性能可监控,满足持续集成需求。

实现拆解

  • 新增测试文件
    • test/registered/amd/accuracy/mi30x/test_glm51_eval_amd.py:MI30x准确性测试,使用GSM8K数据集评估模型,配置TP=8、NSA后端。
    • 类似文件用于MI35x准确性和性能测试。
  • 修改CI工作流
    • .github/workflows/nightly-test-amd.yml:添加nightly-8-gpu-glm51等任务,移除GLM-4.7-FP8。
    • .github/workflows/nightly-test-amd-rocm720.yml:同步更新支持ROCm 7.2。
  • 关键配置示例(从test_glm51_perf_amd.py):
cls.model_config = {
    "name": "glm51",
    "model_path": GLM51_MODEL_PATH,
    "other_args": [
        "--tp", "8",
        "--nsa-prefill-backend", "tilelang",
        "--kv-cache-dtype", "fp8_e4m3",
    ],
    "env_vars": {"SGLANG_USE_AITER": "1"},
}

评论区精华

review中gemini-code-assist[bot]指出主要问题:

  • “Hardcoding environment-specific paths like /data2/models/huggingface reduces portability.”
  • “The configuration for MI35x accuracy is missing several environment variables... This inconsistency might lead to suboptimal performance.”
  • “Potential ZeroDivisionError if result.output_throughput is zero.”
    1am9trash询问EP配置差异,作者回复“updated”并通过提交修正。讨论焦点集中在代码质量和配置一致性上。

风险与影响

  • 技术风险:硬编码路径限制测试可移植性;配置不一致可能导致MI35x测试结果不准确;ZeroDivisionError可能使性能报告崩溃;CI变更可能引入任务失败风险。
  • 影响范围:对用户间接提供基准数据;系统CI运行时间增加(如MI35x测试耗时超1小时);团队需维护新增测试,确保配置同步。

关联脉络

此PR是AMD硬件测试扩展的一部分,与历史PR如#21710(GLM-5测试模式)直接关联,共同构建SGLang项目的多硬件测试矩阵。近期PR如#22657(AMD Docker修复)和#22187(HiSparse基准)显示团队持续优化测试基础设施,本PR延续了这一趋势,聚焦于新模型GLM-5.1的集成。

参与讨论