diff --git a/python/sglang/srt/arg_groups/overrides.py b/python/sglang/srt/arg_groups/overrides.py index 597c19f098a1..04402f21aba3 100644 --- a/python/sglang/srt/arg_groups/overrides.py +++ b/python/sglang/srt/arg_groups/overrides.py @@ -1446,11 +1446,11 @@ def _moe_runner_backend_quant_constraints(view: Any) -> dict: if ( moe_runner_backend == "auto" and view.quantization == "modelopt_fp4" - and get_platform().is_sm120 + and (get_platform().is_sm120 or get_platform().is_sm110) ): moe_runner_backend = "flashinfer_cutlass" logger.info( - "Use flashinfer_cutlass as MoE runner backend on SM120 for " + "Use flashinfer_cutlass as MoE runner backend on SM110/SM120 for " "modelopt_fp4 (trtllm-gen MoE kernels are SM100-only)" ) if moe_runner_backend != view.moe_runner_backend: diff --git a/python/sglang/srt/layers/quantization/fp8_utils.py b/python/sglang/srt/layers/quantization/fp8_utils.py index 2c4a70be9fff..883af39a4c31 100755 --- a/python/sglang/srt/layers/quantization/fp8_utils.py +++ b/python/sglang/srt/layers/quantization/fp8_utils.py @@ -1009,6 +1009,9 @@ def initialize_fp8_gemm_config() -> None: backend = get_exec().kernel.fp8_gemm_runner_backend if backend == "auto" and get_platform().is_sm120: backend = "cutlass" + elif backend == "auto" and get_platform().is_sm110: + # DeepGEMM's block-FP8 kernel does not support SM110. + backend = "triton" backend = Fp8GemmRunnerBackend(backend) diff --git a/python/sglang/srt/runtime_context.py b/python/sglang/srt/runtime_context.py index a361146e76fa..a1920a115624 100644 --- a/python/sglang/srt/runtime_context.py +++ b/python/sglang/srt/runtime_context.py @@ -1776,6 +1776,7 @@ def pre_capture_activation_reserve_mb(gpu_mem: float | None) -> float: "is_sm90": "is_sm90_supported", "is_sm100": "is_sm100_supported", "is_sm100_or_sm110": "is_sm100_or_sm110_supported", + "is_sm110": "is_sm110_supported", "is_sm120": "is_sm120_supported", "is_blackwell": "is_blackwell_supported", "is_hopper_with_cuda_12_3": "is_hopper_with_cuda_12_3", diff --git a/python/sglang/srt/utils/common.py b/python/sglang/srt/utils/common.py index a05df0388836..b6ba5788d6cd 100644 --- a/python/sglang/srt/utils/common.py +++ b/python/sglang/srt/utils/common.py @@ -311,6 +311,11 @@ def _check_cuda_device_version( cuda_version=(12, 8), ) ) +is_sm110_supported = lru_cache(maxsize=1)( + partial( + _check_cuda_device_version, device_capability_majors=[11], cuda_version=(12, 8) + ) +) is_sm80_supported = lru_cache(maxsize=1)( partial( _check_cuda_device_version, device_capability_majors=[8], cuda_version=(11, 0)