# SGLang on RTX 5090 (sm_120), Qwen3.8-27B, 2026-08-20 # Image: lmsysorg/sglang:qwen38-27b (0.0.0.dev0+qwen38.27b.g561c8f3) # Model: gittensor-model-hub/Qwen3.8-27B-NVFP4-RTX5090 (ModelOpt NVFP4 W4A4, FP8 KV) # Draft: gittensor-model-hub/Qwen3.8-27B-DSpark-NVFP4 (DSPARK, block-size 7, modelopt_fp4) # concbench.py, 800 max_tokens, merge_intervals prompt # --- SGLang + DSpark (speculative; build clamps max_running_requests to 2) --- N=1 agg=227.3 per-req=227.3 p50=2.83s (643 tok/2.83s) <-- single-stream champion N=2 agg=505.0 per-req=252.6 p50=2.51s (1270 tok/2.51s) <-- N=2 champion (spec + batch compound) N=4 agg=520.5 per-req=173.5 p50=5.34s (queues past the 2-slot DSpark cap) # coherence (thinking off): "lambda x: x**2" -> clean. Strict acceptance = target's exact output. # --- SGLang no-spec (continuous batching, max-running-requests 8, 32K ctx) --- N=1 agg=84.7 per-req=84.7 p50=7.70s N=2 agg=167.5 per-req=83.8 p50=9.29s N=4 agg=326.8 per-req=81.7 p50=8.05s N=8 agg=638.3 per-req=83.9 p50=8.50s (flat per-req = textbook continuous batching, no spec) # Boot ~40-54s (FlashInfer SM120 FP4 autotune cache shipped in image). ~29 GiB resident. # DSpark is single-stream/low-concurrency by design: the qwen38-27b build caps DSpark at bs=2.