Communicator Initialization/Destruction#
Rocprofiler SDK Developer API 0.5.0
ROCm Profiling API and tools
|
Functions | |
ncclResult_t | ncclGetUniqueId (ncclUniqueId *uniqueId) |
Generates an ID for ncclCommInitRank. | |
ncclResult_t | ncclCommInitRankConfig (ncclComm_t *comm, int nranks, ncclUniqueId commId, int rank, ncclConfig_t *config) |
Create a new communicator with config. | |
ncclResult_t | ncclCommInitRank (ncclComm_t *comm, int nranks, ncclUniqueId commId, int rank) |
Creates a new communicator (multi thread/process version). | |
ncclResult_t | ncclCommInitAll (ncclComm_t *comm, int ndev, const int *devlist) |
Creates a clique of communicators (single process version). | |
ncclResult_t | ncclCommFinalize (ncclComm_t comm) |
Finalize a communicator. | |
ncclResult_t | ncclCommDestroy (ncclComm_t comm) |
Frees local resources associated with communicator object. | |
ncclResult_t | ncclCommAbort (ncclComm_t comm) |
Abort any in-progress calls and destroy the communicator object. | |
ncclResult_t | ncclCommSplit (ncclComm_t comm, int color, int key, ncclComm_t *newcomm, ncclConfig_t *config) |
Create one or more communicators from an existing one. | |
Detailed Description
API calls that operate on communicators. Communicators objects are used to launch collective communication operations. Unique ranks between 0 and N-1 must be assigned to each HIP device participating in the same Communicator. Using the same HIP device for multiple ranks of the same Communicator is not supported at this time.
Function Documentation
◆ ncclCommAbort()
ncclResult_t ncclCommAbort | ( | ncclComm_t | comm | ) |
Abort any in-progress calls and destroy the communicator object.
Frees resources associated with communicator object and aborts any operations that might still be running on the device.
- Returns
- Result code. See Result Codes for more details.
- Parameters
-
[in] comm Communicator to abort and destroy
◆ ncclCommDestroy()
ncclResult_t ncclCommDestroy | ( | ncclComm_t | comm | ) |
Frees local resources associated with communicator object.
Destroy all local resources associated with the passed in communicator object
- Returns
- Result code. See Result Codes for more details.
- Parameters
-
[in] comm Communicator to destroy
◆ ncclCommFinalize()
ncclResult_t ncclCommFinalize | ( | ncclComm_t | comm | ) |
Finalize a communicator.
ncclCommFinalize flushes all issued communications and marks communicator state as ncclInProgress. The state will change to ncclSuccess when the communicator is globally quiescent and related resources are freed; then, calling ncclCommDestroy can locally free the rest of the resources (e.g. communicator itself) without blocking.
- Returns
- Result code. See Result Codes for more details.
- Parameters
-
[in] comm Communicator to finalize
◆ ncclCommInitAll()
ncclResult_t ncclCommInitAll | ( | ncclComm_t * | comm, |
int | ndev, | ||
const int * | devlist | ||
) |
Creates a clique of communicators (single process version).
This is a convenience function to create a single-process communicator clique. Returns an array of ndev newly initialized communicators in comm. comm should be pre-allocated with size at least ndev*sizeof(ncclComm_t). If devlist is NULL, the first ndev HIP devices are used. Order of devlist defines user-order of processors within the communicator.
- Returns
- Result code. See Result Codes for more details.
- Parameters
-
[out] comm Pointer to array of created communicators [in] ndev Total number of ranks participating in this communicator [in] devlist Array of GPU device indices to create for
◆ ncclCommInitRank()
ncclResult_t ncclCommInitRank | ( | ncclComm_t * | comm, |
int | nranks, | ||
ncclUniqueId | commId, | ||
int | rank | ||
) |
Creates a new communicator (multi thread/process version).
Rank must be between 0 and nranks-1 and unique within a communicator clique. Each rank is associated to a CUDA device, which has to be set before calling ncclCommInitRank. ncclCommInitRank implicitly syncronizes with other ranks, so it must be called by different threads/processes or use ncclGroupStart/ncclGroupEnd.
- Returns
- Result code. See Result Codes for more details.
- Parameters
-
[out] comm Pointer to created communicator [in] nranks Total number of ranks participating in this communicator [in] commId UniqueId required for initialization [in] rank Current rank to create communicator for
◆ ncclCommInitRankConfig()
ncclResult_t ncclCommInitRankConfig | ( | ncclComm_t * | comm, |
int | nranks, | ||
ncclUniqueId | commId, | ||
int | rank, | ||
ncclConfig_t * | config | ||
) |
Create a new communicator with config.
Create a new communicator (multi thread/process version) with a configuration set by users. See Communicator Configuration for more details. Each rank is associated to a CUDA device, which has to be set before calling ncclCommInitRank.
- Returns
- Result code. See Result Codes for more details.
- Parameters
-
[out] comm Pointer to created communicator [in] nranks Total number of ranks participating in this communicator [in] commId UniqueId required for initialization [in] rank Current rank to create communicator for. [0 to nranks-1] [in] config Pointer to communicator configuration
◆ ncclCommSplit()
ncclResult_t ncclCommSplit | ( | ncclComm_t | comm, |
int | color, | ||
int | key, | ||
ncclComm_t * | newcomm, | ||
ncclConfig_t * | config | ||
) |
Create one or more communicators from an existing one.
Creates one or more communicators from an existing one. Ranks with the same color will end up in the same communicator. Within the new communicator, key will be used to order ranks. NCCL_SPLIT_NOCOLOR as color will indicate the rank will not be part of any group and will therefore return a NULL communicator. If config is NULL, the new communicator will inherit the original communicator's configuration
- Returns
- Result code. See Result Codes for more details.
- Parameters
-
[in] comm Original communicator object for this rank [in] color Color to assign this rank [in] key Key used to order ranks within the same new communicator [out] newcomm Pointer to new communicator [in] config Config file for new communicator. May be NULL to inherit from comm
◆ ncclGetUniqueId()
ncclResult_t ncclGetUniqueId | ( | ncclUniqueId * | uniqueId | ) |
Generates an ID for ncclCommInitRank.
Generates an ID to be used in ncclCommInitRank. ncclGetUniqueId should be called once by a single rank and the ID should be distributed to all ranks in the communicator before using it as a parameter for ncclCommInitRank.
- Returns
- Result code. See Result Codes for more details.
- Parameters
-
[out] uniqueId Pointer to where uniqueId will be stored
Generated by 1.9.8