AMD welcomes contributions from the community. Whether those contributions are bug reports, bug fixes, documentation additions, performance notes, or other improvements, we value collaboration with our users. We can build better solutions together.
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 may request changes or
modify the submission before acceptance.
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
.
In general, 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 find you'd rather not use the hooks, they can
be removed using scripts/uninstall-hooks
.
To run the rocSOLVER test suite, first build the rocSOLVER test client following the instructions in
Building and Installation. Then, run the rocsolver-test
binary. For a typical build, the test
binary will be found at ./build/release/clients/staging/rocsolver-test
.
The full test suite is quite large and may take a long time to complete, so passing the
--gtest_filter=<pattern>
option to rocsolver-test may be useful during development. A fast
subset of tests can be run with --gtest_filter='checkin*'
, while the extended tests can be run
with --gtest_filter='daily*'
.
Unfortunately, sometimes a contribution cannot be accepted. The rationale for a decision may or may not be disclosed.