Contribute to rocSOLVER#
AMD welcomes community contributions, including bug reports, bug fixes, documentation additions, performance notes, and other improvements.
Submitting a pull request#
To contribute changes to rocSOLVER, open a pull request targeting the develop
branch. Pull
requests will be tested and reviewed by the AMD development team. AMD might request changes or
modify the submission before acceptance.
Interface requirements#
The public interface must be:
C99 compatible
Source and binary compatible with previous releases
Fully documented with Doxygen and Sphinx
All identifiers in the public headers must be prefixed with rocblas
, ROCBLAS
, rocsolver
,
or ROCSOLVER
. All user-visible symbols must be prefixed with rocblas
or rocsolver
.
Style guide#
Follow the style of the surrounding code. All code is auto-formatted using clang-format.
To apply the rocSOLVER formatting, run clang-format -i -style=file <files>
on any files you’ve
changed. You can install Git hooks to do this automatically upon commit by running
scripts/install-hooks --get-clang-format
. If you don’t want to use the hooks, they can
be removed using scripts/uninstall-hooks
.
Tests#
To run the rocSOLVER test suite, first build the rocSOLVER test client following the instructions in
the Installation guide. Then run the rocsolver-test
binary. For a typical build, the test
binary can be found at ./build/release/clients/staging/rocsolver-test
.
The full test suite is quite large and can take a long time to complete. During development, it might be useful to
run a subset of the tests
by passing the --gtest_filter=<pattern>
option to rocsolver-test
. A quick
subset of tests can be run with --gtest_filter='checkin*'
, while the extended tests can be run
using --gtest_filter='daily*'
.
Rejected contributions#
Unfortunately, sometimes a contribution cannot be accepted. The rationale for this decision is not always disclosed.