Skip to content

Sync dsv4-fp4-b200-trt recipes with B200 agg frontier config#1699

Open
qiaoxj07 wants to merge 10 commits into
mainfrom
sync-dsv4-fp4-b200-trt-0608-config
Open

Sync dsv4-fp4-b200-trt recipes with B200 agg frontier config#1699
qiaoxj07 wants to merge 10 commits into
mainfrom
sync-dsv4-fp4-b200-trt-0608-config

Conversation

@qiaoxj07

@qiaoxj07 qiaoxj07 commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

What

Sync the B200 DeepSeek-V4-Pro aggregated frontier configs into the single-node TensorRT-LLM recipes. The non-MTP recipe carries the MTP0 settings; the MTP recipe carries the MTP settings.

Changes

benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt.sh (MTP0)

  • Worker envs (all overridable): TRTLLM_SERVER_DISABLE_GC=1, TRTLLM_WORKER_DISABLE_GC=1, NCCL_GRAPH_MIXING_SUPPORT=0, MIMALLOC_PURGE_DELAY=0, PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True.
  • kv_cache_config.free_gpu_memory_fraction: 0.9 (TP / no DP-attn) / 0.7 (DP-attn), was 0.50.
  • attention_dp_config: batching_wait_iters 0 → 30, drop timeout_iters.
  • stream_interval 10 → 100; moe_config.use_low_precision_moe_combine: true.
  • max_num_tokens drops the OSL term: ISL + 256 (output tokens are emitted one at a time, not in the prefill chunk).
  • MOE_BACKEND made overridable (default TRTLLM).

benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt_mtp.sh (MTP)

Same as above, plus:

  • DP-attn free_gpu_memory_fraction = 0.6.
  • enable_lm_head_tp_in_adp: true on the DP-attn path.
  • speculative_config uses max_draft_len; default level 2 → 3 (overridable via TRTLLM_DSV4_MTP_NUM_NEXTN_LAYERS).
  • max_num_tokens = ISL + (draft+1)*batch + 256 (drops OSL; keeps the speculative-verification headroom).

Deliberate non-changes

  • cuda_graph_config / max_batch_size left CONC-derived (per request).
  • max_seq_len kept floored at ≥ 8192 — headroom for server-side chat-template tokens on the openai-chat path.

Validation

  • bash -n passes on both recipes.
  • Generated YAML for all four paths (MTP0/MTP × TP/DP) parses as valid YAML.

Note

Low Risk
Benchmark and CI matrix tuning only; no application runtime or auth/data-path changes, though results comparability shifts with the new image and sweep bounds.

Overview
Aligns B200 DeepSeek-V4 TensorRT-LLM single-node benchmarks with the aggregated frontier: bumps the container image to feat-deepseek_v4-c185066 and retunes dsv4_fp4_b200_trt.sh / dsv4_fp4_b200_trt_mtp.sh (GC/alloc env defaults, higher KV-cache fractions by DP path, stream_interval 100, low-precision MoE combine, DP batching_wait_iters 30 without timeout_iters, and max_num_tokens formulas that no longer add OSL).

The non-MTP script can switch MoE to MEGAMOE_DEEPGEMM at very high concurrency on 1k ISL; the MTP script adds concurrency/ISL-dependent MoE backend, draft length, max_draft_len instead of num_nextn_predict_layers, and enable_lm_head_tp_in_adp on DP-attn. nvidia-master.yaml tightens DP-attn concurrency sweep upper bounds for the base TRT config and adjusts MTP sweep ranges; perf-changelog.yaml documents the change.

Reviewed by Cursor Bugbot for commit e707884. Bugbot is set up for automated code reviews on this repo. Configure here.

qiaoxj07 added 4 commits June 9, 2026 13:11
Sync the local B200 DeepSeek-V4-Pro aggregated frontier configs
(deepseek-v4-pro-agg-202606, 0608-B200) into the TensorRT-LLM single-node
recipes and document the provenance in the sweep config.

dsv4_fp4_b200_trt.sh (from the MTP0 blocks):
- Add worker tuning envs from env_vars (worker_env_var + gen_worker_env_var):
  TRTLLM_SERVER_DISABLE_GC, TRTLLM_WORKER_DISABLE_GC, NCCL_GRAPH_MIXING_SUPPORT,
  MIMALLOC_PURGE_DELAY, PYTORCH_CUDA_ALLOC_CONF (all overridable). The
  user-specific TLLM_AUTOTUNER_CACHE_PATH is intentionally omitted.
- kv_cache free_gpu_memory_fraction: 0.9 (TP) / 0.7 (DP-attn), was 0.50.
- attention_dp_config: batching_wait_iters 0 -> 30, drop timeout_iters.
- stream_interval 10 -> 100; moe_config use_low_precision_moe_combine: true.
- Make MOE_BACKEND overridable (default TRTLLM).

dsv4_fp4_b200_trt_mtp.sh (from the MTP blocks): same as above, with DP-attn
free_gpu_memory_fraction 0.6, enable_lm_head_tp_in_adp: true on the DP-attn
path, and default MTP level 2 -> 3.

cuda_graph_config / max_batch_size and the max_seq_len / max_num_tokens sizing
are kept as-is (the latter floored for random-range-ratio safety). The MTP field
stays num_nextn_predict_layers (repo/image convention) rather than the
spreadsheet's max_draft_len.
…NFIG

- Remove the 0608-B200 provenance comments from the recipes and nvidia-master.yaml.
- In dsv4_fp4_b200_trt_mtp.sh, emit enable_lm_head_tp_in_adp from within the
  DP-attn ATTENTION_DP_CONFIG block instead of a separate variable, so the
  heredoc line matches the non-MTP recipe idiom. Generated YAML is unchanged.
…y concurrency

Sweep (nvidia-master.yaml, dsv4-fp4-b200-trt-mtp):
- 1k1k DP conc-end 512 -> 1024; 8k1k DP conc-end 128 -> 256, so the MTP sweep
  reaches the top speculative frontier points. (conc=2048 / 8k1k conc=256 mtp0
  points are produced by the MTP0 sweep, which already covers them.)

Recipes: pick MoE backend / MTP level per concurrency to match the frontier,
since the single-node search-space cannot pass them per entry.
- dsv4_fp4_b200_trt.sh: MEGAMOE_DEEPGEMM for short ISL at conc >= 2048 (else TRTLLM).
- dsv4_fp4_b200_trt_mtp.sh: MEGAMOE_DEEPGEMM for short ISL at conc >= 512;
  MTP draft length steps 3 -> 2 for long ISL at conc >= 128.
All overridable via MOE_BACKEND / TRTLLM_DSV4_MTP_NUM_NEXTN_LAYERS.
- dsv4_fp4_b200_trt_mtp.sh: speculative_config field num_nextn_predict_layers
  -> max_draft_len (matches the agg config / deployed image).
- max_num_tokens drops the OSL term in both recipes (output tokens are emitted
  one at a time, not in the prefill chunk): ISL + 256 (MTP0) and
  ISL + (MTP+1)*batch + 256 (MTP, keeps the speculative-verification headroom).
  max_seq_len stays floored at >= 8192 as headroom for server-side chat-template
  tokens on the openai-chat path.
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! For vLLM & SGLang, please ensure that your recipes is similar to the official vLLM recipes and/or the SGLang cookbook

If it is not, please create a PR first before we can merge your single node PR into the master branch. Let's ensure that the documentation is first class such that the entire ML community can benefit from your hard work! Thank you

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. If re-running failed jobs is attempted, PR authors are responsible for ensuring it passes. See GitHub's docs on re-running failed jobs: https://docs.github.com/en/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs#re-running-failed-jobs-in-a-workflow

As a rule of thumb, generally, PR authors should request a review & get a PR approval from the respective companies' CODEOWNERS before requesting a review from core maintainers.

If additional help is needed, PR authors can reach out to core maintainers over Slack.

Oseltamivir and others added 2 commits June 10, 2026 10:37
Bump the dsv4-fp4-b200-trt and dsv4-fp4-b200-trt-mtp images from
feat-deepseek_v4-9aa3715 to feat-deepseek_v4-c185066, and add a
perf-changelog entry covering the image bump and the B200 agg
frontier config sync already in this PR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Oseltamivir added a commit that referenced this pull request Jun 10, 2026
Covers the dsv4-fp4-b300-trt / -mtp image bump to feat-deepseek_v4-c185066
and the B300 agg frontier recipe sync (PR #1703, B300 analog of #1699).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e707884. Configure here.

if [[ "$ISL" -le 1024 && "$CONC" -ge 512 ]]; then
MOE_BACKEND="${MOE_BACKEND:-MEGAMOE_DEEPGEMM}"
else
MOE_BACKEND="${MOE_BACKEND:-TRTLLM}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MOE threshold exceeds sweep maximum

Medium Severity

The MTP recipe switches MOE_BACKEND to MEGAMOE_DEEPGEMM only when ISL ≤ 1024 and CONC ≥ 512, but this PR caps DP-attn conc-end at 256 for both 1k and 8k ISL in nvidia-master.yaml, so automated sweeps never satisfy the condition and always use TRTLLM, diverging from the B300 frontier pattern the block was copied from.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit e707884. Configure here.

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants