feat(nccl): add all-gather communication - #59
Merged
Merged
Conversation
This was referenced Aug 13, 2026
voltjia
force-pushed
the
feat/nccl-point-to-point
branch
from
September 7, 2026 03:41
8002b59 to
8ed1772
Compare
voltjia
force-pushed
the
feat/nccl-all-gather
branch
from
September 7, 2026 04:04
e8ccc0c to
0251d7f
Compare
53 tasks
52 tasks
Ziminli
force-pushed
the
feat/nccl-point-to-point
branch
from
September 11, 2026 03:28
8ed1772 to
1878506
Compare
Ziminli
force-pushed
the
feat/nccl-all-gather
branch
from
September 15, 2026 02:34
0251d7f to
3816cd5
Compare
…le program - remove communicator redispatch from the `AllGather` operation - align CCL `AllGather` communicator validation with the existing collective style - handle zero-element operations without requiring data buffers - add a hybrid example for global-rank `AllGather` through InfiniCCL APIs
- add configurable element count, warmup iterations, and profiling iterations - print clear pass/fail summaries for out-of-place and in-place all-gather modes
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.
Summary
Implement the existing
infinicclAllGatherAPI for the NCCL backend and add the corresponding example programs.Changes
Support NCCL AllGather
AllGatheroperation directly toncclAllGatherwhile preserving NCCL's per-rankcountand legal in-place buffer contract.Examples
examples/ccl/all_gather.cc, a deterministic single-node multi-GPU example using one worker thread per GPU;examples/mpi/all_gather.ccexample propagate validation failures through its exit status.Platform and Backend Affected
Platform
Backend
Performance Impact
N/A. This PR enables an existing API for NCCL and makes no performance claim.
Known Issues & Future Work
Test Results
Test Involved Platform
Test Involved Backend
NVIDIA NCCL + OMPI (Single Node):
ccl_mpi_hybrid_all_gather.log
ccl_mpi_hybrid_all_reduce.log
ccl_mpi_hybrid_send_recv.log
NVIDIA NCCL (Single Node):
ccl_all_gather.log
ccl_all_reduce.log
ccl_send_recv.log
Iluvatar NCCL + OMPI (Single Node):
ccl_mpi_hybrid_all_gather.log
ccl_mpi_hybrid_all_reduce.log
ccl_mpi_hybrid_send_recv.log
HYGON RCCL + OMPI (2 Nodes):
ccl_mpi_hybrid_all_gather.log
ccl_mpi_hybrid_all_reduce.log
ccl_mpi_hybrid_send_recv.log
Checklist
Title, Branch, and Commits
<type>/xxx-yyyy-zzzzwhere<type>matches the PR title's Conventional Commits type and words are joined with hyphens.fixup!/squash!/wipcommits remain.Scope and Design
General Code Hygiene
C++ Specific
.clang-format.clang-formatversion 16.0.6 passed with--dry-run --Werror.Python Specific
N/A. This PR does not change Python files.
Testing
Build, CI, and Tooling
N/A. This PR does not add a backend or device to auto-detection. The repository's C++ formatting gate was reproduced locally; hosted CI will run on the pushed branch.
Documentation
examples/ccl/all_gather.ccand this PR description.Security and Safety