Add MSCCL Support (#658)

* Add MSCCL support

* Add alignment and message size checking

* Fix nRanks checking, in-place and out-of-place tests and group call handling

* Fix hipGraph unit test

* Change MSCCL init warning to INFO

* Revise license info
This commit is contained in:
Ziyue Yang
2022-12-13 07:51:04 +08:00
committed by GitHub
parent b953544a59
commit adafc0f759
38 changed files with 40923 additions and 11 deletions
+11
View File
@@ -1,6 +1,7 @@
/*************************************************************************
* Copyright (c) 2015-2022, NVIDIA CORPORATION. All rights reserved.
* Modifications Copyright (c) 2019-2022 Advanced Micro Devices, Inc. All rights reserved.
* Modifications Copyright (c) Microsoft Corporation. Licensed under the MIT License.
*
* See LICENSE.txt for license information
************************************************************************/
@@ -39,6 +40,8 @@
//#include <hsa/hsa_ext_amd.h>
// [/RCCL]
#include "msccl/msccl_lifecycle.h"
#define STR2(v) #v
#define STR(v) STR2(v)
@@ -608,6 +611,10 @@ static ncclResult_t devCommSetup(ncclComm_t comm) {
NCCLCHECK(ncclCudaCalloc(&tmpCommAndChans.comm.devProf, MAXCHANNELS*PROFILE_NUM_LAUNCHES), comm->sideStream);
#endif
if (mscclEnabled()) {
NCCLCHECK(mscclInit(comm));
}
NCCLCHECK(ncclCudaMemcpyAsync(devCommAndChans, &tmpCommAndChans, 1, comm->deviceStream.cudaStream));
CUDACHECK(cudaStreamSynchronize(comm->deviceStream.cudaStream));
NCCLCHECK(ncclStrongStreamRelease(ncclCudaGraphNone(), &comm->deviceStream));
@@ -1703,6 +1710,10 @@ static ncclResult_t commCleanup(ncclComm_t comm) {
NCCLCHECK(NpKit::Shutdown());
#endif
if (mscclEnabled()) {
NCCLCHECK(mscclTeardown());
}
return ncclSuccess;
}