Files
esh-pfi-infrastructure/stacks/sglang/.env.example
T
vh 5f049cb4ad feat(sglang): stage vLLM-vs-SGLang bench stack on ana-ml2
SGLang 0.5.13 confirmed to support our formats on Blackwell sm_120
(compressed-tensors NVFP4 W4A4, fp8, modelopt_fp4, petit_nvfp4, fp4_e2m1 KV),
so the bench can be a real NVFP4 head-to-head. Parameterized compose (model/
quant/GPU via .env) + a common streaming load generator (bench.py: agg tok/s,
TTFT p50/p99, TPOT) so both engines are driven identically on an exclusive GPU.
Bench-oriented; promote to a real stack only if SGLang wins. Launch deferred
until the NVFP4 eval frees a GPU.
2026-06-12 22:40:26 -07:00

34 lines
1.3 KiB
Bash

# SGLang bench tunables. Copy to .env on ana-ml2 before deploying.
#
# Set SGLANG_MODEL + SGLANG_QUANT to match whatever vLLM config we're benching
# against (the format that wins Brokkr's eval is the production-relevant target).
SGLANG_VERSION=latest
SGLANG_PORT=30000
# EXCLUSIVE GPU for the bench (no co-tenants → fair numbers). Default 0; ensure
# the eval endpoints + any llama-swap hot-load are torn down / off this GPU first.
SGLANG_GPU_ID=0
# ── Model under test ── point at the SAME checkpoint vLLM serves ──────────────
# NVFP4 W4A4 (the Blackwell-relevant format):
SGLANG_MODEL=/aimodels/nvfp4/granite-4.1-8b-NVFP4-W4A4-test
SGLANG_QUANT=compressed-tensors
SGLANG_SERVED_NAME=granite-4.1-8b-nvfp4
#
# FP8 alternative (engine comparison on the current prod format):
# SGLANG_MODEL=ibm-granite/granite-4.1-8b-fp8
# SGLANG_QUANT=fp8
# SGLANG_SERVED_NAME=granite-4.1-8b
# KV cache dtype — match vLLM's fp8 for apples-to-apples (or fp4_e2m1 to test
# SGLang's FP4 KV, but then vLLM isn't comparable):
SGLANG_KV_DTYPE=fp8_e4m3
# Context length — match the vLLM endpoints (64k for the heavy-substrate bench):
SGLANG_CTX_LEN=65536
# Static memory fraction (SGLang's gpu-memory-utilization analog). On an
# exclusive 96GB card this can be high (0.85-0.90).
SGLANG_MEM_FRACTION=0.85