Prhub

#44289 [XPU] skip unapplied UT in test_gpu_model_runner.py

原始 PR 作者 yma11 合并时间 2026-06-04 08:48 文件变更 1 提交数 2 评论 0 代码增减 +4 / -4

执行摘要

修复 XPU 下 GPU 模型 runner 测试跳过条件

XPU平台(如Intel GPU)不支持FlashInfer attention后端,导致原标记为仅在ROCm跳过的测试在XPU上运行失败。此变更将跳过条件从'如果为ROCm则跳过'改为'如果不是CUDA则跳过',以覆盖所有非NVIDIA GPU平台,保持CI的稳定性。

此PR是典型的平台兼容性修复,技术价值不高,但保证了CI流水线在XPU上的稳定性。建议快速合并,无需深入审查。感兴趣的读者可留意测试跳过条件的未来调整。

讨论亮点

该PR无任何review评论,仅由合并者jikunshang直接批准。无公开的技术讨论或权衡。

实现拆解

该PR仅修改一个测试文件,分两处调整 @pytest.mark.skipif 装饰器的条件。

  1. 修改 test_hybrid_attention_mamba_tensor_shapes 的跳过条件:将 current_platform.is_rocm() 替换为 not current_platform.is_cuda()
  2. 修改 test_mamba_cache_raises_when_max_num_seqs_exceeds_blocks 的跳过条件:同样将 current_platform.is_rocm() 替换为 not current_platform.is_cuda()

这两项调整均位于 tests/v1/worker/test_gpu_model_runner.py,不涉及其他源码、配置或基础设施变更。由于FlashInfer attention后端仅在NVIDIA CUDA上受支持,此变更使得在XPU、Intel GPU等非CUDA平台上自动跳过这些测试,从而避免不兼容导致的测试失败。

文件 模块 状态 重要度
tests/v1/worker/test_gpu_model_runner.py 测试 modified 4.01

关键符号

test_hybrid_attention_mamba_tensor_shapes test_mamba_cache_raises_when_max_num_seqs_exceeds_blocks

关键源码片段

tests/v1/worker/test_gpu_model_runner.py test-coverage

唯一修改的文件,调整了两个测试函数的跳过条件以适应 XPU 等非 CUDA 平台。

# tests/v1/worker/test_gpu_model_runner.py# 将原来的 is_rocm() 改为 not is_cuda(),使得在 CUDA 之外的平台上跳过这些测试
# 因为 FlashInfer attention backend 仅支持 NVIDIA CUDA。
@pytest.mark.skipif(
    not current_platform.is_cuda(),
    reason="Attention backend FLASHINFER is only supported on CUDA.",
)
def test_hybrid_attention_mamba_tensor_shapes():
    """..."""
    pass@pytest.mark.skipif(
    not current_platform.is_cuda(),
    reason="Attention backend FLASHINFER is only supported on CUDA.",
)
def test_mamba_cache_raises_when_max_num_seqs_exceeds_blocks():
    """..."""
    pass

评论区精华

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

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

风险与影响

风险极低。变更仅涉及测试跳过条件,不影响任何生产代码逻辑。主要风险是:如果未来FlashInfer后端在其他非CUDA平台(如ROCm、AMD)上得到支持,该跳过条件可能过于宽泛,导致相关测试被错误跳过。不过当前FlashInfer官方仅支持CUDA,因此此条件在未来一段时间内是合适的。

影响范围极小,仅影响test_gpu_model_runner.py中两个测试函数在非CUDA平台上的执行行为:

  • XPU/Intel GPU: 测试被跳过,避免FlashInfer不兼容导致的失败。
  • ROCm: 之前这些测试会因is_rocm()返回True而跳过;变更后,is_cuda()返回False,因此not is_cuda()为True,同样跳过,行为一致。
  • CUDA: is_cuda()返回True,not is_cuda()为False,测试正常执行,与之前相同。

因此,对用户和系统的影响是消除了XPU平台上的CI误报,提升了CI可靠性。

测试跳过条件可能过于宽泛

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论