# PR #23247 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[AMD] Fix multimodal timeout issue : rocm7.2 PR Test
- 合并时间：2026-04-20 18:36
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/23247

---

# 执行摘要
本 PR 修复了 AMD ROCm7.2 CI 中 multimodal-gen-test-2-gpu-amd 测试套件在分区 0 持续超时的问题。通过将总分区数从 2 增加到 3，使参数化测试被拆分到两个分区，独立测试文件独占一个分区，从而平衡负载、消除超时。这是一个针对 CI 基础设施的精准调整，不影响任何业务逻辑。

# 功能与动机
**问题背景**：AMD ROCm7.2 CI 的 2-gpu 多模态测试套件在分区 0 持续超时。作者在 PR body 中详细分析了根本原因：该套件包含 1 个独立测试文件（`test_disagg_server.py`）和 22 个参数化测试用例。原配置 `total_partitions=2`，根据分区逻辑 `参数化分区数 = 总分区数 - 独立文件数`，仅剩 1 个分区用于所有 22 个参数化测试，导致分区 0 负载过重而超时，分区 1 仅运行独立文件约 11 分钟。

**修复目标**：通过增加总分区数，为参数化测试分配更多分区，实现负载均衡，解决超时问题。

# 实现拆解
变更仅涉及一个文件，分为两步：

1. **调整分区矩阵**：在 `.github/workflows/pr-test-amd-rocm720.yml` 中，将 `part` 矩阵值从 `[0, 1]` 改为 `[0, 1, 2]`，将总分区数从 2 增加到 3。
2. **更新脚本参数**：在同一文件中，将调用测试脚本时的 `--total-partitions` 参数从 `2` 改为 `3`，确保脚本使用新的分区数。

**关键配置片段**：
```yaml
jobs:
  multimodal-gen-test-2-gpu-amd:
    max-parallel: 1  # 串行执行以避免 AITER 内核 JIT 期间的资源耗尽
    matrix:
      runner: [linux-mi325-2gpu-sglang]
      part: [0, 1, 2]  # 分区数从 2 增至 3
    runs-on: ${{matrix.runner}}
    steps:
      - name: Run multimodal 2‑gpu test suite
        run: |
          python3 sglang/multimodal_gen/test/run_suite.py \
            --suite 2-gpu \
            --partition-id ${{ matrix.part }} \
            --total-partitions 3  # 同步更新总分区数

```

**影响说明**：此改动仅影响 CI 执行策略，不修改任何测试逻辑、源码或依赖。参数化测试现在将被拆分到分区 0 和 1（通过 LPT 调度），独立文件 `test_disagg_server.py` 独占分区 2，从而均衡负载、避免超时。

# 评论区精华
Review 过程简洁，审核者 bingxche 直接批准，未留下评论。从 PR body 可看出，作者已提供了完整的根本原因分析和修复方案，可能因此未引发进一步讨论。

# 风险与影响
**风险分析**：
- **配置风险**：低。仅调整分区数，若未来测试套件结构变化（如独立文件数增加），可能需要重新评估分区逻辑。
- **资源风险**：低。增加分区旨在优化负载，理论上不会增加总资源消耗，反而可能因避免超时而提高 CI 效率。

**影响分析**：
- **用户影响**：无。这是内部 CI 优化，不影响终端用户功能。
- **系统影响**：解决特定测试套件的超时问题，提升 AMD ROCm7.2 CI 的稳定性和可预测性。
- **团队影响**：减少 CI 失败，加速开发迭代。

# 关联脉络
本 PR 是团队持续优化 CI 负载均衡的一部分。近期相关 PR 包括：
- **PR #23245**：同样修改了 `pr-test-amd-rocm720.yml`，更新工作流名称，属于同一 CI 配置维护脉络。
- **PR #23208**：将 CPU 测试套件拆分为 4 个分区以解决超时问题，展示了团队在测试分区策略上的通用模式。

这些 PR 共同反映了团队对 CI 稳定性和效率的重视，通过精细化的分区调整来应对不同测试套件的负载特征。