Adding the ability to force install dependencies (namely gtest); gtest library installation fix for centos (#265)

* Adding the ability to force install dependencies (namely gtest); gtest library installation fix for centos

* Removing potentially unneccessary dependencies from install script
이 커밋은 다음에 포함됨:
Stanley Tsang
2020-09-10 17:27:22 -06:00
커밋한 사람 GitHub
부모 60819dcf8d
커밋 8c90aefb6d
4개의 변경된 파일42개의 추가작업 그리고 34개의 파일을 삭제
+10 -5
파일 보기
@@ -23,6 +23,7 @@ The root of this repository has a helper script 'install.sh' to build and instal
* `./install.sh` -- builds library including unit tests
* `./install.sh -i` -- builds and installs the library to /opt/rocm/rccl; installation path can be changed with --prefix argument (see below.)
* `./install.sh -d` -- installs all necessary dependencies for RCCL. Should be re-invoked if the build folder is removed.
* `./install.sh -h` -- shows help
* `./install.sh -t` -- builds library including unit tests
* `./install.sh -r` -- runs unit tests (must be already built)
@@ -62,15 +63,19 @@ RCCL package install requires sudo/root access because it creates a directory ca
## Tests
There are unit tests implemented with the Googletest framework in RCCL, which are currently a work-in-progress. To invoke the unit tests, go to the rccl-install folder, then the test/ subfolder, and execute the appropriate unit test executable(s). Several notes for running the unit tests:
There are unit tests implemented with the Googletest framework in RCCL, which are currently a work-in-progress. The unit tests require Googletest 1.10 or higher to build and execute properly.
To invoke the unit tests, go to the build folder, then the test subfolder, and execute the appropriate unit test executable(s).
1. The LD_LIBRARY_PATH environment variable will need to be set to include /path/to/rccl-install/lib/ in order to run the unit tests.
2. The HSA_FORCE_FINE_GRAIN_PCIE environment variable will need to be set to 1 in order to run the unit tests.
Unit test names are now of the format:
[CollectiveCall]CorrectnessSweep/[CollectiveCall]CorrectnessTest.[Type of test]/[ncclRedOp_t]_[datatype]_[number of elements]_[number of devices]_[in place/out of place]_[environment variables]
This allows filtering of unit tests being run by their parameter values by passing the --gtest_filter command line flag, for example:
An example call to the unit tests:
```shell
$ LD_LIBRARY_PATH=rccl-install/lib/ HSA_FORCE_FINE_GRAIN_PCIE=1 rccl-install/test/UnitTests
--gtest_filter="AllReduceCorrectnessSweep*float32*"
```
will run only AllReduce correctness tests with float32 datatype. See "Running a Subset of the Tests" at https://chromium.googlesource.com/external/github.com/google/googletest/+/HEAD/googletest/docs/advanced.md for more information on how to form more advanced filters.
There are also other performance and error-checking tests for RCCL. These are maintained separately at https://github.com/ROCmSoftwarePlatform/rccl-tests.
See the rccl-tests README for more information on how to build and run those tests.