sgl-project/sglang · error · ValueError
experimental_sgl_marlin configuration is unsupported: + ";
Error message
experimental_sgl_marlin configuration is unsupported: + "; ".join(errors)
What it means
Aggregated startup/runtime contract validation for the experimental SGLang Marlin runner: collect all violated requirements (e.g. CUDA compute capability < 9.0, i.e. pre-Hopper GPUs) into an errors list and raise a single ValueError listing them joined by '; '. Called from init_experimental_sgl_marlin_lora.
Source
Thrown at python/sglang/srt/lora/marlin_lora_temp/policy.py:102
if moe_ep_size < 1:
errors.append(f"moe_ep_size must be positive, got {moe_ep_size}")
elif num_experts is not None and num_local_experts is not None:
if num_experts % moe_ep_size != 0 or num_local_experts != (
num_experts // moe_ep_size
):
errors.append(
"num_local_experts must equal num_experts / moe_ep_size, got "
f"{num_local_experts}, {num_experts}, and {moe_ep_size}"
)
if device_capability[0] < 9:
errors.append(
"CUDA compute capability 9.0 or newer is required, "
f"got {device_capability[0]}.{device_capability[1]}"
)
if errors:
raise ValueError(
"experimental_sgl_marlin configuration is unsupported: " + "; ".join(errors)
)
def use_post_reduce_down_delta(
*, run_lora: bool, routed_scaling_factor: float, num_tokens: int
) -> bool:
"""Whether the down delta may be accumulated after the base top-k reduce."""
return run_lora and routed_scaling_factor == 1.0 and num_tokens <= 2048
View on GitHub (pinned to 0132848349)
Solutions
- Run on Hopper or newer GPUs (compute capability >= 9.0, e.g. H100/H200)
- Read the full '; '-joined error list — fix every listed item, not just the first
- If stuck on older hardware, use the standard MoE/LoRA path instead of experimental_sgl_marlin
Defensive patterns
Strategy: validation
Validate before calling
import torch
major, _ = torch.cuda.get_device_capability()
assert (major, 0) >= (9, 0), f'need CUDA cc >= 9.0, got {major}.0' Try / catch
try:
init_experimental_sgl_marlin_lora(...)
except ValueError as e:
errors = str(e).split(': ', 1)[1].split('; ') # fix every listed item
raise Prevention
- Gate experimental marlin usage on Hopper+ hardware
- Treat the aggregated message as a checklist: every item must be resolved
When it happens
Trigger: Initializing the experimental marlin LoRA path on hardware or a config that violates its contract — most commonly a GPU with compute capability below 9.0 (A100 = 8.0, H100 = 9.0+).
Common situations: Testing the experimental marlin kernels on A100/A6000 hardware that lacks the required Hopper+ features the kernels are built for.
Related errors
- experimental_sgl_marlin LoRA requires --lora-use-virtual-exp
- experimental_sgl_marlin EP requires --moe-a2a-backend none
- experimental_sgl_marlin LoRA requires --lora-use-virtual-exp
- experimental_sgl_marlin LoRA requires --lora-backend triton
- experimental_sgl_marlin EP requires trivial expert placement
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/db8382b8b952630b.
Report an issue: GitHub.