Skip to content

[AMD] dsv4-fp4-mi355x-atom: enable DPA TBO at high concurrency, update image to atom0.1.4#1717

Open
seungrokj wants to merge 7 commits into
mainfrom
amd/dsv4_atom_0612
Open

[AMD] dsv4-fp4-mi355x-atom: enable DPA TBO at high concurrency, update image to atom0.1.4#1717
seungrokj wants to merge 7 commits into
mainfrom
amd/dsv4_atom_0612

Conversation

@seungrokj

@seungrokj seungrokj commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Update image to rocm/atom:rocm7.2.4_ubuntu24.04_py3.12_pytorch_release_2.10.0_atom0.1.4_20260612
  • Enable --enable-tbo (Token-Bucket Overlap) on top of DPA+TP8 at high concurrency:
    • ISL=1024 / OSL=1024 → TBO at CONC ≥ 1024
    • ISL=8192 / OSL=1024 → TBO at CONC ≥ 256
  • Update ISL=8192 search-space: TP8-only conc=4–64, DPA conc=128–1024 (previously conc=1–64 and DPA conc=64–512)
  • Add perf-changelog entry

Motivation

Based on Pareto frontier analysis from ATOM runs 27367309656 and 27030375093, DPA TBO dominates the Pareto frontier at high concurrency for both ISL settings, delivering the best throughput/GPU without sacrificing interactivity vs plain DPA.

Test plan

  • Verify bash -n syntax check passes on dsv4_fp4_mi355x_atom.sh
  • Confirm TBO is enabled for correct ISL/CONC combinations in CI run

🤖 Generated with Claude Code


Note

Medium Risk
Changes ATOM launch flags (TBO, cudagraph capture, prefix caching, max concurrent seqs) for a large production model benchmark path; the CI sweep is temporarily collapsed to a single concurrency point, which limits regression coverage until the commented grid is re-enabled.

Overview
Updates DeepSeek-V4 FP4 on MI355X (ATOM) benchmarking to match Pareto-tuned high-concurrency serving and a newer ROCm ATOM image.

CI config (dsv4-fp4-mi355x-atom): Bumps the container to atom0.1.4_20260612, removes the prior Day-0 CONC=1 guard comment, and replaces the active fixed-seq-len sweep with a narrow setup—the full TP8 / DPA / DPA+TBO grids are left commented, and the only live point is ISL=8192, DPA, CONC=1024.

Benchmark script (dsv4_fp4_mi355x_atom.sh): On DPA+TP8, turns on --enable-tbo when ISL/OSl/concurrency cross the thresholds (1k/1k at CONC≥1024; 8k/1k at CONC≥256), with expanded --cudagraph-capture-sizes for the 1k/1k TBO case. The ATOM server now gets --no-enable_prefix_caching, --cudagraph-capture-sizes, and --max-num-seqs ${CONC}; eval-only runs wire context length via compute_eval_context_length (with --max-model-len left commented).

Documents the change in perf-changelog.yaml.

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

seungrokj and others added 2 commits June 12, 2026 21:38
…e image to atom0.1.4

- Enable --enable-tbo for ISL=1024/OSL=1024 at CONC>=1024 and ISL=8192/OSL=1024 at CONC>=256
- Update image to atom0.1.4_20260612
- Update ISL=8192 search-space to start at conc=4 and use DPA from conc=128

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@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.

2 similar comments
@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.

@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.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

…onc range

- Pass --max-model-len to server using SERVE_MAX_MODEL_LEN
- Add EVAL_ONLY path: compute eval context length via compute_eval_context_length
- Extend conc-end to 8192 (isl=1024) and 4096 (isl=8192) in amd-master.yaml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

…sable max-model-len

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
# conc4-64, TP8
# conc128, DPA
# conc256-4096, DPA TBO
- { tp: 8, ep: 1, dp-attn: true, conc-start: 1024, conc-end: 1024 }

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Search space not enabled

High Severity

The dsv4-fp4-mi355x-atom fixed-seq-len matrix no longer matches the PR: the ISL=1024 scenario is fully commented out, and ISL=8192 only runs a single DPA point at conc=1024 instead of the documented TP8 (conc 4–64) and DPA (conc 128–1024) sweeps.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit c3b3289. Configure here.

--gpu-memory-utilization 0.85 \
--no-enable_prefix_caching \
> $SERVER_LOG 2>&1 &
#--max-model-len "$SERVE_MAX_MODEL_LEN" \

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Eval context not wired

Medium Severity

This commit adds SERVE_MAX_MODEL_LEN / compute_eval_context_length handling for EVAL_ONLY, but the server launch leaves --max-model-len commented out, so the ATOM server never receives the computed context length.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit c3b3289. Configure here.

…m-seqs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

@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 7ffa976. Configure here.

CUDAGRAPH_SIZES='[1,2,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,512,1024]'
elif [ "$ISL" -eq 8192 ] && [ "$OSL" -eq 1024 ] && [ "$CONC" -ge 256 ]; then
PARALLEL_ARGS=(-tp "$TP" --enable-dp-attention --enable-tbo)
else

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CUDA graph sizes omit high concurrency

Medium Severity

For ISL=8192 and OSL=1024, --enable-tbo turns on when CONC≥256, but CUDAGRAPH_SIZES stays capped at 256 while the server uses --max-num-seqs equal to CONC (e.g. 1024 in the active YAML). The 1024/1024 TBO branch extends capture sizes through 1024; this path does not.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 7ffa976. Configure here.

@functionstackx

Copy link
Copy Markdown
Collaborator

can u rebase it so the sweep triggers?

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

Labels

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants