Files
project_6/computility-run.yaml
Claude 8e9c22f6c1 feat: CCCL-derived 3-tier decode dispatch + SM=16 prefill tuning + multi-step scheduling
paged_attn.py:
- Remove use_v1=True hardcode that forced all decode through ixf_F V1
- Wire up paged_attention_v2_triton.py as Tier 2 decode path for seq_len > 8192
- 3-tier dispatch: V1 (short) → Triton V2 (long) → PyTorch (fallback)
- Triton V2 uses CCCL compound-reduce pattern (summary_statistics.cu)
  with GQA broadcast (6x KV read reduction for Qwen3.6)
- This is the single highest-impact change: Output TPS is 83% of score

prefix_prefill.py:
- CCCL scan-tuning-informed block sizes for BI-V100 (SM=16, 48KB SMEM)
- BI-V100 path: BLOCK=64 NUM_WARPS=4 (vs BLOCK=128 NUM_WARPS=8 on A100+)
- Matches muh/tuning/tuning_scan.cuh bi100_lookback_4B_o4 pattern
- Fewer warps = less register pressure = higher occupancy on 16 SMs

computility-run.yaml:
- Add --num-scheduler-steps=8: batch 8 decode iterations per Python call
  (cuts scheduler overhead ~8x, directly improves Output TPS)
- Add --preemption-mode=recompute (cheaper than swap on BI-V100 HBM)
- Add TRITON_CACHE_DIR for JIT warmup persistence
- Add TRITON_PRINT_AUTOTUNING=0 (use hardcoded CCCL configs, skip autotune)

Competition impact estimate:
- Tier 2 Triton V2 replaces PyTorch fallback for 8K-100K contexts → ~5-10x decode speedup
- Multi-step scheduling → ~20-30% Output TPS improvement
- SM=16 block tuning → ~10-15% Input TPS improvement
2026-08-03 08:28:38 +00:00

57 lines
1.9 KiB
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.9'
- --trust-remote-code
- -tp
- '4'
- --max-num-seqs
- '8'
- --disable-log-requests
- --disable-frontend-multiprocessing
- --max-num-batched-tokens
- '8192'
- --enable-chunked-prefill
- --max-seq-len-to-capture
- '32768'
- --enable-auto-tool-choice
- --tool-call-parser
- qwen3_coder
- --reasoning-parser
- qwen3
- --enable-prefix-caching
# CCCL-derived optimizations:
# Multi-step scheduling reduces Python dispatch overhead per decode iteration.
# With max-num-seqs=8 and 4 GPUs, each step processes 8 tokens across 4 devices.
# num-scheduler-steps=8 batches 8 decode iterations before returning to Python,
# cutting scheduler overhead by ~8x. This directly improves Output TPS (83% weight).
- --num-scheduler-steps
- '8'
# Recompute is cheaper than swap on BI-V100 (limited HBM bandwidth for swap).
# When a sequence is preempted, recomputing the prefix is faster than
# swapping KV blocks to/from CPU memory over PCIe.
- --preemption-mode
- recompute
env:
- name: VLLM_ENGINE_ITERATION_TIMEOUT_S
value: 3600
# Cache Triton JIT compilations across restarts.
# Competition platform rebuilds the container each run — prewarmed cache
# saves 30-60s of first-request latency.
- name: TRITON_CACHE_DIR
value: /tmp/triton_cache
# Disable Triton autotuning at runtime (use hardcoded CCCL-derived configs).
# Autotuning wastes 5-10s per kernel on first call and the BI-V100 optimal
# configs are already baked into prefix_prefill.py and paged_attention_v2_triton.py.
- name: TRITON_PRINT_AUTOTUNING
value: '0'