HcclScatter

函数原型

HcclResult HcclScatter(void *sendBuf, void *recvBuf, uint64_t recvCount, HcclDataType dataType, uint32_t root, HcclComm comm, aclrtStream stream)

功能说明

集合通信域Scatter操作接口,将root节点的数据均分并散布至其他rank。

参数说明

参数名

输入/输出

描述

sendBuf

输入

源数据buffer地址。

recvBuf

输出

目的数据buffer地址,集合通信结果输出至此buffer中。

recvCount

输入

参与scatter操作的recvBuf的数据个数,比如只有一个int32数据参与,则count=1。

dataType

输入

scatter操作的数据类型。

针对Atlas 训练系列产品,支持数据类型int8, uint8, int16, uint16, int32, uint32, int64, uint64, float16, float32, float64。

针对Atlas A2 训练系列产品,支持数据类型int8, uint8, int16, uint16, int32, uint32, int64, uint64, float16, float32, float64,bfp16。

root

输入

作为scatter root的rank id。

comm

输入

集合通信操作所在的通信域。

stream

输入

本rank所使用的stream。

返回值

HcclResult:接口成功返回HCCL_SUCCESS。其他失败。

约束说明

  1. 所有rank的recvCount、dataType、root均应相同。
  2. 全局只能有1个root节点。
  3. 非root节点的sendBuf可以为空。root节点的sendBuf不能为空。