Prhub

#24572 [AMD] Register 5 server-style 1-GPU tests for AMD PR CI

原始 PR 作者 michaelzhang-ai 合并时间 2026-05-13 13:45 文件变更 5 提交数 5 评论 3 代码增减 +10 / -5

执行摘要

为 AMD CI 注册 5 个服务端 1-GPU 测试

Register 5 server-style 1-GPU PR-CI tests on AMD's stage-b-test-1-gpu-small-amd suite. All 5 tests are already running on NVIDIA per-commit CI; they use only Triton attention / CPU torch / mocks / default small models — none of FA3, FlashInfer, ModelOpt, Marlin, EAGLE, GDN/KDA kernels, or NSA-FP8 paths that already have AMD exclusions.

值得合并。这是一次规范的CI测试注册实践:明确筛选条件、逐个验证、缩小范围。对于关注跨平台CI基础设施的读者,可以学习如何安全地将NVIDIA测试迁移到AMD平台。

讨论亮点

由于这是纯测试注册变更,review评论极少,只有amd-bot自动回复CI状态和gemini-code-assist的配额提示。但提交历史揭示了重要设计决策:初始从12个测试开始,作者在AMD CI上验证后删除了6个有ROCm兼容性问题的测试,最终只保留5个确认为安全的测试。这一决策体现了对AMD平台兼容性的谨慎态度,确保不会引入假阳性失败。

实现拆解

  1. 测试筛选:从12个候选测试中筛选出5个可以在AMD上安全运行的测试。这些测试仅依赖Triton attention、CPU torch、mock对象或默认小模型,不涉及FA3、FlashInfer、ModelOpt等已知AMD不兼容的路径。

  2. 添加AMD CI注册:在5个测试文件(test_parallel_state.pytest_input_embeds_chunked.pytest_http2_server.pytest_embed_overrides.pytest_radix_cache_hit.py)中,导入 register_amd_ci,并在已有 register_cuda_ci 调用之后添加对应的 register_amd_ci(est_time=..., suite="stage-b-test-1-gpu-small-amd")。具体改动模式:修改import行和新增一行注册调用。

  3. 验证:在AMD MI300上运行CI并确认5个测试全部PASS(CI run 25480011932)。同时确认未对其他CI产生负面影响。

  4. 移除不可用的候选:在提交历史中,最初有12个测试被注册,但后续移除了6个因ROCm不兼容而失败的测试,最终只保留5个。

文件 模块 状态 重要度
test/registered/distributed/test_parallel_state.py 并行状态 modified 3.92
test/registered/input_embedding/test_input_embeds_chunked.py 输入嵌入 modified 3.92
test/registered/openai_server/basic/test_http2_server.py HTTP2 服务器 modified 3.92
test/registered/prefill_only/test_embed_overrides.py 嵌入覆盖 modified 3.92
test/registered/radix_cache/test_radix_cache_hit.py Radix 缓存 modified 3.92

关键源码片段

test/registered/distributed/test_parallel_state.py test-coverage

注册分布式并行状态测试到 AMD CI,该测试使用纯 mock 验证组构建逻辑,无 GPU 需求。

"""
Tests for distributed parallel state initialization with mocked backend.
"""
from unittest.mock import Mock, patch
import pytest# 同时导入 AMD 和 NVIDIA 的 CI 注册函数
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci# 注册到 NVIDIA CI(已存在)
register_cuda_ci(est_time=8, suite="stage-b-test-1-gpu-small")
# 注册到 AMD CI(新增行)
register_amd_ci(est_time=8, suite="stage-b-test-1-gpu-small-amd")parallel_state = pytest.importorskip("sglang.srt.distributed.parallel_state")

评论区精华

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

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

风险与影响

风险极低:仅修改测试注册文件,不涉及任何生产代码。所有测试已在NVIDIA CI上稳定运行,且只使用CPU/mock/默认小模型,不依赖AMD不兼容的GPU kernel。主要风险是AMD CI环境本身的不稳定性(PR body提及已有pre-existing failures),但与本PR无关。

对用户无直接影响。对系统的影响是扩大了AMD PR CI的测试覆盖,确保AMD MI300等平台的基本服务器功能(健康检查、模型信息、完成接口、Radix缓存命中、分块输入嵌入等)在CI中得到验证。对团队来说,减少了AMD平台回归漏测的风险,并统一了NVIDIA和AMD的测试标准。

仅测试文件变更 依赖 AMD CI 环境稳定 无生产代码改动

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论