Repository navigation
fix: build NCCL stub with public device API header - #4998
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The header compatibility fix is validated across supported NCCL versions with no unresolved issues.
Review effort: Lite
Findings: None
What changed in this PR
Updates the NCCL compatibility stub to use the public device API header, supporting NCCL 2.30.4–2.32.3 while preserving existing behavior.
Changes:
- Replaces
nccl_device/core.hwithnccl_device.h. - Preserves existing stub symbols and behavior.
| File | Description |
|---|---|
src/turbomind/comm/nccl/deepep/nccl_stub.cc |
Uses the public NCCL device API entry point. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
lzhangzz
approved these changes
Sep 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
NCCL 2.32.3 moved
ncclCommProperties_tandncclDevCommRequirements_tfromnccl_device/core.hintonccl_device/host.h. Includingcore.hdirectly therefore breaks the TurboMind compatibility stub build. The build dependency allowsnvidia-nccl-cu12>=2.30.4, so isolated pip builds can select the affected release.Observed in this CI failure.
Modification
Include the public
nccl_device.hentry point innccl_stub.ccso declarations are available across the supported header layouts. Keep the NCCL minimum at 2.30.4 with no version cap. This changes one include and preserves the stub's symbols and behavior.Validation
turbomind_nccl_stubtarget and pre-commit passed.The full TurboMind extension used for inference was built with NCCL 2.31.2; the changed stub was rebuilt against each tested header version. The DeepEP control used the original stub built with 2.31.2 and the same 2.32.3 runtime as the fixed case. Local NCCL 2.31.2 DeepEP initialization fails with the same GIN rank-stride error before and after this change. NCCL 2.30.4 DeepEP, 2.30.7 inference, and multi-node RDMA were not tested.
Checklist