执行摘要
- 一句话:4 个 2-GPU 测试注册到 AMD CI
- 推荐动作:本 PR 是纯粹的 CI 注册变更,技术含量低,但作为 AMD CI 覆盖建设的一部分,值得团队关注其渐进式覆盖策略和从候选筛选中暴露的平台差异(如 kv-canary 内核仅 CUDA、模型权重复制不可用)。对于 CI 维护者和 AMD 平台开发者,建议阅读 PR body 中的决策记录,了解哪些测试被排除以及原因,以便后续在对应模块完成 ROCm 移植后重新注册。
功能与动机
作者在 PR body 中指出这是 NV→AMD CI 覆盖差距审计的第四批(延续 #25208、#25939、#27817),目的是将已有的 2-GPU CUDA 测试注册到 AMD 双 GPU CI 通道,以增加 AMD 硬件上的 CI 覆盖,确保这些后端无关或 ROCm 支持的路径在 AMD 上持续验证。
实现拆解
本 PR 的实现极为简洁,仅涉及对 4 个测试文件的细微修改,每个文件都遵循相同的两步模式:
- 导入调整:在每个文件中,将原本只导入
register_cuda_ci 的语句改为同时导入 register_amd_ci 和 register_cuda_ci。
- 注册调用:在已有的
register_cuda_ci(...) 行之后,新增一行 register_amd_ci(est_time=<估计用时>, suite="stage-b-test-2-gpu-large-amd")。其中 est_time 参数为预期运行时间(秒),suite 指定目标 CI 套件名,该名称在 AMD CI 的工作流配置中定义(mi3xx 和 rocm720 两条 AMD 通道均使用同一套件名)。
四个变更文件及其变更内容如下:
test/registered/scheduler/test_load_snapshot_server.py:第 13 行导入增加 register_amd_ci,第 23 行新增 register_amd_ci(est_time=450, suite="stage-b-test-2-gpu-large-amd")。该测试进行服务器快照加载集成测试(无 DP/正常 DP × ZMQ/SHM 组合)。
test/registered/attention/test_gemma4_swa_triton_oob_regression.py:第 18 行导入增加 register_amd_ci,第 27 行新增 register_amd_ci(est_time=160, suite="stage-b-test-2-gpu-large-amd")。该测试针对 Gemma4 模型在 Triton 注意力后端下启用确定性推理时的高并发越界回归。
test/registered/radix_cache/unified_radix_tree/test_unified_radix_cache_kl_full.py:第 4 行导入增加 register_amd_ci,第 15 行新增 register_amd_ci(est_time=400, suite="stage-b-test-2-gpu-large-amd")。该测试使用 Qwen3-32B 模型验证统一基数树(Unified Radix Cache)在 full attention 模式下的 KL 散度阈值。
test/registered/rl/test_patch_torch.py:第 10 行导入增加 register_amd_ci,第 13 行新增 register_amd_ci(est_time=30, suite="stage-b-test-2-gpu-large-amd")。该测试验证 Torch 分布式通信补丁(monkey-patch)的正确性。
此外,PR 的提交历史反映了从 10 个候选测试缩减到最终 4 个的过程:第一版注册了 10 个测试,第二版因 kv_canary 内核是 CUDA-only 而移除了 4 个依赖于它的测试,第三版因 MLA 测试模型在 AMD 运行器上不可用而再移除 2 个。
关键文件:
test/registered/scheduler/test_load_snapshot_server.py(模块 调度器;类别 test;类型 test-coverage): 注册 AMD CI 的 4 个测试之一,测试负载快照服务器功能
test/registered/attention/test_gemma4_swa_triton_oob_regression.py(模块 注意力;类别 test;类型 test-coverage): 注册 AMD CI 的 4 个测试之一,测试 Gemma4 SWA Triton OOB 回归
test/registered/radix_cache/unified_radix_tree/test_unified_radix_cache_kl_full.py(模块 缓存层;类别 test;类型 test-coverage): 注册 AMD CI 的 4 个测试之一,测试统一基数树 full attention KL 散度
test/registered/rl/test_patch_torch.py(模块 强化学习;类别 test;类型 test-coverage): 注册 AMD CI 的 4 个测试之一,测试 Torch 分布式补丁
关键符号:未识别
评论区精华
本 PR 的讨论主要来自 PR body 和机器人评论,无人工 review 评论或争议。
风险与影响
- 风险:风险极低。
- 本 PR 仅涉及 CI 注册代码的变更,不修改任何生产逻辑、测试内容或基础设施配置。
- 所有 4 个测试已在两条 AMD CI 通道(mi3xx 和 rocm720)上成功通过验证(参见 PR body 中引用的 Actions 运行链接)。
- 唯一潜在风险是注册时指定的
est_time 估计可能偏短,导致 CI 超时误报,但目前设置的估计值(450s、160s、400s、30s)均大于验证运行中的实际耗时(235s、273s、506s、未报告),因此该风险极小。
- 另外,导入语句的修改与已有代码风格一致,无语法风险。
- 影响:影响范围小,但意义重要。
- 对系统:无影响(仅 CI 配置变更)。
- 对用户:无影响(用户不会直接感知)。
- 对团队:增强了 AMD 硬件平台上的 CI 覆盖,有助于在 AMD GPU 上提前发现回归问题,降低 AMD 特定 bug 流入发布版本的风险。这是 NVIDIA→AMD CI 覆盖差距审计的第四批,展现了团队对多平台支持的持续投入。
- 影响的测试覆盖范围:负载快照服务器集成、Gemma4 SWA Triton OOB 回归、统一基数树 KL 散度 full attention、Torch 分布式补丁。
- 风险标记:测试配套变更, CI 配置变更
关联脉络
- PR #25208 [AMD] ci: register first batch of 2-gpu tests for AMD: 同系列 AMD CI 覆盖审计的第一批
- PR #25939 [AMD] ci: register second batch of 2-gpu tests for AMD: 同系列 AMD CI 覆盖审计的第二批
- PR #27817 [AMD] ci: register third batch of 2-gpu tests for AMD: 同系列 AMD CI 覆盖审计的第三批
参与讨论