sgl-project/sglang · error · ValueError
Unsupported compute capability: {major}.{minor}
Error message
Unsupported compute capability: {major}.{minor} What it means
get_arch_constraints maps GPU compute capability to (min SMs per partition, alignment multiple): CC 7.x->(2,2), 8.x->(4,2), 9.x (Hopper)->(8,8). Anything else (e.g. Blackwell 10.x, or old 6.x) has no validated constraints and is rejected.
Source
Thrown at python/sglang/srt/multiplex/pdmux_context.py:67
manual_divisions=manual_divisions,
split_forward_token_budget=raw.get("split_forward_token_budget", 65536),
decode_bs_divisor=raw.get("decode_bs_divisor", 36),
)
def get_arch_constraints(compute_capability):
major, minor = compute_capability
# green context constraints for different architectures
if major == 6:
return 1, 1 # min_per_part, multiple
elif major == 7:
return 2, 2
elif major == 8:
return 4, 2
elif major == 9 and minor >= 0:
return 8, 8
else:
raise ValueError(f"Unsupported compute capability: {major}.{minor}")
def divide_sm(total_sms, compute_capability, groups):
"""
:param total_sms: total sm count on a single GPU
:param compute_capability: (major, minor)
:return: SM partition group(prefill sm, decode sm)
"""
min_per_part, multiple = get_arch_constraints(compute_capability)
possible_values = [
x
for x in range(min_per_part, total_sms - min_per_part + 1, multiple)
if x >= total_sms - x and total_sms - x >= 16
]
if not possible_values:
raise ValueError(
f"No valid partitions found for total SMs {total_sms} "
f"with constraints (min per part: {min_per_part}, multiple: {multiple})"View on GitHub (pinned to 0132848349)
Solutions
- Disable PD multiplexing (don't init_pdmux) on unsupported GPUs
- Upgrade sglang to a version with constraints for your architecture (check release notes/changelog)
- If experimental, patch get_arch_constraints with a validated (min, multiple) pair for your CC and report upstream
Defensive patterns
Strategy: fallback
Validate before calling
major, _ = torch.cuda.get_device_capability() assert major in (7, 8, 9), 'pdmux unsupported on this GPU architecture'
Type guard
def pdmux_supported(device) -> bool:
return device.major in (7, 8, 9) if device else False Prevention
- Gate pdmux activation on a compute-capability allowlist
- Track sglang release notes for new-architecture support
When it happens
Trigger: Running PD multiplexing on a GPU with compute capability outside 7/8/9 — e.g. a Blackwell B100/B200 (CC 10.0) or a pre-Volta card.
Common situations: Trying the new pdmux feature on newly released hardware before sglang adds a constraints entry; misreported capability from a patched driver/CUDA.
Related errors
- cutedsl_bf16_gemm requires an SM10x GPU
- dsv3_fused_a_gemm requires SM90 (Hopper) or later
- fp8_blockwise_scaled_mm JIT kernel requires SM120 (Blackwell
- nvfp4_gemm_swiglu_nvfp4_quant requires SM100, got SM{major}{
- Unsupported VAE encode output for SANA-WM first-frame condit
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/6d233a3659328c70.
Report an issue: GitHub.