Commit Graph

53 Commits

Author SHA1 Message Date
gilbertlee-amd d4094525c8 Fixing install.sh to properly accept spaces in ONLY_FUNCS (#1339)
[ROCm/rccl commit: 575afee5de]
2024-09-18 17:25:36 -06:00
corey-derochie-amd 9ffd893c5a Re-enabled MSCCL++ (#1325)
* Added restrictions around calling MSCCL++ collectives (#1281)

* Added restriction to non-zero 32-byte multiple message sizes to MSCCL++ AllGather.

* Renamed and refactored some mscclpp types.

* Only transmit the MSCCL++ unique id for non-split comm init. For splitting comm, it has already been transmitted. Instead, save the MSCCL++ communicator in child communicators when calling `ncclCommSplit`. Only destroy MSCCL++ communicators when no RCCL communicators remain that use it. Also improved trace logging.

* Disable MSCCL++ when using managed memory buffers as it isn't supported.

* Added datatype and op constraints for MSCCL++ AllReduce.

* Added documentation on MSCCL++ restrictions to the README.

* [BUILD] Support custom CMake flags in MSCCLPP (#1275)

* [BUILD] Support custom CMAKE_PREFIX_PATH in MSCCLPP

Signed-off-by: nileshnegi <Nilesh.Negi@amd.com>

* [BUILD] CMake flags to support build-id in MSCCLPP

Signed-off-by: nileshnegi <Nilesh.Negi@amd.com>

* [BUILD] Fix CMake warnings in MSCCLPP build

Signed-off-by: nileshnegi <Nilesh.Negi@amd.com>

* Wrapped all cmake arguments passed to mscclpp to remove empty arguments and properly format them.

---------

Signed-off-by: nileshnegi <Nilesh.Negi@amd.com>
Co-authored-by: Corey Derochie <corey.derochie@amd.com>

* Link to libmscclpp_nccl statically (#1282)

* Switched mscclpp_nccl to static linking. Added a build step to rename the NCCL API functions.

* Undid separation of building libmscclpp_nccl from building librccl with MSCCL++ integration. With a static build, it's either fully enabled or fully disabled.

* `nm` isn't always available in docker containers due to being stripped down. Removed use of `nm` in `cmake` and hard-coded the output into mscclpp_nccl_syms.txt.

* Removed IBVerbs dependency for integrating with MSCCL++ (#1313)

* Renamed `RCCL_ENABLE_MSCCLPP` to `RCCL_MSCCLPP_ENABLE` to conform to MSCCL. Set `RCCL_MSCCLPP_ENABLE` to 1 by default if `ENABLE_MSCCLPP` is defined, or 0 otherwise. Added a log warning if `RCCL_MSCCLPP_ENABLE` is set to 1 but `ENABLE_MSCCLPP` is not defined. (#1294)

* Include mscclpp as a git submodule (#1314)

* Added the desired mscclpp commit as a git submodule.

* Added step to automatically checkout the mscclpp submodule if it isn't already present, in case the user forgot to clone recursively.

* Added instruction to README to clone using --recurse-submodules to get the mscclpp submodule.

* Enabled MSCCL++ feature build.

---------

Signed-off-by: nileshnegi <Nilesh.Negi@amd.com>
Co-authored-by: Nilesh M Negi <Nilesh.Negi@amd.com>

[ROCm/rccl commit: 736a705875]
2024-09-11 09:55:16 -06:00
Nilesh M Negi 713ed3341d [BUILD] Disable MSCCLPP build by default (#1283)
Signed-off-by: nileshnegi <Nilesh.Negi@amd.com>

[ROCm/rccl commit: cb2e0615d7]
2024-08-02 23:17:51 -05:00
corey-derochie-amd b8542c2477 Integrated RCCL with MSCCL++ for small message sizes (#1231)
[ROCm/rccl commit: 6dc47eecd7]
2024-07-12 15:32:58 -06:00
corey-derochie-amd 37bf54b8f8 Enable multi-threading for MSCCL (#1203)
MSCCL can now run in a multi-threaded configuration. To test in the unit tests, added the ENABLE_OPENMP compile definition flag and the --openmp-test-enable flag to the unit test build script. To activate, set the environment variables UT_MULTITHREADED=1 and UT_PROCESS_MASK=1. Set Jenkins to use this mode.

[ROCm/rccl commit: 0c36d571ea]
2024-07-04 09:34:38 -06:00
Nilesh M Negi 7ca67f1cb9 [BUILD] Update install.sh for RCCL build (#1191)
Signed-off-by: nileshnegi <Nilesh.Negi@amd.com>

[ROCm/rccl commit: 5aaf7121d9]
2024-05-31 17:58:34 -05:00
Wenkai Du 0ff5fc0bad npkit: add broadcast trace (#1166)
[ROCm/rccl commit: a0cef69110]
2024-05-07 14:00:16 -07:00
Bertan Dogancay cee279fd99 Implement ROCTX (#1094)
* Implement roctx

[ROCm/rccl commit: b617aecc31]
2024-02-27 15:46:15 -07:00
Bertan Dogancay 45ed3ef4e7 Nvtx support (#1076)
* NVTX support

[ROCm/rccl commit: 8a442faa12]
2024-02-08 14:08:24 -07:00
Bertan Dogancay 11674674fc [DEV] Configure functions in RCCL (#986)
* configure functions in rccl

[ROCm/rccl commit: 28d9b170c9]
2024-01-18 15:07:16 -07:00
Nilesh M Negi c1acf97c05 Remove FORCE from AMDGPU_TARGETS and add support in install script (#989)
Signed-off-by: nileshnegi <Nilesh.Negi@amd.com>

[ROCm/rccl commit: 414884c6cb]
2024-01-09 13:29:47 -06:00
Wenkai Du b736b506c0 NPkit: misc fixes for MSCCL (#936)
* msccl: add xcc_id to timestamp sync

* NPKit: add timestamp for rrc operator

* NPKit: add timestamp for MSCCL init

[ROCm/rccl commit: a497722894]
2023-10-30 10:00:12 -07:00
Bertan Dogancay 1a538d0218 Update install.sh --fast and README (#924)
[ROCm/rccl commit: 3807c203fc]
2023-10-19 16:35:10 -06:00
Edgar Gabriel e6c3e9fd8e turn bfd compilation off by default
revert the logic to ensure that we are not accidentally creating
a dependency on the bfd libraries when deploying rccl binaries.


[ROCm/rccl commit: 88a55cef83]
2023-09-29 20:25:33 +00:00
akolliasAMD 12b2fc9774 install.sh fix (#903)
[ROCm/rccl commit: a773def279]
2023-09-29 07:42:17 -06:00
Cen Zhao d3c20a1210 Update install.sh to take "--static" option (#894)
* Update install.sh to take "--static" option

* Fix static build errors

---------

Co-authored-by: BertanDogancay <bertan.dogancay@gmail.com>

[ROCm/rccl commit: fb57a438d7]
2023-09-27 12:45:21 -04:00
Nusrat Islam ffbfe43500 msccl: add NPKIT profiling for MSCCL send-recv
[ROCm/rccl commit: a283f55f12]
2023-09-08 13:11:16 -05:00
arvindcheru 5e60fb93d5 366827 - Disable file reorg backward compatibility support by default (#849)
* Disable file reorg backward compatibility support by default

- File Reorg backward compatibility option set to OFF

* Update install.sh

[ROCm/rccl commit: 6ee758382e]
2023-08-22 09:14:49 -04:00
Ziyue Yang 18811f6159 NPKit update (#844)
* NPKit update

1. Enable NPKit for MSCCL kernels
2. Fix NPKit context index calculation for sendrecv kernels

* Update build script for npkit

[ROCm/rccl commit: d33a70e620]
2023-08-08 17:30:40 -07:00
Bertan Dogancay 74dd9c4807 Disable MSCCL kernels at compile time (#834)
* Disable MSCCL kernels at compile time

[ROCm/rccl commit: 64c32d1c5b]
2023-08-02 09:45:18 -06:00
Wenkai Du 3ce8711153 npkit: separate network timing between send and test (#798)
[ROCm/rccl commit: 0f14e5a640]
2023-07-10 09:31:49 -07:00
akolliasAMD e1ac484d4e added npkit support into the all_gather run ring algorithm (#790)
[ROCm/rccl commit: 9bba4a2f2a]
2023-06-29 13:59:54 -06:00
gilbertlee-amd 2bda28cf7e Limiting # parallel jobs in install script to 16 by default, and new -j/--jobs flag (#785)
[ROCm/rccl commit: bb55848450]
2023-06-22 14:30:44 -06:00
Bertan Dogancay d411d52b19 Disable Colltrace for --fast option (#778)
* Disable Colltrace for --fast option

* Limit nprocs for CI

[ROCm/rccl commit: 0c77c66221]
2023-06-21 14:16:09 -06:00
Bertan Dogancay 1ae071944e improve compilation time and create timetrace plot (#773)
* improve compilation time and create time-trace plot

* set default value for nproc

[ROCm/rccl commit: f35777e9b0]
2023-06-14 09:17:51 -06:00
gilbertlee-amd d2c1295f79 Refactoring CMakeFiles (#755)
[ROCm/rccl commit: 777d8747a5]
2023-05-25 16:08:54 -06:00
akolliasAMD f371afe6fd updated install script to enable all of npkit (#754)
[ROCm/rccl commit: 58db1cb96d]
2023-05-24 14:44:01 -06:00
akolliasAMD 7c15eeb38a added npkit_enable on CI tests (#698)
[ROCm/rccl commit: 9fe5a349f1]
2023-04-05 08:05:23 -06:00
PedramAlizadeh 1fe26823f5 Changed the name of UnitTests to rccl-UnitTests (wrapper executable included).
[ROCm/rccl commit: 45872d170f]
2022-12-13 21:45:57 +00:00
Nirmal Unnikrishnan 4a4c053a6a File reorganization as per the new defined standard
The header files will in /opt/rocm-xxx/include/rccl
Libraries and cmake will be in /opt/rocm-xxx/lib folder.
Added wrappers for header files using rocm-cmake functions for backward compatibility.


[ROCm/rccl commit: 676a4737c1]
2022-03-08 17:32:02 +00:00
gilbertlee-amd a182076a0e Unit test refactor (#500)
Refactoring and consolidating single-process / multi-process unit testing

[ROCm/rccl commit: 29ad0f5fbe]
2022-02-25 08:59:07 -07:00
Stanley Tsang 5b442ffdc1 Set ROCM_PATH CMake variable in install script (#470)
* Fixing cmake_install_prefix search to include /opt/rocm-xxxx

* Removing all hard references to /opt/rocm with ROCM_PATH

* Setting ROCM_PATH CMake variable in install script

[ROCm/rccl commit: 7b8b54955b]
2021-11-18 14:44:19 -07:00
Stanley Tsang a6feafd5dc Build AllReduce only mode (#443)
* Initial commit of all_reduce_only support

* Working AllReduce only build

* Removing printfs and restoring release build

* Restore P2P index

* Updates to build_allreduce_only mode.

* cleaning up macro ifdefs

[ROCm/rccl commit: 7e55b211c5]
2021-10-26 17:36:46 -06:00
Eiden Yoshida a24e180296 Add address sanitizer build option (#389)
[ROCm/rccl commit: eea7b24058]
2021-06-10 09:14:54 -06:00
Stanley Tsang b1f41247a2 Fixing install script so that invoking -r alone does not trigger rebuild (#382)
[ROCm/rccl commit: 820a53287f]
2021-06-04 09:46:04 -06:00
Stanley Tsang 4c42a55c53 Temporarily disabling multiprocess unit tests
[ROCm/rccl commit: 5d3b1fa4d0]
2021-02-25 23:59:44 +00:00
Wenkai Du ea2e665834 Merge remote-tracking branch 'rccl/develop' into 2.8.3
[ROCm/rccl commit: 3a1aebd742]
2021-02-15 13:17:38 -05:00
pramenku 7d2074fb31 Update install.sh (#317)
* Update install.sh

Install.sh having hard code like /opt/rocm/bin/hipcc for rocm_path and default_path=/opt/rocm
This will work only when we have standalone rocm installed. If anyone has installed, side-by-side, they will face below error.

Can we keep like ROCM_PATH=$ROCM_PATH  instead of “default_path” as variable name and 
ROCM_BIN_PATH=$ROCM_PATH/bin ,rocm_path can be replaced with ROCM_BIN_PATH.

This way, we will have option to export ROCM_PATH as env variable as per need and use the script. 
I have also tried locally, it’s working.  ROCM_PATH is common variable name, we are having.

If you are ok, I can also submit the PR for the same.


Error when side-by-side install is done for driver.
# ./install.sh -dtr 2>&1 | tee /dockerx/6519_rccl-test.log
CMake Error at /usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:48 (message):
Could not find compiler set in environment variable CXX:
/opt/rocm/bin/hipcc.
Call Stack (most recent call first):
CMakeLists.txt:12 (project)

CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "/root/driver/rccl/build/release/CMakeFiles/CMakeOutput.log".

* Update install.sh

Removed ROCM_PATH=$ROCM_PATH

* Update install.sh

Set default value if external value is not supplied.

[ROCm/rccl commit: e9f7908592]
2021-02-12 08:44:30 -08:00
Stanley Tsang f152c8d160 Update MP UT to support arbitrary # of GPUs; multiple bugfixes (#16)
* Fixing temp file creation/deletion for Clique kernel mode.

* Refactoring of MP unit tests; include bugfixes and general support for any number of GPUs

* GroupCall MP UT properly quits when too many devices specified

* MP UT will programmatically set NCCL_COMM_ID if not specified; updated install script

[ROCm/rccl commit: d00b7d17bd]
2021-02-05 16:49:25 -08:00
Stanley Tsang d7ed44eb9a Adding multiprocess unit tests (#312)
Adding multiprocess unit tests for collectives.  

To run, NCCL_COMM_ID=$HOSTNAME:12345 build/release/test/UnitTestsMultiProcess

[ROCm/rccl commit: d3fa257682]
2021-01-15 16:34:36 -07:00
Stanley Tsang 209133fadf 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

[ROCm/rccl commit: 8c90aefb6d]
2020-09-10 17:27:22 -06:00
Stanley Tsang bbc4b72ebe Adding static library building option. (#244)
* Adding static library building option.

* Disabling running tests for static build

* Removing static packaging in CI

Co-authored-by: Saad Rahim <saad.rahim@amd.com>

[ROCm/rccl commit: c5d4d9eb76]
2020-08-06 11:19:43 -06:00
Stanley Tsang 56d8c7c893 Adding better naming to unit tests for filtering; adding short and full unit test suites (#235)
[ROCm/rccl commit: 684f3e6af4]
2020-07-21 12:19:47 -06:00
gilbertlee-amd b83acc8032 Removing UnitTest as install, removing unused env var (#231)
[ROCm/rccl commit: f87ba17737]
2020-07-10 09:30:28 -06:00
Stanley Tsang dafe176570 Documentation updates for NCCL 2.7.0 (#219)
* Making hip-clang the default compiler; documentation update

* Adding back --hip-clang to install.sh as a silent option for CI

* Documentation updates for NCCL 2.7

* Restoring deleted line in install script

[ROCm/rccl commit: 8d21adb5e3]
2020-06-16 16:48:11 -06:00
saadrahim 3077902de6 Fixing CI as install.sh script should not install dependencies without user request (#217)
[ROCm/rccl commit: 87db65f22d]
2020-06-05 11:04:03 -06:00
Stanley Tsang 8e43b854f1 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

[ROCm/rccl commit: dc403e0ca2]
2020-06-04 11:58:27 -06:00
Stanley Tsang e5419407c4 Updating copyright notices for 2020.
[ROCm/rccl commit: 20fa04d9b6]
2020-01-29 15:28:08 -08:00
Akila Premachandra 94b33a7550 Added hip-clang options to install script, and openmp/pthread options to CMakeLists.txt
[ROCm/rccl commit: f48ae5c98d]
2019-08-23 22:02:42 +00:00
Stanley Tsang 6aa817d768 Fixing install script to actually install library when requested (#88)
* Fixing install script to actually install library when requested.  Cleaning up unused code.

Removing unused arguments from install script.

Fixing weird whitespacing

* Fixing install script to install to correct location /opt/rocm, now creates symlink in /opt/rocm/lib

* Updates and corrections to README and install script


[ROCm/rccl commit: 329a62a01f]
2019-06-25 17:25:21 -06:00