Prhub

#33931 [diffusion] Exercise the default SP exchange in Z-Image CI

原始 PR 作者 mickqian 合并时间 2026-08-07 14:20 文件变更 1 提交数 1 评论 1 代码增减 +0 / -2

执行摘要

Z-Image CI 移除显式 Ulysses,覆盖默认 SP 路径

PR body 明确提出“let the existing 2-GPU Z-Image cases use automatic parallel-strategy selection”,目的是让默认 SP 交换路径进入 CI 回归。此前 python/sglang/multimodal_gen/test/server/gpu_cases.py 中两个 Z-Image 用例显式固定 ulysses_degree=2,绕过了默认并行策略选择;删除后可在 2-GPU 环境下持续验证默认并行路径,同时保留方形用例作为 SP2 性能守卫、非方形用例作为 padding 与分片兼容守卫,并继续保留显式 Ulysses 与 Ring 用例的后端兼容覆盖。

不值得精读,但建议在阅读 PR #33923(zimage 注意力路由 USPAttention)时一并查看本 PR,理解默认并行路径覆盖意图。关注点:确认自动策略选择在 Z-Image 上实际会落到默认 SP 交换而非 fallback 到其他并行;后续若默认策略变化,这两个用例可作为哨兵。

讨论亮点

本 PR 没有任何 review 评论或 review 线程。唯一的 issue 评论是作者触发的 /tag-and-rerun-ci,属于 CI 重跑指令,无技术交锋。

实现拆解

  1. 变更入口:python/sglang/multimodal_gen/test/server/gpu_cases.py,该文件维护多 GPU diffusion 服务端启动用例列表。
  2. 核心动作:删除 zimage_image_t2i_2_gpus 与 zimage_image_t2i_2_gpus_non_square 两个 DiffusionTestCase 中 DiffusionServerArgs 的 ulysses_degree=2 参数。ulysses_degree 显式指定 Ulysses 序列并行维度,删除后由服务端默认并行策略选择逻辑决定,从而在 2-GPU 环境执行默认 SP 交换。
  3. 设计意图:依据 PR body 的四点说明,该改动将两个用例的职责从“显式 Ulysses 覆盖”调整为“默认路径守卫”,与其他显式用例形成互补,覆盖不丢失。
  4. 配套影响:无新增用例、无新增请求,CI 用例数与模型启动次数均不变;标签含 run-ci,意图是让常规 CI 持续跑通该默认路径。无源码、schema 或部署配套改动。
文件 模块 状态 重要度
python/sglang/multimodal_gen/test/server/gpu_cases.py CI 用例 modified 3.42

关键源码片段

python/sglang/multimodal_gen/test/server/gpu_cases.py test-coverage

唯一变更文件:删除两个 Z-Image 2-GPU 用例的显式 ulysses_degree=2,使其走自动并行策略选择,在 CI 中覆盖默认 SP 交换路径。

# python/sglang/multimodal_gen/test/server/gpu_cases.py(节选)
# Z-Image 2-GPU 用例:不再显式设置 ulysses_degree=2,改由自动并行策略选择,
# 以便在 CI 中覆盖默认 SP 交换路径(配合 PR #33923 的 USPAttention 路由)。
DiffusionTestCase(
    "zimage_image_t2i_2_gpus",
    DiffusionServerArgs(
        model_path=DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
        # 删除前此处为 ulysses_degree=2,删除后自动选择并行方案
    ),
),# 非方形用例作为 padding 与分布式分片兼容守卫,同样移除显式 Ulysses 配置,
# 保留 1280x720 输出尺寸,继续验证非方形分片路径。
DiffusionTestCase(
    "zimage_image_t2i_2_gpus_non_square",
    DiffusionServerArgs(
        model_path=DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
        # 删除前此处为 ulysses_degree=2,删除后自动选择并行方案
    ),
    DiffusionSamplingParams(
        prompt=T2I_sampling_params.prompt,
        output_size="1280x720",
    ),
    run_perf_check=False,
),

评论区精华

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

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

风险与影响

行为风险较低:删除显式 ulysses_degree=2 后,两个用例依赖自动并行策略选择;若默认策略在 Z-Image 上未实际走到 SP 交换路径,覆盖目标会落空,但不会造成功能错误;若默认路径存在 bug,两个用例可能开始失败,这恰是本 PR 想要的哨兵效果。覆盖偏移风险较低:非方形用例原先在显式 Ulysses 下承担 padding/分片兼容守卫,切换后该场景可能变为默认 SP 路径,但仓库中 wan2_1_i2v_14b_lora_2gpu、qwen_image_t2i_2_gpus(Ring)等用例仍显式覆盖 Ulysses/Ring,兼容覆盖不丢失。性能与安全无影响,CI 用例数与模型启动次数不变。

影响范围仅限 diffusion 多 GPU CI 用例配置,对用户功能与生产代码零影响。收益点是默认 SP 交换路径在 Z-Image 上获得持续回归覆盖,降低未来并行策略默认值变更时的隐形回归风险。CI 用例数量、模型启动次数与请求内容均不变。

CI 配置变更 依赖默认 SP 路径

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论