Skip to content

Latest commit

 

History

History
65 lines (40 loc) · 2.69 KB

CONTRIBUTING.md

File metadata and controls

65 lines (40 loc) · 2.69 KB

Contributing guidelines

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.

Issues

Use GitHub issues to:

  • report an issue
  • provide feedback
  • make a feature request

Note: To report a vulnerability, refer to Intel vulnerability reporting policy.

Pull requests

Before you submit a pull request, make sure that:

Note: This project follows the GitHub flow. To get started with pull requests, see GitHub howto.

RFC pull requests

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.

Code contribution guidelines

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 and reStructuredText 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.

Coding style

The general principle is to follow the style of existing or surrounding code.

Functional tests

How to run functional testing:

  1. Build and install oneCCL
  2. Make sure you are located in <oneCCL directory>/<build directory>
  3. Source oneCCL: source <oneCCL install directory>/env/setvars.sh
  4. Enter the test directory: cd tests/functional
  5. Run tests: ctest -VV -C default

The results of the tests, including the pass rate, should be printed on the screen.