Prhub

#46650 [AMD][CI] Fix Pipeline + Context Parallelism test group

原始 PR 作者 aarushjain29 合并时间 2026-06-25 11:23 文件变更 1 提交数 5 评论 0 代码增减 +7 / -6

执行摘要

修复 ROCm 上 Pipeline+Context Parallelism 测试失败

修复 ROCm CI 中 test_pp_cudagraph[FLASH_ATTN-2-JackFram/llama-160m] 测试失败。FLASH_ATTN 后端在 ROCm 上不可用,FlashAttentionImpl.forward() 会因 get_flash_attn_version() 返回 None 触发 AssertionError

值得合并,修复了 CI 阻塞问题,设计简洁,平台兼容性好。

讨论亮点

PR 无 review 讨论,仅有 claude bot 自动评论和 AndreasKaratzas 的批准。

实现拆解

  1. 修改参数化列表:在 tests/distributed/test_pp_cudagraph.py 中,将 ATTN_BACKEND 参数化从固定 ["FLASH_ATTN"] 改为条件表达式:ROCm 上为 [None],否则为 ["FLASH_ATTN"]
  2. 调整函数签名ATTN_BACKEND 类型从 LiteralString 改为 str | None,以支持 None 值。
  3. 条件添加参数:仅当 ATTN_BACKEND 不为 None 时才添加 --attention-backend 参数。在 ROCm 上不传递后端参数,由平台自动选择 TRITON_ATTN 后端。
  4. 移除未使用导入:删除了不再需要的 LiteralString 导入,新增 current_platform 导入用于平台检测。
文件 模块 状态 重要度
tests/distributed/test_pp_cudagraph.py 测试脚本 modified 5.32

关键符号

test_pp_cudagraph

关键源码片段

tests/distributed/test_pp_cudagraph.py test-coverage

唯一的变更文件,修改测试参数化逻辑,根据平台选择注意力后端,修复 ROCm 上的测试失败。

# tests/distributed/test_pp_cudagraph.py
import pytest
from vllm.platforms import current_platform
from ..utils import compare_two_settings, create_new_process_for_each_test
​
​
@pytest.mark.parametrize(
    "PP_SIZE, MODEL_NAME",
    [
        (2, "JackFram/llama-160m"),
    ],
)
@pytest.mark.parametrize(
    "ATTN_BACKEND",
    # ROCm 上不强制指定后端,由平台自动选择 TRITON_ATTN
    [None] if current_platform.is_rocm() else ["FLASH_ATTN"],
)
@create_new_process_for_each_test()
def test_pp_cudagraph(
    PP_SIZE: int,
    MODEL_NAME: str,
    ATTN_BACKEND: str | None,
):
    cudagraph_args = [
        "--dtype",
        "float16",
        "--pipeline-parallel-size",
        str(PP_SIZE),
        "--distributed-executor-backend",
        "mp",
    ]
    # On ROCm, defer to the platform attention selector instead of forcing a backend.
    if ATTN_BACKEND is not None:
        cudagraph_args.append(f"--attention-backend={ATTN_BACKEND}")
​
    eager_args = cudagraph_args + ["--enforce-eager"]
​
    compare_two_settings(MODEL_NAME, eager_args, cudagraph_args)

评论区精华

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

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

风险与影响

低风险。变更仅限于测试文件,且通过平台检测保护,不影响 CUDA 行为。ROCm 上未指定后端时,平台会默认选择 TRITON_ATTN,该后端已被验证支持 CUDA 图捕获。

仅影响 ROCm CI 中的 test_pp_cudagraph 测试,修复了测试失败,使其在 ROCm 上能正常通过。CUDA 用户无影响。

测试专用变更 平台条件分支

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论