89 Commits

Author SHA1 Message Date
Quantong Qiu
5d2f1b2d9a docs(envs): add envs README and track deployment guides
- Add envs/README.md explaining the directory purpose and usage rules.
- Update .gitignore to exclude only virtual env subdirectories under envs/,
  allowing deployment guide documents to be tracked.
- Track existing deployment docs:
  - SM120_DSV4_DEPLOYMENT_GUIDE.md
  - SM120_DSV4_DEPLOYMENT_ISSUES.md
  - VLLM_DSV4_SM120_FIX.md
2026-07-14 10:54:46 +00:00
Quantong Qiu
5405d002fc chore: remove legacy benchmark files and scripts
Delete obsolete files that are no longer maintained:
- experiments/legacy_bench_results/ (old benchmark reports and summaries)
- scripts/benchmark_dspark_0707/ (outdated dspark benchmark scripts)
- scripts/start_dsv4_dspark_8card.sh (deprecated deployment script)
2026-07-14 10:47:09 +00:00
Quantong Qiu
e0ae0715b1 feat(adaptive): add RESUME_RUN_ID resume support and rename DSL to OSL
- Add RESUME_RUN_ID env var for breakpoint resume in adaptive benchmarks.
  When set, the script reuses an existing result directory and skips
  already-tested (TP, DP, ISL, OSL) shapes based on adaptive_shapes.jsonl.
- Fix RUN_ID unbound variable in resume mode.
- Fix jq query to use -s (slurp) for jsonl files.
- Add resume skip logic to DRY_RUN mode as well.
- Rename DSL -> OSL across all adaptive benchmark files for consistency:
  - scripts/common/adaptive_bench_lib.sh
  - scripts/common/adaptive_concurrency.py
  - experiments/dsv4_h200_vllm_tp_dp_matrix/adaptive_config.env
  - experiments/dsv4_h200_vllm_tp_dp_matrix/run_adaptive_concurrency.sh
  - experiments/dsv4_h200_sglang_tp_dp_matrix/adaptive_config.env
  - experiments/dsv4_h200_sglang_tp_dp_matrix/run_adaptive_concurrency.sh
  - experiments/ADAPTIVE_CONCURRENCY_USAGE.md
2026-07-14 10:41:50 +00:00
iiGray
60826dda09 add run_adaptive_concurrency_add16 2026-07-13 17:26:33 +08:00
Root
a7f453b997 feat: add run_bench.sh and fix config for dsv4_pro6000_sglang_tp_dp_matrix
- Migrate run_bench.sh from dsv4_h200_sglang_tp_dp_matrix
- Add missing generate_scenarios.py, compare.py, matrix.json
- Fix MODEL_PATH to /root/data/models/ds_flash_v4
- Fix DATASET_PATH to local dummy_sharegpt.json
- Tune CONTEXT_LENGTH, MAX_RUNNING_REQUESTS, MEM_FRACTION_STATIC for RTX 6000D 83GB
- Exclude GPU 2 due to DRAM Uncorrectable ECC hardware error
2026-07-13 05:22:31 +00:00
Quantong Qiu
819850c4a1 Update README.md with new experiments and RTX 6000D platform
- Add all H200 experiments: TP/DP matrix, adaptive concurrency, custom bench,
  MTP vs default, long context matrix, 64k/256k probes
- Add RTX 6000D platform and experiments (sglang/vllm TP/DP adaptive)
- Update environment requirements section with RTX 6000D details
- Update platforms directory description to include RTX 6000D
2026-07-13 03:04:46 +00:00
Quantong Qiu
d904d663a4 Add dsv4_pro6000_vllm_tp_dp_matrix experiment for RTX 6000D
- vLLM adaptive concurrency benchmark adapted from H200 version
- Key changes:
  - Model path: /data/hf_models/DeepSeek-V4-Flash
  - Venv path: /root/.miniconda3/envs/sglang
  - Dataset path: /data/yy/sskj/datasets/
  - DSL renamed to OSL (Output Sequence Length)
- Includes: config.env, adaptive_config.env, run_adaptive_concurrency.sh,
  start_vllm_dp.sh, start_vllm_docker.sh
2026-07-13 02:59:33 +00:00
Quantong Qiu
372ff08eea Add master orchestrator script for sequential benchmark execution
- Implemented a bash script to run six benchmark experiments sequentially.
- Added features for fault tolerance, out-of-memory recovery, and checkpoint management.
- Included detailed logging for monitoring experiment progress and results.
- Integrated GPU memory cleanup checks before each experiment.
- Provided functionality to resume experiments from checkpoints.
2026-07-13 02:46:15 +00:00
Quantong Qiu
302d1a9822 Rename DSL to OSL (Output Sequence Length) in dsv4_pro6000 experiment
DSL -> OSL to better reflect the meaning: Output Sequence Length.
2026-07-13 02:28:11 +00:00
Quantong Qiu
8ebe963269 Add dsv4_pro6000_sglang_tp_dp_matrix experiment for RTX 6000D
- New experiment directory with adaptive concurrency benchmark for SGLang
- Platform config for 8x NVIDIA RTX 6000D 84GB
- Adapted from dsv4_h200_sglang_tp_dp_matrix with updated paths:
  - Model path: /data/hf_models/DeepSeek-V4-Flash
  - Venv path: /root/.miniconda3/envs/sglang
  - Dataset path: /data/yy/sskj/datasets/
2026-07-13 02:18:34 +00:00
Root User
cf7a12932e bench: add adaptive run heartbeat monitor 2026-07-11 13:04:35 +00:00
Root User
5e95cee1a0 bench: add adaptive concurrency search 2026-07-11 06:11:40 +00:00
Root User
d783143ddb vllm tp_dp_matrix: dockerize deployment and fix missing DOCKER_CLIENT_IMAGE export
- Run vLLM server inside vllm/vllm-openai:latest container on H200.
- Run benchmark client inside lmsysorg/sglang:latest using
  sglang.bench_serving --backend vllm, matching the sglang reference.
- Use RUNTIME_BASE for self-contained logs/pids/tmp instead of hardcoded
  /data/user1/yy paths.
- Update model path to /data3/hf_models/DeepSeek-V4-Flash.
- Sample only low/high concurrency endpoints to match sglang matrix.
- Fix docker 'invalid reference format' caused by DOCKER_CLIENT_IMAGE not
  being exported to bash -c subshells used by run_bench_serving.
- Add offline dummy ShareGPT dataset for random benchmark mode.
2026-07-11 06:11:40 +00:00
Quantong Qiu
4d5b6a77ca Add custom benchmark setup for vLLM TP=8 on dsv4 H200
- Create configuration file for the custom benchmark experiment.
- Implement result parsing script to handle JSONL outputs from the benchmark.
- Develop run script to orchestrate the benchmark execution, including server management and health checks.
- Add server start script to launch a single vLLM service on all available GPUs.
2026-07-10 09:40:10 +00:00
yy-fighting
cd539c4d7d chore: add tsv files to .gitignore 2026-07-10 09:20:41 +00:00
yy-fighting
b5d409ea3d chore: add experiments/*/runtime/ to .gitignore 2026-07-10 09:19:41 +00:00
yy-fighting
a388358b37 fix(sglang-tp-dp-matrix): export DOCKER_IMAGE/USE_DOCKER_CLIENT and add persistent container support
- Fix docker invalid reference format by exporting DOCKER_IMAGE and
  USE_DOCKER_CLIENT to bash subshells (run_bench_serving)
- Add persistent container mode: start_sglang_container.sh +
  run_sglang_in_container.sh for faster config switching
- Add README.md with setup and migration guide
2026-07-10 09:15:04 +00:00
Quantong Qiu
db00c1b1ac Add custom benchmark setup for vLLM TP=2 on dsv4_h200
- Create configuration file for dsv4_h200_vllm_tp2_custom_bench.
- Implement result parsing script to handle JSONL outputs from bench_client.py.
- Develop run_bench.sh script to orchestrate multi-service vLLM benchmarking.
- Add start_server.sh script to launch independent vLLM services on specified GPU pairs.
2026-07-10 09:06:10 +00:00
yy-fighting
e62ab7c970 sglang tp_dp_matrix: export MODEL_PATH and RESULT_BASE for bash -c subshells
export -f only exports the function definition, not the variables it
references. MODEL_PATH and RESULT_BASE were empty inside timeout bash -c
subshells, causing docker run -v ::ro invalid spec. Add explicit export
for all variables used by run_bench_serving().
2026-07-10 04:57:22 +00:00
yy-fighting
58a3616872 sglang tp_dp_matrix: export DATASET_PATH for bash -c subshells
export -f only exports the function definition, not the variables it
references. DATASET_PATH was empty inside timeout bash -c subshells,
causing docker run -v ::ro invalid spec even after the dynamic vol_args
fix. Add explicit export after sourcing config.env.
2026-07-10 04:07:14 +00:00
yy-fighting
605b976fb8 sglang tp_dp_matrix: fix empty DATASET_PATH causing docker invalid spec
When DATASET_PATH is empty, -v ::ro is passed to docker run, which
produces 'invalid spec: ::ro: empty section between colons'. Build
the volume args dynamically and only add the dataset mount when the
path is non-empty.
2026-07-10 03:13:11 +00:00
yy-fighting
4ea6e92b42 sglang tp_dp_matrix: fix timeout calling bash function (rc=127)
timeout(1) cannot execute shell functions directly; it needs a standalone
command. Export run_bench_serving via export -f and wrap both warmup and
scenario runs in bash -c so the function is visible in the subshell.
2026-07-10 02:51:29 +00:00
yy-fighting
938b2f1e88 workflow: document what to commit for each experiment
Add rule 10: commit experiment code together with final results.json
and .md reports; do not commit logs/raw_outputs/gpu_logs. Also update
the pre-commit checklist accordingly.
2026-07-10 02:22:30 +00:00
yy-fighting
666c583844 vllm tp_dp_matrix: add final results (report, results.json, comparison, scenarios)
Source code was already committed; this adds only the structured final
artifacts from run 20260709-152419_matrix. Raw jsonl/logs/gpu_logs remain
ignored per .gitignore.
2026-07-10 02:20:36 +00:00
yy-fighting
06cfab20d2 sglang tp_dp_matrix: keep 1M ISL (128 Y, 256 P) in scope 2026-07-10 02:18:34 +00:00
yy-fighting
f7f4e928d9 sglang tp_dp_matrix: exclude 1M ISL from mandatory matrix per current scope 2026-07-10 02:17:38 +00:00
yy-fighting
7852dd2040 sglang tp_dp_matrix: run SGLang server/client in Docker on H200
- config.env: switch to /data/models/DeepSeek-V4-Flash, USE_DOCKER=1,
  CONTEXT_LENGTH=1M, CONCURRENCY_SAMPLES=2, add DATASET_PATH.
- start_sglang_docker.sh: add --ipc host --shm-size 16g for NCCL.
- start_sglang_dp.sh: use --model-path for Docker CLI.
- run_bench.sh: mount dataset into client container and pass --dataset-path
to avoid HF download on offline nodes.
2026-07-10 02:17:00 +00:00
Root User
db419e17b8 dsv4_h200_sglang_tp_dp_matrix: sample only low/high concurrency, use RUNTIME_BASE for self-contained runtime files 2026-07-09 15:36:03 +00:00
yy-fighting
90d1738605 Merge branch 'main' of https://gitee.com/yy-fighting/sskj 2026-07-09 15:24:08 +00:00
yy-fighting
31731ebb75 dsv4_h200_vllm_tp_dp_matrix: export CONCURRENCY_SAMPLES so generate_scenarios.py sees it 2026-07-09 15:23:57 +00:00
Root User
8d61e682cd add dsv4_h200_sglang_tp_dp_matrix experiment (Docker-based SGLang TP×DP matrix) 2026-07-09 14:49:31 +00:00
yy-fighting
0ae1ea0a9f dsv4_h200_vllm_tp_dp_matrix: fix output naming, parser/compat, add Docker startup option 2026-07-09 12:33:52 +00:00
yy-fighting
0aee540c67 dsv4_h200_vllm_tp_dp_matrix: single server per config, OOM/restart handling, DRY_RUN/GRID_LIMIT, include 1M 2026-07-09 10:50:59 +00:00
yy-fighting
329d4c3975 dsv4_h200_vllm_tp_dp_matrix: use vLLM internal DP LB, drop proxy/supervisor 2026-07-09 10:28:50 +00:00
yy-fighting
59dbadb110 add dp_proxy for vLLM DP, write kv_cache_analysis.md, fix DP bench port 2026-07-09 10:19:30 +00:00
yy-fighting
5898d578ed dsv4_h200_vllm_tp_dp_matrix: allow MATRIX_FILE env override 2026-07-09 10:02:45 +00:00
yy-fighting
39326eaf4a remove partial smoke test artifacts from killed run 2026-07-09 10:02:03 +00:00
yy-fighting
15b5489535 dsv4_h200_vllm_tp_dp_matrix: use minimal official vLLM args, no EP, Y-only, exclude 1M 2026-07-09 10:01:51 +00:00
yy-fighting
04a384b265 add dsv4_h200_vllm_tp_dp_matrix experiment (TP×DP matrix with Y-only mode, 1M excluded) 2026-07-09 09:55:18 +00:00
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
Quantong Qiu
a1da95ef44 Scale P800 long-context matrix to concurrency=1 for stability
- P800 INT8 cannot sustain >1 concurrent long-context request without OOM;
  set all scenarios to concurrency=1.
- Keep max_running=2 because max_running=1 triggers req_to_token_pool
  allocation failures in this image.
- Reduce 64k max_context_len to 72000 (65536 + 4096 + pad).
- Make run_bench.sh resilient to container death: detect dead container and
  skip remaining scenarios in the group instead of crashing the orchestrator.
- Update README to document the concurrency limitation.
2026-07-09 05:59:28 +00:00
Quantong Qiu
46e05a57a4 Re-enable chunked prefill for P800 long-context matrix stability
Without chunked prefill the server OOM/crashes (exit 137) during or
immediately after concurrent 64k-context scenarios. Speculative decoding
remains disabled as requested.
2026-07-09 05:13:04 +00:00
Quantong Qiu
59f480b1bc Disable chunked prefill and speculative decoding in P800 long-context matrix 2026-07-09 04:47:59 +00:00
Quantong Qiu
90eecc4ede Add P800 long-context matrix experiment (64k/128k) for DeepSeek-V4-Flash-INT8
- New experiment: experiments/dsv4_p800_long_context_matrix/
- Single backend: sglang-xpu in Docker on Kunlun P800
- Context groups: 64k (max_context_len=80000, max_running=10) and
  128k (max_context_len=140000, max_running=5)
- Scenarios: concurrency sweeps x output lengths 256/1024/4096
- Parameterized start_sglang.sh enforces max_running >= 2 to avoid
  P800 INT8 req_to_token_pool allocation failures
- Reuses proven P800 INT8 environment, NSA/EAGLE settings, and
  bench_serving invocations from dsv4_p800_max_context_length
2026-07-09 04:45:04 +00:00
Quantong Qiu
b1b5f50f56 results(p800): max context length exploration run 20260709-033134
P800 SGLang INT8 max supported input length: 131072 tokens.
262144 tokens fails during warmup (server connection lost, likely OOM).
2026-07-09 04:08:40 +00:00
Quantong Qiu
06549d8faf cleanup(p800): remove local debugging artifacts from dsv4_p800_sglang/results
These were failed/intermediate smoke-test runs created while debugging the
managed server startup. Keep the repository clean; new runs can be reproduced
with experiments/dsv4_p800_sglang/run_bench.sh.
2026-07-09 03:30:58 +00:00
Quantong Qiu
3694614dd9 feat(p800): add max context length exploration experiment
Add experiments/dsv4_p800_max_context_length/ to find the longest input
context that P800 SGLang INT8 can serve for DeepSeek-V4-Flash-INT8.

- Docker-based server start with dynamic --context-length.
- Single-request, single-output-token probes for each candidate length.
- Records success/failure, server args, and metrics per length.
- Generates results.json and report.md summarizing the max supported length.
- Smoke-tested at 4096 tokens successfully.
2026-07-09 03:30:09 +00:00
Quantong Qiu
8324d944f2 fix(p800): define RUN_ID/RESULT_ROOT/LOG_DIR in start_server.sh
start_server.sh referenced LOG_DIR and RESULT_ROOT without defining them,
causing an unbound-variable failure under set -u. Mirror the initialization
from run_bench.sh so the script can run standalone.
2026-07-09 02:53:38 +00:00
yy-fighting
7e614fb702 Add DSpark backend to long-context matrix experiment
- Add start_dspark.sh with --spec-method dspark --spec-tokens 5
- Add BACKENDS env var to run only selected backends
- Fix client/backend mapping for DSpark (bench client uses vllm, parser uses vllm)
- Add three-way compare.py for sglang/vllm/dspark
- Reuse existing sglang/vllm results from 20260708-100016
- Add DSpark long-context results and comparison
2026-07-09 02:36:57 +00:00
yy-fighting
278653b6a6 Add three-way comparison: MTP vs DSpark vs default 2026-07-09 01:42:46 +00:00