Prhub

#24259 [AMD] enable sdma for moriep unittest

原始 PR 作者 billishyahao 合并时间 2026-05-02 14:34 文件变更 1 提交数 2 评论 1 代码增减 +5 / -1

执行摘要

启用 SDMA 并调整 chunked prefill 大小以节省显存

PR body指出:

1) 在moriep TBO(two-batch overlap)用例中启用SDMA;
2) 降低chunked prefill size以节省GPU显存。目的是提高测试覆盖率和资源利用率。

该PR为常规测试维护,无需精读。但可作为AMD MoE测试配置的参考。

讨论亮点

无review评论,仅有HaiShaw的批准。无争议或讨论。

实现拆解

该PR仅修改了一个测试文件,变更分为两部分:

  1. 降低chunked prefill size并新增max-total-tokens参数:在common_args列表中,将--chunked-prefill-size32768改为16384,并新增--max-total-tokens参数设置为131072。此举在保证上下文长度(12288)不变的前提下,通过减小chunk size来节省GPU显存,同时限制总token数以控制资源使用。
  2. 启用SDMA环境变量:在TestMTPwithTBONormalTestMTPwithTBOLowLatency两个测试类的setUpClass方法中,添加了env["MORI_ENABLE_SDMA"] = "true"。这启用了DeepEP MoE通信中的SDMA(可能是Shared DMA或某种DMA优化),用于验证SDMA在speculative decoding(MTP)与two-batch overlap结合场景下的正确性。
文件 模块 状态 重要度
test/registered/amd/test_moriep_small.py 测试 modified 3.95

关键源码片段

test/registered/amd/test_moriep_small.py test-coverage

唯一的变更文件,包含所有配置调整和 SDMA 启用。

# 在 common_args 中降低 chunk size 并新增 max-total-tokens
common_args = [
    # ... 其他参数 ...
    "--chunked-prefill-size",
    "16384", # 从 32768 降低为 16384,节省显存
    "--max-running-requests",
    "128",
    "--context-length",
    "12288",
    "--max-total-tokens",
    "131072", # 新增参数,限制最大 token 数
    # ... 其他参数 ...
]# 在 TestMTPwithTBONormal.setUpClass 中启用 SDMA
env["SGLANG_ENABLE_SPEC_V2"] = "false"
env["MORI_ENABLE_SDMA"] = "true" # 启用 SDMA,用于 TBO 场景# 在 TestMTPwithTBOLowLatency.setUpClass 中同样启用 SDMA
# env["MORI_DISABLE_P2P"] = "1" # 原注释保留
env["MORI_ENABLE_SDMA"] = "true" # 启用 SDMA

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险较低。变更仅涉及测试配置参数和环境变量,不修改核心逻辑。降低chunked prefill size可能影响prefill阶段的吞吐,但测试中上下文长度未变,且新增了max-total-tokens作为保护。SDMA启用依赖底层环境,但环境变量为布尔值,未启用时会回退。

影响范围:仅限AMD CI中8-GPU场景下的MoE+EP测试用例。用户无感知。团队收益:节省GPU显存(chunk size减半),并验证SDMA在TBO下的兼容性。

测试配置变更 仅 AMD 环境

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论