ISL = input sequence length, OSL = output sequence length, c = concurrency. Throughput in tok/s, latency in ms.
| Framework | Quantization | Progress | ISL1024/OSL1024 c=8 tput (tok/s) |
TTFT p50 (ms) | ITL p50 (ms) | ISL1024/OSL1024 c=32 tput (tok/s) |
ISL4096/OSL1024 c=8 tput (tok/s) |
|---|---|---|---|---|---|---|---|
| vLLM | GPTQ-Int4 fastest | 9/9 ✓ | 58.3 | 6490 | 130 | 104.1 | 52.3 |
| vLLM | FP8 | 9/9 ✓ | 54.2 | 12022 | 135 | 96.9 | 44.5 |
| SGLang | FP8 | 9/9 ✓ | 48.5 | 6132 | 159 | 81.5 | 43.8 |
| vLLM | BF16 | 9/9 ✓ | 32.2 | 5785 | 243 | 61.2 | 30.5 |
| SGLang | BF16 | 9/9 ✓ | 31.1 | 6325 | 250 | 59.8 | 29.0 |
| SGLang | GPTQ-Int4 | blocked | No image with both Qwen3.5 support + SM 12.1 Marlin kernels | ||||
| TRT-LLM | BF16 / FP8 / GPTQ-Int4 | blocked | qwen3_5 architecture unsupported in TRT-LLM 1.3.0rc11 | ||||
gptq_marlin: Marlin kernels compiled for SM80 only — no SM 12.1 kernel imagegptq: requires --dtype float16 which breaks Qwen3.5's Mamba causal_conv1d layers (conv_states dtype mismatch)compressed-tensors: rejected — model config declares gptq, must matchlmsysorg/sglang:spark (SM 12.1 branch): qwen3_5 architecture unknown (transformers version too old)1.3.0rc10: no SM 12.1 kernels at all (PR #7937 not yet merged)1.3.0rc11: SM 12.1 kernels work (19.6GB weights loaded, GPU kernels launched) but load_single_module fails on model.layers.N.mlp.mlp.gate_up_proj — qwen3_5 weight mapping missingPhase B applies optimization techniques one-by-one to the Phase A winner (vLLM GPTQ-Int4) and measures the delta: