{"record":{"id":"db8382b8b952630b","repo":"sgl-project/sglang","slug":"experimental-sgl-marlin-configuration-is-unsupport","errorCode":null,"errorMessage":"experimental_sgl_marlin configuration is unsupported:  + \"; \".join(errors)","messagePattern":"experimental_sgl_marlin configuration is unsupported:  \\+ \"; \"\\.join\\(errors\\)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/lora/marlin_lora_temp/policy.py","lineNumber":102,"sourceCode":"    if moe_ep_size < 1:\n        errors.append(f\"moe_ep_size must be positive, got {moe_ep_size}\")\n    elif num_experts is not None and num_local_experts is not None:\n        if num_experts % moe_ep_size != 0 or num_local_experts != (\n            num_experts // moe_ep_size\n        ):\n            errors.append(\n                \"num_local_experts must equal num_experts / moe_ep_size, got \"\n                f\"{num_local_experts}, {num_experts}, and {moe_ep_size}\"\n            )\n\n    if device_capability[0] < 9:\n        errors.append(\n            \"CUDA compute capability 9.0 or newer is required, \"\n            f\"got {device_capability[0]}.{device_capability[1]}\"\n        )\n\n    if errors:\n        raise ValueError(\n            \"experimental_sgl_marlin configuration is unsupported: \" + \"; \".join(errors)\n        )\n\n\ndef use_post_reduce_down_delta(\n    *, run_lora: bool, routed_scaling_factor: float, num_tokens: int\n) -> bool:\n    \"\"\"Whether the down delta may be accumulated after the base top-k reduce.\"\"\"\n\n    return run_lora and routed_scaling_factor == 1.0 and num_tokens <= 2048\n","sourceCodeStart":84,"sourceCodeEnd":113,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/lora/marlin_lora_temp/policy.py#L84-L113","documentation":"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.","triggerScenarios":"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+).","commonSituations":"Testing the experimental marlin kernels on A100/A6000 hardware that lacks the required Hopper+ features the kernels are built for.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"import torch\nmajor, _ = torch.cuda.get_device_capability()\nassert (major, 0) >= (9, 0), f'need CUDA cc >= 9.0, got {major}.0'","typeGuard":null,"tryCatchPattern":"try:\n    init_experimental_sgl_marlin_lora(...)\nexcept ValueError as e:\n    errors = str(e).split(': ', 1)[1].split('; ')  # fix every listed item\n    raise","preventionTips":["Gate experimental marlin usage on Hopper+ hardware","Treat the aggregated message as a checklist: every item must be resolved"],"tags":["gpu","compute-capability","marlin","hardware","experimental","sglang"],"backgroundTag":"unsupported-hardware","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}