Prhub

#21669 [AMD] Add Qwen3.5-397B FP8 nightly perf benchmarks for MI30x and MI35x

原始 PR 作者 michaelzhang-ai 合并时间 2026-04-07 14:46 文件变更 6 提交数 5 评论 5 代码增减 +408 / -8

执行摘要

为 AMD MI30x/MI35x GPU 添加 Qwen3.5-397B FP8 模型的夜间性能基准测试。

根据 PR body,动机是添加性能测试以监控 Qwen3.5-397B-A17B-FP8 模型在 AMD GPU 上的性能,使用 'continue-on-error: true' 使得性能测试失败时不影响 CI 通过,从而在保证准确性的前提下进行性能回归检测。

建议工程团队关注 CI 工作流的变更,确保性能测试步骤配置正确;性能测试文件中的代码重复问题值得后续重构以提升可维护性;对于学习测试框架设计,可参考 NightlyBenchmarkRunner 的使用模式。

讨论亮点

review 中主要讨论点包括:

1) 代码重复问题:gemini-code-assist[bot] 指出两个性能测试文件间存在显著重复,建议重构共享逻辑,但未在 PR 中解决;
2) 潜在除零错误:同一评论者建议在 ITL 计算中添加对 output_throughput 为零的检查;
3) 硬编码路径:针对 MI35x 测试中的 Hugging Face 缓存路径,建议使用环境变量提高可移植性;
4) attention backend 切换:Jackycheng0808 建议使用 '--attention-backend aiter',作者在后续 commit 中已采纳并修改相关文件。

实现拆解

实现方案分为三部分:

1) 新增两个性能测试文件(test_qwen35_fp8_perf_amd.py 和 test_qwen35_fp8_perf_mi35x.py),包含基准测试逻辑和报告生成函数 generate_simple_markdown_report;
2) 修改两个 CI 工作流文件(nightly-test-amd.yml 和 nightly-test-amd-rocm720.yml),在现有 Qwen3.5 测试任务中添加性能步骤,配置超时和错误处理;
3) 更新两个准确性测试文件(test_qwen35_eval_amd.py 和 test_qwen35_eval_mi35x.py),覆盖 test_lm_eval 方法以将结果写入 GitHub step summary,并将 attention backend 从 triton 切换为 aiter。

文件 模块 状态 重要度
test/registered/amd/perf/mi30x/test_qwen35_fp8_perf_amd.py test added 7.0
.github/workflows/nightly-test-amd.yml ci modified 6.0
test/registered/amd/accuracy/mi30x/test_qwen35_eval_amd.py test modified 5.0

关键符号

generate_simple_markdown_report TestNightlyQwen35Fp8Performance.setUpClass TestNightlyQwen35Fp8Performance.test_lm_eval ( 覆盖 ) TestQwen35Fp8PerfMI35x.setUpClass

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

评论区精华

代码重复问题 设计

gemini-code-assist[bot] 指出两个性能测试文件间有显著代码重复,建议重构共享逻辑到公用模块。

结论:未在 PR 中解决,问题保持开放。 · 待处理

ITL 计算中的除零风险 正确性

gemini-code-assist[bot] 建议在 generate_simple_markdown_report 函数中添加对 output_throughput 为零的检查,以防止 ZeroDivisionError。

结论:建议未被采纳或未在 PR 中修改,风险仍存在。 · 待处理

attention backend 切换 设计

Jackycheng0808 建议使用 '--attention-backend aiter' 而非 triton,以提高性能或兼容性。

结论:作者在后续 commit 中已修改相关文件,将 attention backend 改为 aiter。 · 已解决

风险与影响

技术风险包括:

1) 代码重复风险:test/registered/amd/perf/mi30x/test_qwen35_fp8_perf_amd.py 和 test/registered/amd/perf/mi35x/test_qwen35_fp8_perf_mi35x.py 文件几乎相同,维护时易出现不一致,增加长期维护成本;
2) 计算错误风险:generate_simple_markdown_report 函数中的 ITL 计算可能因 output_throughput 为零导致 ZeroDivisionError,影响测试报告生成;
3) 可移植性问题:test_qwen35_fp8_perf_mi35x.py 中硬编码 /data2/models/huggingface 路径,在其他环境可能失败;
4) CI 配置风险:新增性能步骤可能引入超时或资源竞争问题,但通过 continue-on-error 缓解。

对用户无直接影响,因为变更为内部测试基础设施。对系统影响:扩展了 CI 测试套件,新增夜间性能基准测试,有助于监控 AMD GPU 上大模型的性能回归。对团队影响:提供了性能数据收集机制,但性能失败不阻塞 CI,平衡了测试严格性与开发效率。影响范围限于 AMD 硬件测试流程。

代码重复 潜在除零错误 硬编码路径

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论