Skip to content

[doc] feat: add performance tuning guide entry point - #487

Open
OnePunchMonk wants to merge 6 commits into
verl-project:mainfrom
OnePunchMonk:doc/perf-tuning-guide
Open

[doc] feat: add performance tuning guide entry point#487
OnePunchMonk wants to merge 6 commits into
verl-project:mainfrom
OnePunchMonk:doc/perf-tuning-guide

Conversation

@OnePunchMonk

Copy link
Copy Markdown
Contributor

Summary

Addresses the "Supplement docs for performance tuning" 🙋 item from the Q3 roadmap (#97).

Adds docs/perf/tuning_guide.md as an entry point for the existing "Performance Tuning Guide" docs section, which today only lists diffusion_mfu.md and profiler.md. The new page:

  • Gives a decision order for tuning a run: GPU layout first (colocated vs. disaggregated reward pool vs. multi-node), then rollout batching, then actor throughput/memory.
  • Links out to the existing docs for each decision (rollout_batching.md, diffusion_mfu.md's "Tuning and Improving MFU" section, async_reward.md, multi_node_training.md) rather than duplicating their content.
  • Adds an OOM/bottleneck troubleshooting checklist that spans rollout, reward, and actor stages, which wasn't consolidated anywhere before.

Wired into docs/index.md's toctree as the first entry under "Performance Tuning Guide".

Not a duplicate: checked open PRs for "performance"/"profiling docs" in title and found none addressing this checklist item.

Test plan

  • python3 tests/special_sanity/check_docs_time_info.py passes (new page has a "Last updated" line)
  • Checked spelling gate manually (verl/SGLang casing) — no matches outside allowed forms
  • Verified all new {ref} targets resolve to existing anchors (rollout_batching, request-level-batching, diffusion_mfu) and .md#anchor links follow the same pattern used elsewhere in docs/
  • Sphinx docs build (no local Sphinx toolchain available in this environment — please confirm in CI)

Drafted with AI assistance (Claude Code); I reviewed the content and links above before submitting.

Consolidates the GPU-layout decision (colocated vs disaggregated
reward pool vs multi-node) and links out to the existing rollout
batching, MFU tuning, async reward, and profiler docs instead of
duplicating them, plus an OOM/bottleneck troubleshooting checklist
that spans all three stages.
Copilot AI lite review requested due to automatic review settings August 30, 2026 18:09

Copilot AI 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.

🟡 Changes recommended

A few documentation links/config references in the new entry-point page are misleading or ambiguous and should be corrected to keep navigation accurate.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds a new performance-tuning entry-point page to the docs and wires it into the main docs index so readers have a single “decision order” + troubleshooting checklist for diffusion RL tuning.

Changes:

  • Add docs/perf/tuning_guide.md as the new landing page for performance tuning guidance.
  • Link the new tuning guide into docs/index.md as the first entry under “Performance Tuning Guide”.
File summaries
File Description
docs/perf/tuning_guide.md New entry-point page outlining tuning order and a consolidated troubleshooting checklist, linking out to existing detailed docs.
docs/index.md Adds the new tuning guide to the “Performance Tuning Guide” toctree so it appears in the docs navigation.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 3
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/perf/tuning_guide.md Outdated
Comment thread docs/perf/tuning_guide.md Outdated
Comment thread docs/perf/tuning_guide.md Outdated
Fix three issues flagged by Copilot review: the request-level
batching link resolved to the contributor-guide anchor instead of
rollout_batching.md, the MFU tuning-section link pointed at the page
top instead of the actual section, and enable_resource_pool was
missing its reward.reward_model. prefix.
@OnePunchMonk

Copy link
Copy Markdown
Contributor Author

Fixed all three in dd574b7:

  • request-level-batching now points to {ref}rollout_batching`` instead of the contributor-guide anchor it was accidentally resolving to.
  • MFU tuning references now link directly to the "Tuning and Improving MFU" section anchor instead of the page top.
  • enable_resource_pool=True now spelled out as reward.reward_model.enable_resource_pool=True to match usage elsewhere.

@SamitHuang SamitHuang left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Summary

Good entry-point structure: profile first, then layout → rollout → actor, with a cross-stage checklist that links out instead of duplicating existing pages. Copilot's three link/prefix nits look fixed in dd574b7.

Five inline comments cover remaining factual issues (GPU layout framing, Hydra knob paths, diffusion vs KV wording, MFU > 1.0 causes, missing link to docs/algo/performance.md).

PR title: [doc] doc: … will fail tests/special_sanity/check_pr_title.py. Allowed types are feat, fix, refactor, chore, test — suggest [doc] feat: add performance tuning guide entry point.

Requesting changes on the inline items; happy to re-review once addressed.

Comment thread docs/perf/tuning_guide.md
Comment thread docs/perf/tuning_guide.md Outdated
Comment thread docs/perf/tuning_guide.md Outdated
Comment thread docs/perf/tuning_guide.md Outdated
Comment thread docs/perf/tuning_guide.md Outdated
…guide

Splits colocated/disaggregated reward placement from multi-node scaling
(the default multi-node recipe still colocates reward), names the
engine_kwargs.vllm_omni Hydra paths for the batching knobs instead of the
bare dataclass field, corrects the rollout OOM section to describe packed
activation memory instead of an LLM KV cache, points the MFU > 1.0
troubleshooting at the two documented causes instead of the LoRA caveat,
and links the throughput reference table.

Co-authored-by: Claude Code
@OnePunchMonk OnePunchMonk changed the title [doc] doc: add performance tuning guide entry point [doc] feat: add performance tuning guide entry point Aug 31, 2026
@OnePunchMonk

Copy link
Copy Markdown
Contributor Author

@SamitHuang made fixes

@OnePunchMonk

Copy link
Copy Markdown
Contributor Author

@zhtmike, tagging you to request a review here. Thank you!

Copilot AI 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.

🟡 Changes recommended

Two configuration recommendations conflict with existing documented and tested behavior.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 2
  • Review effort level: Balanced

Comment thread docs/perf/tuning_guide.md Outdated
Comment thread docs/perf/tuning_guide.md Outdated
- rollout.max_num_seqs is the top-level engine concurrency knob in both
  step-wise and request-level batching, not a no-op field.
- Split the update_actor/update_weights OOM entry into a forward/backward
  activation OOM case (fix: lower ppo_micro_batch_size_per_gpu) and a
  distinct optimizer/param-state OOM case (fix: offload ordering), since
  the previous single entry pointed forward/backward OOMs at the wrong
  first step.
@OnePunchMonk

Copy link
Copy Markdown
Contributor Author

@zhtmike @SamitHuang made changes

@zhtmike
zhtmike requested a review from wtomin as a code owner September 9, 2026 04:08
@zhtmike

zhtmike commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

looks good, some hyparameters are indeed not so obvious, like max_num_seqs

@zhtmike

zhtmike commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

@knlnguyen1802 you may take a look

@wtomin

wtomin commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

I think this performance tuning guide will be very useful if quoting RL-Insight in #465. I suggest to merge #465 first, and then add a brief section in tuning_guide.md‎ about RL-Insight.

@knlnguyen1802 knlnguyen1802 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Can also mention about TransferQueue and v1 version of verl, which the main bottleneck is data transfer between Worker Group, it is very helpful for video generation model too

@NancyFyong

Copy link
Copy Markdown
Collaborator

Now that the profile tools are quite mature, I think we can add a "skills" section to the profile.

@NancyFyong NancyFyong mentioned this pull request Sep 10, 2026
4 tasks
RL-Insight (verl-project#465) merged after this guide was written; point readers
to it for live per-run metrics alongside the one-off profiler trace.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants