You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix the Iluvatar build by removing the unavailable CUDA::cuda_driver CMake
imported target from the InfiniCCL library and example link configurations.
CoreX provides the CUDA-compatible Runtime API through CUDA::cudart, while
the selected collective backend is linked separately through the configured
NCCL library. InfiniCCL and its examples do not call the CUDA Driver API
directly, so linking CUDA::cuda_driver is unnecessary and prevents otherwise
valid Iluvatar builds.
Changes
Iluvatar library build
Remove CUDA::cuda_driver from the Iluvatar infiniccl link libraries in src/CMakeLists.txt.
Retain CUDA::cudart; NCCL continues to be linked independently when WITH_NCCL=ON.
Example build
Remove CUDA::cuda_driver from Iluvatar example targets in examples/CMakeLists.txt.
Retain the CUDA-compatible runtime dependency required by device allocation and stream operations.
Scope
Keep NVIDIA and all other platform/backend link configurations unchanged.
Do not change any public API, collective algorithm, or runtime dispatch behavior.
Platform and Backend Affected
Platform
CPU
NVIDIA GPU
Iluvatar GPU
MetaX GPU
Moore Threads GPU
Cambricon MLU
HYGON DCU
Backend
OpenMPI
MPICH
NCCL
MCCL
Performance Impact
No performance impact
Performance improved
Performance regression possible
If applicable, provide benchmark results.
Known Issues & Future Work
Test Results
Test Involved Platform
CPU
NVIDIA GPU
Iluvatar GPU
MetaX GPU
Moore Threads GPU
Cambricon MLU
HYGON DCU
Test Involved Backend
OpenMPI
MPICH
NCCL
MCCL
Checklist
Every contributor must verify every item below before requesting
review. Tick each box only after the check has actually been performed —
do not tick speculatively. If an item truly does not apply, replace the
checkbox with N/A and briefly explain why in an inline comment.
Branch name follows <type>/xxx-yyyy-zzzz where <type> matches the PR title's Conventional Commits type and words are joined with hyphens (see CONTRIBUTING.md §Branches).
Each commit message follows Conventional Commits.
Small PR is a single squashable commit; or, for a large PR, every commit is meaningful, well-formed, and independently reviewable (see CONTRIBUTING.md §Pull Requests).
No stray merge commits from master — the branch is rebased cleanly on top of the current master.
No fixup! / squash! / wip commits remain.
Scope and Design
Changes are minimal — no unrelated modifications were introduced (CONTRIBUTING.md §Code/General).
No dead code, commented-out blocks, debug prints, printf/std::cout/print(...) left behind, or TODO without an owner and issue link.
No unrelated formatting churn that would obscure the diff.
Public API changes (if any) are intentional, documented, and reflected in affected callers/tests.
General Code Hygiene
The code is self-explanatory; comments were added only where the intent or rationale is non-obvious (CONTRIBUTING.md §Code/General).
Every modified or added file ends with a single trailing newline (CONTRIBUTING.md §Code/General).
No trailing whitespace, inconsistent indentation, or mixed formatting styles remain.
Identifiers referenced in comments or error messages are wrapped in Markdown backticks (e.g. the `AllReduce` implementation) (CONTRIBUTING.md §Code/General).
All comments and error messages are in English (CONTRIBUTING.md §Code/General).
Comments and error messages are complete sentences — capitalized first letter, terminal punctuation — unless the language/framework convention says otherwise (CONTRIBUTING.md §Code/General; §Python).
clang-format (version 16, per .github/workflows/clang-format.yml) has been run against all modified applicable files; the diff is clean.
No exceptions are thrown. Error paths use assert with messages that include at least __FILE__, __LINE__, and __func__ (CONTRIBUTING.md §C++).
Error and warning message wording follows the LLVM Coding Standards (CONTRIBUTING.md §C++).
Constructor initializer list order matches member declaration order (CONTRIBUTING.md §C++).
Exactly one blank line between classes, between classes and functions, and between functions (CONTRIBUTING.md §C++).
Exactly one blank line between members (functions and variables) within a class (CONTRIBUTING.md §C++).
Exactly one blank line before and after the contents of a namespace (CONTRIBUTING.md §C++).
Python Specific (if Python files changed)
Code is PEP 8 compliant; ruff check passes cleanly on CI (see .github/workflows/ruff.yml).
ruff format --check passes cleanly — if not, run ruff format and commit the result.
Comments are complete English sentences, starting with a capital letter and ending with punctuation; Markdown backticks are used for code references (CONTRIBUTING.md §Python).
Framework-specific conventions (e.g. lowercase pytest.skip messages without terminal period) are honored where applicable (CONTRIBUTING.md §Python).
No blank line between the function signature and the body when there is no docstring or comment (CONTRIBUTING.md §Python).
A blank line is present before and afterif, for, and similar control-flow statements (CONTRIBUTING.md §Python).
A blank line appears before each return, except when it directly follows a control-flow statement (CONTRIBUTING.md §Python).
Docstrings (if any) follow PEP 257 (CONTRIBUTING.md §Python).
Type hints are added / kept consistent with the surrounding code.
Testing
All applicable example programs have been built and tested successfully on at least one supported heterogeneous cluster setup.
Build, CI, and Tooling
New backends or devices have been added to auto-detection in CMakeLists.txt under if(AUTO_DETECT_DEVICES) or to if(AUTO_DETECT_BACKENDS) if applicable.
Both CI workflows (clang-format.yml, ruff.yml) are green locally (or expected to be green on CI).
Documentation
README.md, CONTRIBUTING.md, or inline docs updated when behavior, build flags, or developer workflow changed.
Any user-visible breaking change is called out explicitly under "Summary" and in the commit/PR title with a ! or BREAKING CHANGE: footer.
Security and Safety
No secrets, access tokens, internal URLs, customer data, or personal hardware identifiers have been committed.
Third-party code is license-compatible and attributed.
No unsafe pointer arithmetic, uninitialized reads, or missing bounds checks were introduced.
The reason will be displayed to describe this comment to others. Learn more.
这个注释可以麻烦去掉一下,不太必要。
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
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
Fix the Iluvatar build by removing the unavailable
CUDA::cuda_driverCMakeimported target from the InfiniCCL library and example link configurations.
CoreX provides the CUDA-compatible Runtime API through
CUDA::cudart, whilethe selected collective backend is linked separately through the configured
NCCL library. InfiniCCL and its examples do not call the CUDA Driver API
directly, so linking
CUDA::cuda_driveris unnecessary and prevents otherwisevalid Iluvatar builds.
Changes
Iluvatar library build
CUDA::cuda_driverfrom the Iluvatarinfiniccllink libraries insrc/CMakeLists.txt.CUDA::cudart; NCCL continues to be linked independently whenWITH_NCCL=ON.Example build
CUDA::cuda_driverfrom Iluvatar example targets inexamples/CMakeLists.txt.Scope
Platform and Backend Affected
Platform
Backend
Performance Impact
If applicable, provide benchmark results.
Known Issues & Future Work
Test Results
Test Involved Platform
Test Involved Backend
Checklist
Title, Branch, and Commits
feat: …,fix(nccl): …).<type>/xxx-yyyy-zzzzwhere<type>matches the PR title's Conventional Commits type and words are joined with hyphens (seeCONTRIBUTING.md§Branches).CONTRIBUTING.md§Pull Requests).master— the branch is rebased cleanly on top of the currentmaster.fixup!/squash!/wipcommits remain.Scope and Design
CONTRIBUTING.md§Code/General).printf/std::cout/print(...)left behind, orTODOwithout an owner and issue link.General Code Hygiene
CONTRIBUTING.md§Code/General).CONTRIBUTING.md§Code/General).the `AllReduce` implementation) (CONTRIBUTING.md§Code/General).CONTRIBUTING.md§Code/General).CONTRIBUTING.md§Code/General; §Python).C++ Specific (if C++ files changed)
clang-format(version 16, per.github/workflows/clang-format.yml) has been run against all modified applicable files; the diff is clean.assertwith messages that include at least__FILE__,__LINE__, and__func__(CONTRIBUTING.md§C++).CONTRIBUTING.md§C++).CONTRIBUTING.md§C++).CONTRIBUTING.md§C++).CONTRIBUTING.md§C++).CONTRIBUTING.md§C++).Python Specific (if Python files changed)
ruff checkpasses cleanly on CI (see.github/workflows/ruff.yml).ruff format --checkpasses cleanly — if not, runruff formatand commit the result.CONTRIBUTING.md§Python).pytest.skipmessages without terminal period) are honored where applicable (CONTRIBUTING.md§Python).CONTRIBUTING.md§Python).if,for, and similar control-flow statements (CONTRIBUTING.md§Python).return, except when it directly follows a control-flow statement (CONTRIBUTING.md§Python).CONTRIBUTING.md§Python).Testing
Build, CI, and Tooling
CMakeLists.txtunderif(AUTO_DETECT_DEVICES)or toif(AUTO_DETECT_BACKENDS)if applicable.clang-format.yml,ruff.yml) are green locally (or expected to be green on CI).Documentation
README.md,CONTRIBUTING.md, or inline docs updated when behavior, build flags, or developer workflow changed.!orBREAKING CHANGE:footer.Security and Safety