HcclAllGatherV

Applicability

Product

Supported

Atlas 350 Accelerator Card

Atlas A3 training product/Atlas A3 inference product

Atlas A2 training product/Atlas A2 inference product

Atlas 200I/500 A2 inference product

Atlas inference product

Atlas training product

For Atlas A2 training product/Atlas A2 inference product, only the Atlas 800T A2 training server, Atlas 900 A2 PoD cluster basic unit, and Atlas 200T A2 Box16 heterogeneous subrack are supported.

For the Atlas inference products, only the Atlas 300I Duo inference card is supported.

Function

Re-sorts the inputs of all ranks in the communicator by rank ID, combines the inputs, and sends the results to the outputs of all ranks.

Unlike AllGather, the AllGatherV operator allows different data sizes to be configured for the input of different ranks in the communicator.

For the AllGatherV operation, each rank receives a set of data that is resorted by rank ID, that is, AllGatherV outputs of all ranks are the same.

Prototype

1
HcclResult HcclAllGatherV(void *sendBuf, uint64_t sendCount, void *recvBuf, const void *recvCounts, const void *recvDispls, HcclDataType dataType, HcclComm comm, aclrtStream stream)

Parameters

Parameter

Input/Output

Description

sendBuf

Input

Address of the send buffer.

sendCount

Input

Size of sendBuf data involved in the AllGatherV operation.

recvBuf

Output

Address of the buffer to receive collective communication results.

The addresses configured for recvBuf and sendBuf must be different.

recvCounts

Output

Size of data in recvBuf of each rank involved in the AllGatherV operation, which is an array of the uint64 type.

The ith element of this array indicates the amount of data to be received from rank i. The data size must be the same as the value of sendCount of rank i.

recvDispls

Output

Offset of data of each rank in recvBuf involved in the AllGatherV operation (unit: dataType), which is an array of the uint64 type.

The ith element of this array indicates the start offset of the data received from rank i in recvBuf.

dataType

Input

Data type of the AllGatherV operation, which is of the HcclDataType type.

Atlas 350 Accelerator Card: The supported data types are int8, uint8, int16, uint16, int32, uint32, int64, uint64, float8-e5m2, float8-e4m3, float8-e8m0, hifloat8, float16, float32, float64, and bfp16.

Atlas A3 training product/Atlas A3 inference product: The supported data types are int8, uint8, int16, uint16, int32, uint32, int64, uint64, float16, float32, float64, and bfp16.

Atlas A2 training product/Atlas A2 inference product: The supported data types are int8, uint8, int16, uint16, int32, uint32, int64, uint64, float16, float32, float64, and bfp16.

Atlas 300I Duo Inference Card: The supported data types are int8, uint8, int16, uint16, int32, uint32, int64, uint64, float16, float32, and float64.

comm

Input

Communicator where the operation is performed.

stream

Input

Stream of the rank.

Returns

HcclResult: HCCL_SUCCESS on success, or else failure.

Constraints

  • All ranks must have the same recvCounts, recvDispls, and dataType.
  • Atlas 350 Accelerator Card: Only the single-server scenario is supported, and communicator operators must be expanded on CCU.
  • Atlas A3 training product/Atlas A3 inference product: Only the single-server scenario is supported.
  • Atlas A2 training product/Atlas A2 inference product: Only the symmetric multi-server distribution scenario is supported. The asymmetric distribution (that is, asymmetric number of devices) scenario is not supported.
  • Atlas 300I Duo Inference Card: Only the single-server scenario is supported, and a maximum of 2 Atlas 300I Duo Inference Cards (4 NPUs) can be deployed on a single server.