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

  1. Run on Hopper or newer GPUs (compute capability >= 9.0, e.g. H100/H200)
  2. Read the full '; '-joined error list — fix every listed item, not just the first
  3. 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

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


AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28). Data as JSON: /api/errors/db8382b8b952630b. Report an issue: GitHub.