Prhub

#27589 Unskip Marlin NVFP4 tests

原始 PR 作者 b8zhong 合并时间 2026-06-17 02:58 文件变更 3 提交数 3 评论 7 代码增减 +0 / -6

执行摘要

取消 Marlin NVFP4 测试的 CI 跳过标记

PR body 引用之前的 PR #27161,指出测试因编译超时被跳过;现在基础条件改善后希望恢复测试以保障质量。

建议合入。这是一个低风险、高回报的测试恢复变更,能增强 NVFP4 Marlin 后端的 CI 覆盖。未来可考虑将超时测试移到 nightly 以减少 PR 等待时间。

讨论亮点

PR 无 review 评论,仅作者和 CI 机器人交互。作者两次尝试 /rerun-test 修改测试路径,最终成功定位到正确的测试文件路径(test/registered/jit/test_gptq_marlin.py 等)。之后合并 main 分支以引入修复(可能指 PR #27605),并通过 /tag-and-rerun-ci 触发完整流水线。

实现拆解

  1. 移除 pytest/unittest skip 装饰器:在 test/registered/jit/test_gptq_marlin.pytest/registered/jit/test_moe_wna16_marlin.pytest/manual/models/test_nvidia_nemotron_3_nano_archived.py 中共移除 6 行 @pytest.mark.skip@unittest.skip 标记。
  2. 保留硬件约束跳过条件:仅移除通用的编译超时跳过,保留 @pytest.mark.skipif(not (is_sm80_supported() or is_sm90_supported())) 等 CUDA 架构过滤,确保测试只在支持的 GPU 上执行。
  3. 覆盖三类测试:GPTQ Marlin 的 NVFP4 变换与数值精度测试、MoE WNA16 Marlin 的 fused 内核测试(含非门控 ReLU2 和 padded intermediate 场景)、以及 Nemotron-3-Nano 模型级 NVFP4 Marlin 端到端评测。
文件 模块 状态 重要度
test/registered/jit/test_gptq_marlin.py 内核测试 modified 3.25
test/registered/jit/test_moe_wna16_marlin.py 内核测试 modified 3.75
test/manual/models/test_nvidia_nemotron_3_nano_archived.py 模型评测 modified 3.32

关键符号

test_nvfp4_marlin_support_and_scale_transforms_sm80_sm90 test_nvfp4_marlin_dense_matches_dequant_reference test_fused_marlin_moe_non_gated_relu2 test_fused_marlin_moe_nvfp4_non_gated_padded_intermediate_launches test_fused_marlin_moe_nvfp4_non_gated_padded_numeric_test

关键源码片段

test/registered/jit/test_gptq_marlin.py test-coverage

移除 `test_nvfp4_marlin_support_and_scale_transforms_sm80_sm90` 和 `test_nvfp4_marlin_dense_matches_dequant_reference` 的 @pytest.mark.skip,恢复 NVFP4 变换和数值精度测试。

# 变更前:
# @pytest.mark.skip(reason="Skip, test pass locally but compiling takes too long in CI")
# 变更后:直接移除,保留 skipif
@pytest.mark.skipif(
    not (is_sm80_supported() or is_sm90_supported()),
    reason="NVFP4 Marlin fallback tests require CUDA SM8X/SM9X",
)
@pytest.mark.parametrize("dtype", [torch.float16, torch.bfloat16])
def test_nvfp4_marlin_support_and_scale_transforms_sm80_sm90(dtype):
    # ... 测试逻辑不变
    pass

评论区精华

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

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

风险与影响

低风险。变更仅移除跳过标记,测试本身已在本地验证通过,且保留硬件过滤条件不会在不适配的 GPU 上执行。即使测试再次超时也不会影响生产功能。

CI 流程:Mariln NVFP4 相关测试将重新在 CI 中运行,可能增加 Stage B 测试总时长,但有助于尽早发现编译或量化路径的回归。用户:无直接影响。团队:确保 Marlin 后端的 NVFP4 量化路径持续得到验证。

测试回归风险低 可能增加 CI 耗时

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论