Making hip-clang the default compiler; documentation update (#216)

* Making hip-clang the default compiler; documentation update

* Adding back --hip-clang to install.sh as a silent option for CI
Bu işleme şunda yer alıyor:
Stanley Tsang
2020-06-04 11:58:27 -06:00
işlemeyi yapan: GitHub
ebeveyn 2a4514772c
işleme dc403e0ca2
2 değiştirilmiş dosya ile 28 ekleme ve 12 silme
+5 -4
Dosyayı Görüntüle
@@ -27,22 +27,23 @@ The root of this repository has a helper script 'install.sh' to build and instal
* `./install.sh -t` -- builds library including unit tests
* `./install.sh -r` -- runs unit tests (must be already built)
* `./install.sh -p` -- builds RCCL package
* `./install.sh -hcc` -- builds RCCL with hcc compiler; note that hcc is now deprecated. (default:hip-clang)
* `./install.sh --prefix` -- specify custom path to install RCCL to (default:/opt/rocm)
## Manual build
#### To build the library :
```shell
$ git clone https://github.com/ROCmSoftwarePlatform/rccl.git
$ git clone https://github.com/ROCmSoftwarePlatform/rccl.git
$ cd rccl
$ mkdir build
$ cd build
$ CXX=/opt/rocm/bin/hcc cmake ..
$ CXX=/opt/rocm/bin/hipcc cmake ..
$ make -j 8
```
You may substitute an installation path of your own choosing by passing CMAKE_INSTALL_PREFIX. For example:
```shell
$ CXX=/opt/rocm/bin/hcc cmake -DCMAKE_INSTALL_PREFIX=$PWD/rccl-install ..
$ CXX=/opt/rocm/bin/hipcc cmake -DCMAKE_INSTALL_PREFIX=$PWD/rccl-install ..
```
Note: ensure rocm-cmake is installed, `apt install rocm-cmake`.
@@ -81,4 +82,4 @@ Please refer to the [Library documentation](http://rccl.readthedocs.io/) for cur
All source code and accompanying documentation is copyright (c) 2015-2018, NVIDIA CORPORATION. All rights reserved.
All modifications are copyright (c) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
All modifications are copyright (c) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+23 -8
Dosyayı Görüntüle
@@ -13,7 +13,7 @@ function display_help()
echo " [-p|--package_build] Build RCCL package."
echo " [-t|--tests_build] Build unit tests, but do not run."
echo " [-r|--run_tests] Run unit tests (must be built already.)"
echo " [--hip-clang] Build library using hip-clang compiler."
echo " [--hcc] Build library using deprecated hcc compiler (default:hip-clang)."
echo " [--prefix] Specify custom directory to install RCCL to (default: /opt/rocm)."
}
@@ -27,7 +27,7 @@ build_tests=false
run_tests=false
build_release=true
install_library=false
build_hip_clang=false
build_hip_clang=true
# #################################################
# Parameter parsing
@@ -36,7 +36,7 @@ build_hip_clang=false
# check if we have a modern version of getopt that can handle whitespace and long parameters
getopt -T
if [[ $? -eq 4 ]]; then
GETOPT_PARSE=$(getopt --name "${0}" --longoptions help,install,package_build,tests_build,run_tests,hip-clang,prefix: --options hiptr -- "$@")
GETOPT_PARSE=$(getopt --name "${0}" --longoptions help,install,package_build,tests_build,run_tests,hcc,hip-clang,prefix: --options hiptr -- "$@")
else
echo "Need a new version of getopt"
exit 1
@@ -67,6 +67,9 @@ while true; do
-r|--run_tests)
run_tests=true
shift ;;
--hcc)
build_hip_clang=false
shift ;;
--hip-clang)
build_hip_clang=true
shift ;;
@@ -82,6 +85,14 @@ while true; do
rocm_path=/opt/rocm/bin
# throw error code after running a command in the install script
check_exit_code( )
{
if (( $1 != 0 )); then
exit $1
fi
}
# #################################################
# prep
# #################################################
@@ -109,9 +120,9 @@ else
cmake_common_options="${cmake_common_options} -DCMAKE_BUILD_TYPE=Debug"
fi
compiler=hcc
if [[ "${build_hip_clang}" == true ]]; then
compiler=hipcc
compiler=hipcc
if [[ "${build_hip_clang}" == false ]]; then
compiler=hcc
fi
cmake_executable=cmake
@@ -121,21 +132,25 @@ if [[ -e /etc/redhat-release ]]; then
else
apt install chrpath libomp-dev
fi
check_exit_code "$?"
if ($build_tests); then
CXX=$rocm_path/$compiler $cmake_executable -DBUILD_TESTS=ON -DCMAKE_INSTALL_PREFIX=$install_prefix ../../.
CXX=$rocm_path/$compiler $cmake_executable $cmake_common_options -DBUILD_TESTS=ON -DCMAKE_INSTALL_PREFIX=$install_prefix ../../.
else
CXX=$rocm_path/$compiler $cmake_executable -DBUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=$install_prefix ../../.
CXX=$rocm_path/$compiler $cmake_executable $cmake_common_options -DBUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=$install_prefix ../../.
fi
check_exit_code "$?"
if ($install_library); then
make -j$(nproc) install
else
make -j$(nproc)
fi
check_exit_code "$?"
if ($build_package); then
make package
check_exit_code "$?"
fi
# Optionally, run tests if they're enabled.