A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 14, 22:35 UTC
[CI] Initial tests for SM100 Blackwell runner (#21877)
Signed-off-by: mgoin <mgoin64@gmail.com>
Michael Goin committed
Aug 1, 2025 at 19:18 UTC
88faa466d788e25082c02dc9688931d7976361f9
3 files changed
+30
-14
.buildkite/test-pipeline.yaml
+21
-3
@@ -647,13 +647,31 @@ steps:
647
- label: Blackwell Test
648
working_dir: "/vllm-workspace/"
649
gpu: b200
650
- optional: true
650
+ # optional: true
651
source_file_dependencies:
652
- - csrc/
653
- - vllm/
652
+ - csrc/quantization/fp4/
653
+ - csrc/attention/mla/
654
+ - csrc/quantization/cutlass_w8a8/moe/
655
+ - vllm/model_executor/layers/fused_moe/cutlass_moe.py
656
+ - vllm/model_executor/layers/fused_moe/flashinfer_cutlass_moe.py
657
+ - vllm/model_executor/layers/fused_moe/flashinfer_cutlass_prepare_finalize.py
658
+ - vllm/v1/attention/backends/flashinfer.py
659
+ - vllm/compilation/fusion.py
660
commands:
661
- nvidia-smi
662
- python3 examples/offline_inference/basic/chat.py
663
+ # Attention
664
+ # num_heads2 broken by https://github.com/flashinfer-ai/flashinfer/issues/1353
665
+ - pytest -v -s tests/kernels/attention/test_flashinfer.py -k 'not num_heads2'
666
+ - pytest -v -s tests/kernels/attention/test_flashinfer_trtllm_decode_attention.py
667
+ - pytest -v -s tests/kernels/test_cutlass_mla_decode.py
668
+ # Quantization
669
+ - pytest -v -s tests/kernels/quantization/test_cutlass_scaled_mm.py -k 'fp8'
670
+ - pytest -v -s tests/kernels/quantization/test_nvfp4_quant.py
671
+ - pytest -v -s tests/kernels/quantization/test_nvfp4_scaled_mm.py
672
+ - pytest -v -s tests/kernels/moe/test_nvfp4_moe.py
673
+ # Fusion
674
+ - pytest -v -s tests/compile/test_fusion_all_reduce.py
675
676
##### 1 GPU test #####
677
##### multi gpus test #####
tests/compile/test_fusion_all_reduce.py
+9
-6
@@ -136,12 +136,15 @@ class TestAllReduceFusedAddRMSNormStaticQuantFP4Model(torch.nn.Module):
136
137
138
@multi_gpu_test(num_gpus=2)
139
-@pytest.mark.parametrize("test_model", [
140
- TestAllReduceRMSNormModel,
141
- TestAllReduceFusedAddRMSNormModel,
142
- TestAllReduceFusedAddRMSNormStaticQuantFP8Model,
143
- TestAllReduceFusedAddRMSNormStaticQuantFP4Model,
144
-])
139
+@pytest.mark.parametrize(
140
+ "test_model",
141
+ [
142
+ TestAllReduceRMSNormModel,
143
+ TestAllReduceFusedAddRMSNormModel,
144
+ TestAllReduceFusedAddRMSNormStaticQuantFP8Model,
145
+ # TODO: Enable with torch==2.8.0
146
+ # TestAllReduceFusedAddRMSNormStaticQuantFP4Model,
147
+ ])
148
@pytest.mark.parametrize("batch_size", [8])
149
@pytest.mark.parametrize("seq_len", [8])
150
@pytest.mark.parametrize("hidden_size", [16])
tests/kernels/quantization/test_cutlass_scaled_mm.py
-5
@@ -559,8 +559,6 @@ def test_cutlass_fp8_group_gemm(num_experts: int, per_act_token: bool,
559
m_a_scales = m_g if per_act_token else 1
560
n_b_scales = n_g if per_out_ch else 1
561
562
- print("shape:", m_g, n_g, k_g)
563
-
562
# Create group-specific A and B (FP8) and output (FP16/FP32)
563
a_g = to_fp8(torch.randn((m_g, k_g), device=device))
564
b_g = to_fp8(torch.randn((n_g, k_g), device=device).t())
@@ -639,7 +637,4 @@ def test_cutlass_fp8_group_gemm(num_experts: int, per_act_token: bool,
637
for g in range(num_experts):
638
baseline = baseline_tensors[g]
639
c = out_tensors_stacked[expert_offsets[g]:expert_offsets[g + 1]]
642
- print(baseline)
643
- print(c)
644
- print("*")
640
torch.testing.assert_close(c, baseline, rtol=1e-2, atol=5e-4)