Skip to content
This repository was archived by the owner on Apr 20, 2026. It is now read-only.

tune b200 fp8 max throughput config for 8k1k stp 1p1d#210

Open
weireweire wants to merge 4 commits into
sa-submission-q1-2026from
weiliangl/b200-max-tpt-tune
Open

tune b200 fp8 max throughput config for 8k1k stp 1p1d#210
weireweire wants to merge 4 commits into
sa-submission-q1-2026from
weiliangl/b200-max-tpt-tune

Conversation

@weireweire

@weireweire weireweire commented Mar 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adjust mem-fraction-static, max-prefill-tokens, chunked-prefill-size, and max-running-requests for both prefill and decode workers in max-tpt-dep8-1p1d.yaml
  • Tuned to improve max throughput for B200 FP8 8k1k STP 1P1D setup

Benchmark Results (job 6983 → 7028)

Metric Before (6983) After (7028) Change
Output token throughput (tok/s) 1728.95 2012.18 +16.4%
Total token throughput (tok/s) 15611.02 18168.34 +16.4%
Request throughput (req/s) 1.88 2.19 +16.5%
Benchmark duration (s) 681.18 585.30 -14.1%
Mean TTFT (ms) 19097 9321 -51.2%
Mean E2EL (ms) 64936 56303 -13.3%

Concurrency=128, rate=inf, 1280 requests, isl=8192, osl=1024.

Key changes

  • Prefill: mem-fraction-static 0.85→0.6, max-prefill-tokens 32768→16384, chunked-prefill-size 32768→131072, max-running-requests 1024→16
  • Decode: mem-fraction-static 0.85→0.6, max-prefill-tokens 32768→1048576, chunked-prefill-size 32768→8388608

The main bottleneck was max-running-requests: 1024 on prefill — too many concurrent prefills caused GPU memory contention and doubled TTFT. Reducing to 16 with larger chunked-prefill-size allows prefill to complete efficiently.

Test plan

  • Verified with sa-bench benchmark (jobs 6983 vs 7028)

Adjust memory fraction, prefill tokens, chunked prefill size, and max running requests for both prefill and decode workers to improve max throughput.
@coderabbitai

coderabbitai Bot commented Mar 5, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d14d1fff-a10c-4e43-a913-e8845e6c50f3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch weiliangl/b200-max-tpt-tune

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

weiliangl added 3 commits March 6, 2026 02:05
The sbatch script copies the config YAML to the output directory but
then passes the original file path to do_sweep. If the original file
is modified between job submission and execution (e.g., by submitting
another job with different params), the wrong config gets used.

Now do_sweep reads from ${OUTPUT_DIR}/config.yaml instead.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant