🚀 The feature, motivation and pitch
Summary
SM120 (RTX 6000 Pro Blackwell, compute capability 12.0) is not recognized in the MXFP4 backend selection logic, causing fallback to Marlin instead of using native NVFP4 kernels.
Environment
- vLLM version: 0.13.0
- GPU: NVIDIA RTX 6000 Pro (Blackwell, SM120a)
- Compute Capability: (12, 0)
- Model: gpt-oss-120b (MXFP4 quantization)
Current Behavior
Startup log shows:
WARNING [marlin_utils_fp4.py:226] Your GPU does not have native support for FP4
computation but FP4 quantization is being used. Weight-only FP4 compression will
be used leveraging the Marlin kernel. This may degrade performance for compute-heavy workloads.
And:
INFO [mxfp4.py:161] Using Marlin backend
Root Cause
The MXFP4 backend selection in vllm/model_executor/layers/quantization/mxfp4.py only checks for SM100 family:
# Line 121-126
elif (
current_platform.is_device_capability_family(100) # Only matches SM10x
and has_flashinfer()
...
SM120 ((12, 0)) doesn't match is_device_capability_family(100) since it's a different major version.
Similarly, the Triton backend check excludes SM120:
Line 96: and (9, 0) <= current_platform.get_device_capability() < (11, 0)
Evidence of SM120 Kernel Support
The NVFP4 SM120 kernels ARE compiled and available in vLLM 0.13.0:
-> csrc/quantization/fp4/nvfp4_scaled_mm_sm120_kernels.cu
-> csrc/quantization/fp4/nvfp4_blockwise_moe_kernel.cu (with ENABLE_NVFP4_SM120)
-> Commit e502098 - "[Kernel] Add NVFP4 MoE CUTLASS support for SM120"
-> Commit c0dfc89 - "SM120 / NVFP4: add device guard and runtime SM dispatch"
The support check also returns True:
>>> from vllm._custom_ops import cutlass_scaled_mm_supports_fp4
>>> cutlass_scaled_mm_supports_fp4(120)
True
Expected Behavior
SM120 should use native NVFP4 kernels similar to SM100, not fall back to Marlin.
Suggested Fix
Add SM120 family detection to get_mxfp4_backend() in mxfp4.py:
elif (
(current_platform.is_device_capability_family(100) or
current_platform.is_device_capability_family(120))
and has_flashinfer()
...
Or create dedicated SM120 backend paths if the kernel interfaces differ.
Affected Hardware
- NVIDIA RTX 6000 Pro (Blackwell) - SM120
- NVIDIA RTX 5090/5080 (Blackwell) - SM120
- Other consumer/pro Blackwell cards using SM120/SM120a
Related Commits
- e502098 - [Kernel] Add NVFP4 MoE CUTLASS support for SM120
- c0dfc89 - SM120 / NVFP4: add device guard and runtime SM dispatch
- a00d889 - [EPLB] Support EPLB w/ NVFP4
Alternatives
No response
Additional context
No response
Before submitting a new issue...
🚀 The feature, motivation and pitch
Summary
SM120 (RTX 6000 Pro Blackwell, compute capability 12.0) is not recognized in the MXFP4 backend selection logic, causing fallback to Marlin instead of using native NVFP4 kernels.
Environment
Current Behavior
Startup log shows:
WARNING [marlin_utils_fp4.py:226] Your GPU does not have native support for FP4
computation but FP4 quantization is being used. Weight-only FP4 compression will
be used leveraging the Marlin kernel. This may degrade performance for compute-heavy workloads.
And:
INFO [mxfp4.py:161] Using Marlin backend
Root Cause
The MXFP4 backend selection in
vllm/model_executor/layers/quantization/mxfp4.pyonly checks for SM100 family:SM120 ((12, 0)) doesn't match is_device_capability_family(100) since it's a different major version.
Similarly, the Triton backend check excludes SM120:
Line 96:
and (9, 0) <= current_platform.get_device_capability() < (11, 0)Evidence of SM120 Kernel Support
The NVFP4 SM120 kernels ARE compiled and available in vLLM 0.13.0:
-> csrc/quantization/fp4/nvfp4_scaled_mm_sm120_kernels.cu
-> csrc/quantization/fp4/nvfp4_blockwise_moe_kernel.cu (with ENABLE_NVFP4_SM120)
-> Commit e502098 - "[Kernel] Add NVFP4 MoE CUTLASS support for SM120"
-> Commit c0dfc89 - "SM120 / NVFP4: add device guard and runtime SM dispatch"
The support check also returns True:
Expected Behavior
SM120 should use native NVFP4 kernels similar to SM100, not fall back to Marlin.
Suggested Fix
Add SM120 family detection to get_mxfp4_backend() in mxfp4.py:
Or create dedicated SM120 backend paths if the kernel interfaces differ.
Affected Hardware
Related Commits
Alternatives
No response
Additional context
No response
Before submitting a new issue...