Prhub

#23955 [AMD] Add AMD FP8 MLA attention test for Wan2.2-T2V-A14B

原始 PR 作者 yichiche 合并时间 2026-05-08 16:03 文件变更 1 提交数 1 评论 6 代码增减 +136 / -0

执行摘要

为 AMD 添加 Wan2.2 FP8 MLA 注意力测试

确保 FP8 MLA 代码路径在 AMD nightly CI 中得到覆盖,捕获回归问题。该路径由 PR #20319 引入,缺乏自动化测试。

值得阅读此 PR 的测试模式,尤其是 DiffusionServerBase 的使用和 CI 注册方法。但应关注 review 中未采纳的改进点,在后续测试中进行修正,以确保参数传递正确。

讨论亮点

Gemini-code-assist[bot] 提出了 3 类建议:

  • 参数拆分extras 列表中的 "--enable-torch-compile false" 应拆为 ["--enable-torch-compile", "false"],避免服务器启动时被当作单参数。
  • 显式设置 tp_size:8GPU 用例中,ulysses_degree=4 时建议显式添加 tp_size=2 确保正确的模型划分。

所有建议均未在合并前得到修改或回复,也未标记为已解决。

实现拆解

1. 导入与注册

test/registered/amd/test_wan22_fp8_mla.py 中导入测试基础设施(DiffusionServerBaseDiffusionTestCase 等),并通过 register_amd_ci 将测试注册为 nightly 套件 nightly-amd-fp8-mla-diffusion,预估耗时 3600 秒。

2. 定义测试用例配置

使用 DiffusionTestCase 数据结构定义 4 组参数:模型统一为 Wan-AI/Wan2.2-T2V-A14B-Diffusers,分别设置 1/8 GPU、--enable-torch-compile 开关(注意:当前版本将 flag 和 value 合并在同一字符串中,可能引发服务器参数解析错误),8GPU 时指定 ulysses_degree=4cfg_parallel=True。所有测试均关闭性能、一致性、模型 API 等检查。

3. 实现测试类与夹具

TestWan22FP8MLA 继承 DiffusionServerBase,通过 pytest.fixture 注入参数化用例,并重写 teardown_class 以安全清理。

4. 实现测试方法

test_diffusion_generation 方法根据用例参数生成生成函数,调用 run_and_collect 执行推理,最后断言输出非空。

文件 模块 状态 重要度
test/registered/amd/test_wan22_fp8_mla.py 测试 added 7.27

关键符号

TestWan22FP8MLA.teardown_class TestWan22FP8MLA.case TestWan22FP8MLA.test_diffusion_generation

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

评论区精华

测试参数和配置的正确性 正确性

Gemini-code-assist 建议将 extras 中的组合字符串拆分为独立参数,并建议在 8GPU 用例中显式设置 tp_size=2。

结论:建议未被采纳(或未被回复),PR 已合并但参数未修改。 · unresolved

风险与影响

测试有效性风险:所有用例关闭了性能、一致性等检查,仅验证输出非空,可能遗漏精度或性能退化。
环境依赖风险:测试依赖 sgl_kernel,若未安装则跳过(通过 pytest.importorskip),可能导致 CI 透传但实际未执行。
参数解析风险extras 中未拆分 flag/value 可能造成服务器启动失败,但测试仍可能因错误处理而误判为通过。

影响范围:仅影响 AMD nightly CI,增加约 1 小时执行时间。
用户影响:无,纯测试新增。
团队影响:为后续 AMD 相关测试提供了可参考的模板(基于 DiffusionServerBase 的注册方式)。

缺少正确性验证 环境依赖(sgl_kernel) 命令行参数解析风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论