We welcome community contributions to oneCCL. You can:
- Submit your changes directly with a pull request.
- Log a bug or feedback with an issue.
Refer to our guidelines on pull requests and isssues before you proceed.
Use GitHub issues to:
- report an issue
- provide feedback
- make a feature request
Note: To report a vulnerability, refer to Intel vulnerability reporting policy.
Before you submit a pull request, make sure that:
- You follow our code contribution guidelines and our coding style.
- You provided the requested details for new primitives or extended the existing functional tests when fixing an issue.
Note: This project follows the GitHub flow. To get started with pull requests, see GitHub howto.
It is strongly advised to open an RFC (request for comments) pull request when contributing new primitives. Please provide the following details:
-
The definition of the operation as a oneCCL primitive. It should include an interface and semantics. We welcome sketches for the interface, but the semantics should be fairly well-defined.
-
A use case, including a model and parallelism scenario.
The code must be:
-
Tested: oneCCL uses
gtests
for lightweight functional testing. -
Documented: oneCCL uses
Doxygen
for inline comments in public header files that are used to build the API reference andreStructuredText
for the Developer Guide. See oneCCL documentation for reference. -
Portable: oneCCL supports CPU and GPU architectures as well as different compilers and run-times. The new code should be complaint with the System Requirements.
The general principle is to follow the style of existing or surrounding code.
How to run functional testing:
- Build and install oneCCL
- Make sure you are located in
<oneCCL directory>/<build directory>
- Source oneCCL:
source <oneCCL install directory>/env/setvars.sh
- Enter the test directory:
cd tests/functional
- Run tests:
ctest -VV -C default
The results of the tests, including the pass rate, should be printed on the screen.