Prhub

#43703 [CI][ROCm] Don't skip MoRI-IO Connector tests

原始 PR 作者 simondanielsson 合并时间 2026-05-29 17:06 文件变更 1 提交数 3 评论 0 代码增减 +4 / -16

执行摘要

修复 ROCm CI 中 MoRI 单元测试被错误跳过的问题

PR 描述指出:MoRIIO 连接器单元测试在 AMD CI runner 上被跳过,即使主机有 RNIC,因为 ibv_devinfo 命令在 vLLM ROCm 镜像中未安装。这些单元测试仅验证连接器功能,而非 RDMA 传输,因此可以使用任意 MoRI 后端。

可供快速合并,无重大问题。建议 CI 相关人员了解变更背景,并关注后续 e2e 测试是否按 PR 描述使用 RDMA 后端。

讨论亮点

PR 没有 review 评论。两位 reviewer(AndreasKaratzas 和 tjtanaa)均批准,无讨论。

实现拆解

  1. 删除 _rdma_available() 函数及相关导入:移除 import subprocess 和依赖 ibv_devinfo_rdma_available() 函数及模块级变量 rdma_available
  2. 移除两个 @pytest.mark.skipif 装饰器:从 test_register_kv_cachestest_moriio_handshake_returns_metadata 中移除 RDMA 可用性条件跳过。
  3. create_vllm_config 中添加 backend: xgmi 配置:将 kv_connector_extra_config{"read_mode": read_mode} 改为 {"read_mode": read_mode, "backend": "xgmi"},并添加注释说明原因:xGMI 后端不依赖 RNIC,适合 CI 环境。
  4. 更新模块级测试跳过条件:保留 pytestmarkcurrent_platform.is_rocm() and mori_available 的判断。
文件 模块 状态 重要度
tests/v1/kv_connector/unit/test_moriio_connector.py KV 连接器 modified 5.29

关键符号

_rdma_available

关键源码片段

tests/v1/kv_connector/unit/test_moriio_connector.py test-coverage

唯一变更文件,修改了 RDMA 可用性检查逻辑和连接器后端配置,以解决 CI 跳过问题。

# tests/v1/kv_connector/unit/test_moriio_connector.pyimport importlib.util
import uuid
from unittest.mock import MagicMock, patchimport pytest
import torch
import zmq# ... 其他 import ...aiter_available = importlib.util.find_spec("aiter") is not None
mori_available = importlib.util.find_spec("mori") is not None# 模块级别跳过条件:仅在 ROCm 且安装了 mori 包时执行测试
pytestmark = pytest.mark.skipif(
    not (current_platform.is_rocm() and mori_available),
    reason="MoRIIOs are only available on ROCm with aiter package installed",
)def create_vllm_config(...):
    # ... 其他配置 ...
    # 注释说明:这些单元测试仅验证连接器 setup,不涉及真实 RDMA 传输
    # (MoRI 包装器被 mock),因此可以使用任意后端而不影响测试有效性。
    # 使用 xGMI 以避免在 CI 中要求 RNIC。
    kv_transfer_config = KVTransferConfig(
        kv_connector="MoRIIOConnector",
        kv_role=role,
        enable_permute_local_kv=enable_permute_local_kv,
        kv_connector_extra_config={"read_mode": read_mode, "backend": "xgmi"},
    )
    return VllmConfig(...)

评论区精华

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

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

风险与影响

风险极低。变更仅涉及测试配置和跳过条件,不触及任何生产代码或核心逻辑。唯一风险是:若未来 MoRIIO 连接器的单元测试依赖于 RDMA 后端特定的行为,使用 xGMI 可能导致测试与真实环境不完全一致。但 PR 描述和注释已明确说明当前测试仅验证连接器管理功能,不涉及 RDMA 传输,且未来 e2e 测试将使用 RDMA 后端。

影响范围:仅限 ROCm CI 上的 MoRIIO 连接器单元测试。影响程度低:

  • CI 可靠性提升:确保 5 个被测用例在具备 RNIC 的 ROCm CI runner 上不再被跳过。
  • 无用户影响:不变更生产运行时行为。
  • 无性能影响:测试不涉及性能关键路径。
  • 无兼容性问题:xGMI 后端在 MoRIIO 库中已存在。
仅测试变更 低风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论