Prhub

#38317 [ROCm][CI] Enable hybrid chunked prefill test

原始 PR 作者 AndreasKaratzas 合并时间 2026-03-30 10:30 文件变更 2 提交数 4 评论 4 代码增减 +21 / -2

执行摘要

在 ROCm 平台上启用混合分块预填充测试,添加 MI325 GPU 的 CI 步骤。

根据PR描述,目的是'移除测试文件中的全局CUDA-only跳过,让测试在ROCm上运行',并'为nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8模型在ROCm上添加目标跳过,因为modelopt量化不在ROCm支持的量化列表中',以扩展ROCm硬件的测试覆盖和兼容性。

建议技术管理者关注此PR,作为ROCm平台测试扩展的示例,值得工程师精读以了解条件跳过策略和CI配置最佳实践,特别是对于多GPU环境。

讨论亮点

review中仅有tjtanaa的一条评论,涉及测试标记语法正确性:'Since the original condition is not current_platform.is_cuda() let's retain the check as not current_platform.is_cuda()'。作者AndreasKaratzas迅速响应'Done :)'并修改代码,确保条件一致,无其他争议。

实现拆解

实现分为两部分:1) 在.buildkite/test-amd.yaml中添加新的CI步骤,指定在4xMI325 GPU上运行test_hybrid_chunked_prefill.py测试,依赖相关源文件。2) 在tests/v1/e2e/test_hybrid_chunked_prefill.py中,移除全局@pytest.mark.skipif(not current_platform.is_cuda(), reason="CUDA not available"),并为NVIDIA Nemotron模型参数添加pytest.mark.skipif(not current_platform.is_cuda(), reason="modelopt quantization is supported only on CUDA")

文件 模块 状态 重要度
.buildkite/test-amd.yaml CI 配置 modified 3.0
tests/v1/e2e/test_hybrid_chunked_prefill.py 测试 modified 5.0

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

评论区精华

测试跳过条件的语法一致性 正确性

tjtanaa 建议在添加跳过标记时保留原始条件 not current_platform.is_cuda() 以保持一致。

结论:作者接受了建议,修改代码确保语法正确。 · 已解决

风险与影响

风险较低:1) 新增CI步骤可能增加资源消耗和运行时间,特别是多GPU环境;2) 特定模型跳过可能导致测试覆盖不完整,若未来ROCm支持modelopt量化需更新;3) 跨平台假设依赖外部量化支持列表,可能存在不准确性。

影响有限:对用户无直接影响;对系统提高了ROCm平台上混合分块预填充功能的测试覆盖率,有助于发现潜在问题;对团队优化了CI流程,支持更多硬件配置,促进跨平台开发。

CI 资源消耗 测试覆盖不完整

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

该PR在ROCm平台上启用了混合分块预填充测试,通过移除CUDA-only跳过标记和添加特定模型跳过条件,同时扩展CI配置以支持4xMI325 GPU测试环境,提高了vLLM在AMD硬件上的测试覆盖率。

功能与动机

动机源于扩展ROCm平台测试覆盖的需求。PR描述指出:'移除测试文件中的全局CUDA-only跳过,让测试在ROCm上运行',并'为NVIDIA Nemotron模型添加ROCm上的目标跳过,因为modelopt量化不在ROCm支持的量化列表中'。这旨在确保混合分块预填充功能在AMD硬件上的正确性和兼容性。

实现拆解

  • CI配置扩展:在.buildkite/test-amd.yaml中新增一个测试步骤,使用4xMI325 GPU运行test_hybrid_chunked_prefill.py测试,指定硬件和依赖文件。
  • 测试逻辑调整:在tests/v1/e2e/test_hybrid_chunked_prefill.py中:
    • 移除:@pytest.mark.skipif(not current_platform.is_cuda(), reason="CUDA not available")
    • 添加:为NVIDIA Nemotron模型参数添加pytest.mark.skipif(not current_platform.is_cuda(), reason="modelopt quantization is supported only on CUDA")

评论区精华

review中仅有一条讨论:tjtanaa 评论'Since the original condition is not current_platform.is_cuda() let's retain the check as not current_platform.is_cuda()',强调测试跳过条件的语法一致性。作者AndreasKaratzas迅速回应并修改代码,评论为'Done :)',确保条件正确设置。

风险与影响

风险:新增CI步骤可能增加资源消耗;特定模型跳过可能影响测试完整性;跨平台依赖外部量化支持列表。
影响:对用户无直接影响;对系统提升ROCm测试覆盖,有助于早期问题发现;对团队优化CI流程,支持多GPU测试。

关联脉络

与本PR相关的历史PR包括38450(ROCm CI修复)、38414(ROCm变体更新)、38108(ROCm测试修复),共同体现vLLm项目对ROCm平台的持续集成和测试扩展趋势。

参与讨论