Skip to content

dsv4-fp4-b300-sglang: align env vars to GB300#1682

Open
yhyang201 wants to merge 16 commits into
mainfrom
align-b300-sglang-env-to-gb300
Open

dsv4-fp4-b300-sglang: align env vars to GB300#1682
yhyang201 wants to merge 16 commits into
mainfrom
align-b300-sglang-env-to-gb300

Conversation

@yhyang201

@yhyang201 yhyang201 commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Align B300 single-node SGLang DSV4 environment variables to match GB300 disaggregated configs (excluding NCCL/communication vars)
  • Add --enable-deepseek-v4-fp4-indexer flag to all concurrency profiles
  • Extract shared DP-attention env vars into a common block to reduce duplication
  • Bump image to nightly-dev-cu13-20260608-303757cc

Note

Medium Risk
Benchmark tuning and runner port changes can shift reported throughput/latency or break CI if clients still assume port 8888; no production auth/data paths, but results comparability is at stake.

Overview
Aligns the dsv4-fp4-b300-sglang benchmark recipe with GB300 SGLang settings and bumps the container image in nvidia-master.yaml to nightly-dev-cu13-20260609-317fc6a9.

In dsv4_fp4_b300_sglang.sh, common launch env switches from SGLANG_JIT_DEEPGEMM_PRECOMPILE=0 to GB300-style vars (FAST_WARMUP, RADIX_FORCE_MISS, DEFAULT_THINKING, DSV4_REASONING_EFFORT=max). For concurrency above 32, DP-attention env (MegaMoE FP4/MXF4, online compress, logging, timeouts, etc.) is centralized in one block instead of repeated per profile; high-conc megamoe blocks drop profile-specific NUM_MAX_TOKENS_PER_RANK overrides in favor of the shared 8192. --enable-deepseek-v4-fp4-indexer is added to every concurrency launch profile.

B300 NV runner exports PORT=30000 into the container (was 8888) so serve/benchmark clients match the expected listen port. perf-changelog.yaml documents the config change.

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

@github-actions

github-actions Bot commented Jun 8, 2026

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.

1 similar comment
@github-actions

github-actions Bot commented Jun 8, 2026

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.

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM — straightforward benchmark recipe alignment (image bump, env var consolidation, fp4-indexer flag).

Extended reasoning...

Overview

PR touches two files: a benchmark shell script (benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_sglang.sh) and a CI config yaml (.github/configs/nvidia-master.yaml). Changes are an image bump (nightly-dev-cu13-20260608-303757cc), addition of --enable-deepseek-v4-fp4-indexer to every concurrency profile, and a refactor that lifts shared DP-attention env vars (SGLANG_OPT_SWA_EVICT_DROP_PAGE_MARGIN, SGLANG_OPT_SWA_RELEASE_LEAF_LOCK_AFTER_WINDOW, SGLANG_OPT_USE_ONLINE_COMPRESS, SGLANG_OPT_DEEPGEMM_MEGA_MOE_NUM_MAX_TOKENS_PER_RANK, etc.) into a single block plus a few new vars aligned to GB300.

Security risks

None. This is benchmark/recipe code that runs in CI sweep contexts. No auth, crypto, permissions, network exposure, or user input handling is touched.

Level of scrutiny

Low. This is benchmark configuration aligning a single-node B300 SGLang recipe to its GB300 sibling. Worst case is a tuning regression on that one sweep, which is self-contained and discoverable from sweep results.

Other factors

The bug hunting system found nothing. The refactor is intentional: previously each per-CONC block redundantly set SWA_EVICT_DROP_PAGE_MARGIN, SWA_RELEASE_LEAF_LOCK_AFTER_WINDOW, and DEEPGEMM_MEGA_MOE_NUM_MAX_TOKENS_PER_RANK (with slightly different values 8320/8320/8256); the consolidated block uses 8192 across the board per GB300 alignment, which is the stated goal. The CONC=512 profile (flashinfer_mxfp4) now also picks up megamoe-specific env vars, but they're inert for non-megamoe backends and consistent with the GB300 reference recipe.

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

5 similar comments
@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@yhyang201 yhyang201 added the non-canary-full-sweep-enabled Run the full sweep without the canary gate (full search space, no trim) label Jun 8, 2026
Comment thread .github/configs/nvidia-master.yaml Outdated
@yhyang201 yhyang201 removed the non-canary-full-sweep-enabled Run the full sweep without the canary gate (full search space, no trim) label Jun 8, 2026
@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Comment thread benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_sglang.sh Outdated
@yhyang201 yhyang201 force-pushed the align-b300-sglang-env-to-gb300 branch from 7b37974 to cc56a5c Compare June 8, 2026 23:05
@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

@yhyang201 yhyang201 force-pushed the align-b300-sglang-env-to-gb300 branch from 94906e3 to 0155cc8 Compare June 9, 2026 08:38
Comment thread benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_sglang.sh Outdated
yhyang201 added 12 commits June 9, 2026 16:41
DP-attention mode uses deterministic TCP ports derived from $PORT.
If a previous sglang process didn't exit cleanly (e.g. Slurm scancel
didn't fully propagate SIGTERM to all subprocesses), the next launch
fails with "metrics_port at 9125 is not available". Non-DP-attention
mode is unaffected because it uses ipc:// with random temp paths.

Add kill_stale_servers() to benchmark_lib.sh and call it from all
sglang benchmark scripts that use DP-attention (B300 and B200).
fuser/pkill may not be available in all containers. Use python3+psutil
(always present in sglang/vllm images) to precisely kill processes on
$PORT and $PORT+237 (the DP-attention metrics_port = PORT + ZMQ_TCP_PORT_DELTA + 4).
@yhyang201 yhyang201 force-pushed the align-b300-sglang-env-to-gb300 branch from 0155cc8 to c27f53f Compare June 9, 2026 08:42
Comment thread benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_sglang.sh
Comment thread benchmarks/benchmark_lib.sh Outdated
The previous kill_stale_servers ran inside the Pyxis container, which
cannot see or kill processes in the host PID namespace. Move the
cleanup to launch_b300-nv.sh as a bare srun (no --container-image)
so pkill runs directly on the compute node and can kill leftover
sglang/vllm processes from prior container runs.
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Comment thread benchmarks/benchmark_lib.sh Outdated
Two fixes:
- pkill -f "sglang" matched its own bash -c argv and killed itself
  before reaching the stale process. Use [s]glang regex trick so
  pkill skips its own process.
- Change PORT from 8888 to 30000 to avoid conflict with stale
  processes still bound to 8888-derived ports (metrics_port 9125).
@github-actions

github-actions Bot commented Jun 9, 2026

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.

There are 3 total unresolved issues (including 2 from previous reviews).

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 276647b. Configure here.

Comment thread benchmarks/benchmark_lib.sh Outdated
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 9, 2026

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.

1 participant