执行摘要
本PR为AMD MI30x和MI35x平台新增GLM-5-FP8模型的夜间性能基准测试,通过扩展CI工作流和添加测试文件,实现性能监控与跨平台配置对齐,但存在代码质量和可移植性风险需后续关注。
功能与动机
为解决AMD平台性能监控缺失问题,本PR旨在添加GLM-5-FP8的夜间性能测试,以匹配NV和InferenceX的配置标准。PR body强调“matching NV/InferenceX configs”并引用关联Issue评论建议添加--reasoning-parser=glm45 --tool-call-parser=glm47标志,减少跨平台行为漂移。
实现拆解
- CI工作流修改:在
.github/workflows/nightly-test-amd.yml和nightly-test-amd-rocm720.yml中添加性能测试步骤,设置continue-on-error: true,确保准确性测试失败时作业仍可继续。
- 性能测试文件新增:创建
test/registered/amd/perf/mi30x/test_glm5_perf_amd.py和test/registered/amd/perf/mi35x/test_glm5_perf_mi35x.py,使用bench_one_batch方法,关键配置如下:
python
other_args=[
"--trust-remote-code",
"--reasoning-parser", "glm45",
"--tool-call-parser", "glm47",
"--tp", "8",
"--kv-cache-dtype", "fp8_e4m3",
"--mem-fraction-static", "0.85"
]
- 准确性测试更新:同步
test/registered/amd/accuracy/下的文件,将模型路径从zai-org/GLM-5切换至zai-org/GLM-5-FP8,并添加相同parser flags。
评论区精华
- gemini-code-assist[bot]指出:“
generate_simple_markdown_report函数是重复的,应考虑移至共享模块”,但此建议未在PR中采纳。
- 关于除零风险:“Potential
ZeroDivisionError if result.output_throughput is zero”,提示添加检查以避免崩溃。
- 硬编码路径问题:“Hardcoding environment variables like
HF_HOME reduces portability”,建议通过CI环境配置提升可移植性。
- 环境变量不一致:“
SGLANG_USE_AITER is missing for MI35x”,可能影响性能比较的准确性。
风险与影响
- 风险:除零错误可导致测试中断,影响CI稳定性;硬编码路径限制测试在非CI环境运行;环境变量缺失使MI35x性能数据可能不准确;代码重复增加维护负担。性能测试使用
continue-on-error,失败可能被忽略,掩盖潜在问题。
- 影响:对用户无直接影响,但增强内部测试覆盖,有助于团队监控AMD平台性能趋势,支持优化决策。新增测试提供标准化基准数据,促进跨平台配置对齐。
关联脉络
本PR依赖#22314(修复FP8 KV量化路径)和#22232(优化NSA indexer)的修复以启用关键功能,与近期PR如#22288(测试模型更新)共同反映AMD测试套件的持续演进。提交历史显示第二个提交启用了FP8 KV缓存,表明实现基于依赖PR的合并状态进行演进。
参与讨论