Analysis: CUDA graph eliminates kernel launch overhead (~10-20% for decode). At 32768, sequences >32K skip graph capture. At 65536, most competition workload sequences get graph acceleration. Memory: CUDA graph capture allocates one copy of all intermediate tensors at the max captured batch size. With max-num-seqs=1, this is one sequence's worth of tensors — small relative to model weights. Combined with V2 enabled for seq>8192 and threshold raised to 65536, the decode path is now: seq <= 8192: V1 compiled kernel (fastest) 8192 < seq <= 65536: V2 pytorch (single-bmm, good) seq > 65536: PyTorch fallback (rare at competition workload)
35 lines
709 B
YAML
35 lines
709 B
YAML
concurrency: 1
|
|
command:
|
|
- python3
|
|
- -m
|
|
- vllm.entrypoints.openai.api_server
|
|
- --model
|
|
- /model
|
|
- --served-model-name
|
|
- llm
|
|
- --max-model-len
|
|
- '100000'
|
|
- --gpu-memory-utilization
|
|
- '0.95'
|
|
- --trust-remote-code
|
|
- -tp
|
|
- '4'
|
|
- --max-num-seqs
|
|
- '1'
|
|
- --disable-log-requests
|
|
- --disable-frontend-multiprocessing
|
|
- --max-num-batched-tokens
|
|
- '16384'
|
|
- --enable-chunked-prefill
|
|
- --max-seq-len-to-capture
|
|
- '65536'
|
|
- --enable-auto-tool-choice
|
|
- --tool-call-parser
|
|
- qwen3_coder
|
|
- --reasoning-parser
|
|
- qwen3
|
|
- --enable-prefix-caching
|
|
env:
|
|
- name: VLLM_ENGINE_ITERATION_TIMEOUT_S
|
|
value: 3600
|