sskj/experiments/dsv4_h200_vllm_dspark_vs_default
yy-fighting 1482601ae5 Add num_prompts = 5×concurrency convention and update all experiments
- Document the rule in docs/EXPERIMENT_GUIDE.md section 7
- Update all config.env SCENARIOS to follow the 5x rule
- Migrate dsv4_h200_sglang, dsv4_h200_vllm, dsv4_p800_sglang
  from global NUM_PROMPTS to per-scenario num_prompts
- Keep long-context phase2 as exception (low counts documented)
- Add legacy 3-field fallback in run_bench.sh loops
2026-07-09 09:26:41 +00:00
..

DSV4 H200 vLLM+DSpark vs vLLM default 对比实验

在 8x NVIDIA H200 上,用统一控制变量对比 vLLM 开启 DSpark 投机解码vLLM 默认配置 的 TTFT / TPOT / 吞吐表现。

目的

你之前的观察是:开启 DSpark 后 TTFT 比默认 vLLM 更长。这个实验把两个配置放在同一套场景下重测,确认现象并量化差异,为后续分析根因提供数据。

每次 server 启动的完整命令行参数会写入 results/<RUN_ID>/<backend>/results.jsonconfig.server_args,方便在 P800 等其他平台复现时保持参数一致。

控制变量

维度 DSpark Default
硬件 8x H200TP=8全部 8 张卡 同上
后端 vllm serve --spec-method dspark --spec-tokens 5 普通 vllm serve
压测客户端 sglang.bench_serving --backend vllm 同上
场景矩阵 5 个场景完全一致 同上
KV cache fp8 fp8
max_model_len 32768 32768
max_num_seqs 256 256

DSpark 使用独立的 DeepSeek-V4-Flash-DSpark checkpointdefault 使用标准的 DeepSeek-V4-Flash。这是 DSpark 方案本身带来的差异, unavoidable。

场景矩阵(全部测 5 个)

Concurrency Input len Output len Num prompts
1 512 256 32
32 512 256 128
128 512 256 128
1 4000 512 32
32 4000 512 64

快速运行

bash experiments/dsv4_h200_vllm_dspark_vs_default/run_bench.sh

结果保存在 experiments/dsv4_h200_vllm_dspark_vs_default/results/<RUN_ID>/

results/<RUN_ID>/
├── dspark/
│   ├── results.json
│   ├── report.md
│   └── raw_outputs/      # gitignored
├── default/
│   ├── results.json
│   ├── report.md
│   └── raw_outputs/      # gitignored
├── comparison.md
└── logs/

文件说明

文件 作用
config.env 模型路径、端口、虚拟环境、场景矩阵
start_dspark.sh 启动带 DSpark 投机解码的 vLLM server
start_default.sh 启动普通 vLLM server
run_bench.sh 总 orchestratorDSpark → default → 对比报告
parse_backend.py 解析单个 backend 的 raw jsonl 为 results.json + report.md
compare.py 读取两个 backend 结果,生成 TTFT 聚焦的 comparison.md

环境

  • DSpark server: /data/user1/yy/envs/vllm-dspark
  • Default server: /data/user1/yy/envs/vllm
  • Benchmark client: /data/user1/yy/envs/sglang