Skip to content

M4 leftover for TE cuda graph#3137

Merged
shifangx merged 2 commits into
NVIDIA:mainfrom
shifangx:shifang/cuda_graph_m4
Apr 16, 2026
Merged

M4 leftover for TE cuda graph#3137
shifangx merged 2 commits into
NVIDIA:mainfrom
shifangx:shifang/cuda_graph_m4

Conversation

@shifangx
Copy link
Copy Markdown
Contributor

@shifangx shifangx commented Jan 29, 2026

What does this PR do ?

fix this issue #3135
Global pg groups, such as _TENSOR_MODEL_PARALLEL_GROUP , in parallel_state.py will be deprecated after M4.
So we need pass pg_collection while init TECudaGraphHelper, and use pg group in pg_collection later.

⚠️ For major changes (either in lines of code or in its impact), please make sure to first share a design doc with the team. If you're unsure what's the best way to do so, contact the @mcore-oncall.

Contribution process

flowchart LR
    A[Pre-checks] --> B[PR Tests]
    subgraph Code Review/Approval
        C1[Expert Review] --> C2[Final Review]
    end
    B --> C1
    C2 --> D[Merge]
Loading

Pre-checks

  • I want this PR in a versioned release and have added the appropriate Milestone (e.g., Core 0.8)
  • I have added relevant unit tests
  • I have added relevant functional tests
  • I have added proper typing to my code Typing guidelines
  • I have added relevant documentation
  • I have run the autoformatter.sh on my PR

Code review

The following process is enforced via the CODEOWNERS file for changes into megatron/core. For changes outside of megatron/core, it is up to the PR author whether or not to tag the Final Reviewer team.

For MRs into `main` branch

Feel free to message or comment the @mcore-oncall to help accelerate your merge into main. The less complex your PR is, the faster it will be approved and merged!

(Step 1): Add PR label Expert Review

(Step 2): Collect the expert reviewers reviews

  1. Attach the Expert Review label when your PR is ready for review.
  2. GitHub auto-assigns expert reviewers based on your changes. They will get notified and pick up your PR soon.

⚠️ Only proceed to the next step once all reviewers have approved, merge-conflict are resolved and the CI is passing.
Final Review might get declined if these requirements are not fulfilled.

(Step 3): Final Review

  1. Add Final Review label
  2. GitHub auto-assigns final reviewers based on your changes. They will get notified and pick up your PR soon.

(Optional Step 4): Cherry-pick into release branch

If this PR also needs to be merged into core_r* release branches, after this PR has been merged, select Cherry-pick to open a new PR into the release branch.

For MRs into `dev` branch The proposed review process for `dev` branch is under active discussion.

MRs are mergable after one approval by either eharper@nvidia.com or zijiey@nvidia.com.

Merging your PR

Any member of core-adlr and core-nemo will be able to merge your PR.

@shifangx shifangx requested review from a team as code owners January 29, 2026 07:37
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented Jan 29, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@ko3n1g ko3n1g requested a review from a team January 29, 2026 07:38
@shifangx shifangx changed the title fix issue with ccuda graph and m4 fix issue with cuda graph and m4 Jan 29, 2026
@shifangx shifangx force-pushed the shifang/cuda_graph_m4 branch 3 times, most recently from bfce1c9 to 98d5fcf Compare January 29, 2026 13:47
@yaoyu-33 yaoyu-33 added the Expert Review [deprecated] Apply this label to indicate that your PR is ready for expert review. label Jan 29, 2026
Comment thread megatron/core/transformer/cuda_graphs.py Outdated
self.dp_cp_group = self.pg_collection.dp_cp
self.pp_group = self.pg_collection.pp
from megatron.core.pipeline_parallel.p2p_communication import P2PCommunicator
self.p2p_communicator = P2PCommunicator(pp_group=self.pp_group, config=self.config)
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.

what is this self.config? looks like p2p communicator needs ModelParallelConfig, not TransformerConfig

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The type of this config is megatron.bridge.models.qwen_vl.qwen3_vl_provider.Qwen3VLMoEModelProvider.

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.

isnt this cuda graphs file agnostic to a particular model. I'm wondering how ould this be related to qwen3vlrprovider, also given this is megatron LM and not bridge

Copy link
Copy Markdown
Contributor Author

@shifangx shifangx Mar 19, 2026

Choose a reason for hiding this comment

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

This pr is not for particular model, it is for M4.
In order to support M4, we need use pg groups in pg_collection everywhere, including in this cuda_graph file.

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.

Yeah I get that. My question/confusion was what's the type of config we pass here to P2Pcommunicator. Is it TransformerConfig or ModelParallelConfig

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The inheritance relationship is Qwen3VLModelProvider -> GPTModelProvider -> TransformerConfig -> ModelParallelConfig.

@jiemingz jiemingz self-requested a review January 29, 2026 19:06
@shifangx shifangx force-pushed the shifang/cuda_graph_m4 branch 2 times, most recently from 14c15b0 to 844848b Compare January 30, 2026 13:30
Comment thread megatron/core/transformer/module.py Outdated
Comment thread megatron/core/transformer/cuda_graphs.py Outdated
@shifangx shifangx changed the title fix issue with cuda graph and m4 m4 leftover for cuda graph Feb 13, 2026
@shifangx shifangx force-pushed the shifang/cuda_graph_m4 branch from 5210c51 to 9e676af Compare February 13, 2026 14:07
@shifangx shifangx changed the title m4 leftover for cuda graph m4 leftover for TE cuda graph Feb 13, 2026
@shifangx shifangx force-pushed the shifang/cuda_graph_m4 branch 2 times, most recently from 3ba536f to d470fca Compare February 13, 2026 14:31
@shifangx shifangx changed the title m4 leftover for TE cuda graph M4 leftover for TE cuda graph Feb 13, 2026
@shifangx
Copy link
Copy Markdown
Contributor Author

shifangx commented Feb 14, 2026

cuda graph is very helpful for QWen3-VL training performance, and many customers want to try training QWen3-VL with both cuda graph and M4.
This pr is needed for this case.

Hi, @jiemingz, I have addressed reviewer's comments. Can you help to review my update?

If @jiemingz is out of office for Chinese New Year, is there any other expert can help to review this pr? @NVIDIA/core-adlr @NVIDIA/mcore-oncall

@shifangx
Copy link
Copy Markdown
Contributor Author

/ok to test 81d8781

@shifangx
Copy link
Copy Markdown
Contributor Author

/ok to test b714709

@Phlip79 Phlip79 removed the request for review from a team April 15, 2026 16:18
@shifangx
Copy link
Copy Markdown
Contributor Author

/ok to test 50efc83

@shifangx
Copy link
Copy Markdown
Contributor Author

/ok to test bbe34d4bbe34d4

@shifangx
Copy link
Copy Markdown
Contributor Author

/ok to test 0d2cd53

@shifangx shifangx force-pushed the shifang/cuda_graph_m4 branch from 0d2cd53 to d801e5c Compare April 16, 2026 16:35
@shifangx
Copy link
Copy Markdown
Contributor Author

/ok to test 13e9033

@shifangx shifangx force-pushed the shifang/cuda_graph_m4 branch from 13e9033 to 556cb65 Compare April 16, 2026 16:38
@shifangx
Copy link
Copy Markdown
Contributor Author

/ok to test 556cb65

@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented Apr 16, 2026

/ok to test 556cb65

@shifangx, there was an error processing your request: E2

See the following link for more information: https://docs.gha-runners.nvidia.com/cpr/e/2/

@shifangx
Copy link
Copy Markdown
Contributor Author

/ok to test 806d161

@shifangx shifangx added this pull request to the merge queue Apr 16, 2026
@svcnvidia-nemo-ci
Copy link
Copy Markdown

🔄 Merge queue validation started!

You can track the progress here: https://github.com/NVIDIA/Megatron-LM/actions/runs/24528325068

@svcnvidia-nemo-ci
Copy link
Copy Markdown

🔄 Merge queue validation started!

You can track the progress here: https://github.com/NVIDIA/Megatron-LM/actions/runs/24531041761

@svcnvidia-nemo-ci
Copy link
Copy Markdown

🔄 Merge queue validation started!

You can track the progress here: https://github.com/NVIDIA/Megatron-LM/actions/runs/24531115334

@svcnvidia-nemo-ci
Copy link
Copy Markdown

🔄 Merge queue validation started!

You can track the progress here: https://github.com/NVIDIA/Megatron-LM/actions/runs/24532272940

Merged via the queue into NVIDIA:main with commit 01eb7e8 Apr 16, 2026
64 of 65 checks passed
@shifangx shifangx deleted the shifang/cuda_graph_m4 branch April 16, 2026 21:28
Phlip79 pushed a commit to Phlip79/Megatron-LM that referenced this pull request Apr 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Approved All necessary approvals have been made complexity: low

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants