Prhub

#39730 [ROCm][CI] Fix condition for `test_per_token_group_quant_fp8_packed`

vllm-project/vllm · 作者 micah-wil · 合并时间 2026-04-15 00:14

分析状态 已生成
文件变更 1提交数 2 · 评论 1
代码增减 +4 / -1
rocm ci quantization v1

执行摘要

修复 ROCm 平台下量化测试条件,确保 DeepGEMM 相关测试正确跳过。

PR body明确指出:自PR #39547引入test_per_token_group_quant_fp8_packed测试后,该测试在ROCm平台上失败,因为测试的功能在ROCm上不可用。因此需要更新pytest.skip条件,使该测试在非CUDA平台上被跳过。

该PR变更简单直接,无需深入精读。值得关注的是项目正逐步统一使用current_platform.is_cuda()替代torch.cuda.is_available()进行平台检测,这反映了对多平台支持基础设施的持续改进。

讨论亮点

review中只有一条实质性讨论:AndreasKaratzas建议更新跳过原因,指出这是DeepGEMM测试,应更准确地说明"DeepGEMM is not supported on this platform"。作者在后续commit中采纳了该建议,将原因更新为"DeepGEMM not available on this platform"。其他reviewer均表示认可。

实现拆解

仅修改了tests/kernels/quantization/test_per_token_group_quant.py文件中的一处测试装饰器:1. 导入current_platform模块;2. 将@pytest.mark.skipif条件从not torch.cuda.is_available()改为not current_platform.is_cuda();3. 根据review建议将跳过原因从"CUDA not available"更新为"DeepGEMM not available on this platform"。

文件 模块 状态 重要度
tests/kernels/quantization/test_per_token_group_quant.py tests/kernels/quantization modified 5.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

关键符号

test_per_token_group_quant_fp8_packed

评论区精华

测试跳过原因准确性 测试

AndreasKaratzas 建议将跳过原因从 "CUDA not available" 改为更准确的 "DeepGEMM is not supported on this platform",因为测试的是 DeepGEMM 功能而非通用 CUDA 可用性。

结论:作者采纳建议,在后续 commit 中将原因更新为 "DeepGEMM not available on this platform"。 · 已解决

风险与影响

风险极低:1. 仅修改测试跳过条件,不影响生产代码逻辑;2. 使用current_platform.is_cuda()比torch.cuda.is_available()更符合项目平台抽象层设计,理论上更准确;3. 变更范围极小(5行改动),回归风险可控。

影响有限:1. 对用户无直接影响,仅影响内部CI;2. 修复了ROCm平台CI失败问题,确保跨平台测试套件稳定性;3. 推广了平台抽象层current_platform的使用,有助于统一平台检测逻辑。

无生产代码变更

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

该PR修复了ROCm平台上因新增DeepGEMM量化测试导致的CI失败问题,通过将测试跳过条件从torch.cuda.is_available()改为current_platform.is_cuda()并更新跳过原因,确保测试在非CUDA平台上被正确跳过。这是一个针对测试基础设施的小幅调整,风险极低,主要影响跨平台CI稳定性。

功能与动机

PR body明确指出:自PR #39547引入test_per_token_group_quant_fp8_packed测试后,该测试在ROCm平台上失败,因为测试的功能(DeepGEMM)在ROCm上不可用。因此需要更新pytest.skip条件,使该测试在非CUDA平台上被跳过,以维护CI的稳定性。

实现拆解

仅修改了tests/kernels/quantization/test_per_token_group_quant.py文件:

  1. 导入平台抽象层:添加from vllm.platforms import current_platform
  2. 更新跳过条件:将@pytest.mark.skipif(not torch.cuda.is_available(), reason="CUDA not available")改为@pytest.mark.skipif(not current_platform.is_cuda(), reason="DeepGEMM not available on this platform")

关键代码变更:

from vllm.platforms import current_platform@pytest.mark.skipif(
    not current_platform.is_cuda(), reason="DeepGEMM not available on this platform"
)
def test_per_token_group_quant_fp8_packed(...):
    ...

评论区精华

review中只有一条实质性讨论:

AndreasKaratzas: "Can we also modify the reason? I see that this is a DeepGEMM test. So probably let's update this and mention something like 'DeepGEMM is not supported on this platform'"

作者在后续commit中采纳了该建议,将跳过原因从通用的"CUDA not available"更新为更准确的"DeepGEMM not available on this platform",体现了对测试意图的清晰传达。

风险与影响

风险分析

  • 仅修改测试装饰器,不影响任何生产代码逻辑,回归风险几乎为零。
  • 使用current_platform.is_cuda()torch.cuda.is_available()更符合项目平台抽象层设计,理论上能更准确地检测CUDA平台。

影响分析

  • 对终端用户无直接影响,仅影响内部CI流程。
  • 修复了ROCm平台CI失败问题,确保跨平台测试套件稳定性。
  • 推广了平台抽象层current_platform的使用,有助于统一项目中的平台检测逻辑。

关联脉络

  • 关联PR #39547:根据PR body,本PR修复的测试是在PR #39547中新增的,该测试引入了DeepGEMM功能,但在ROCm平台上不可用,导致CI失败。
  • 技术趋势:从torch.cuda.is_available()current_platform.is_cuda()的变更,反映了项目在多平台支持(如ROCm、XPU)背景下,对平台检测基础设施的持续标准化努力,这与近期多个涉及平台适配的PR(如#39776、#38061)一脉相承。

参与讨论