昇腾社区首页
中文
注册

HcclReduceScatterV

功能说明

集合通信算子ReduceScatterV的操作接口。将所有rank的输入相加(或其他归约操作)后,再把结果按照rank编号分散的到各个rank的输出buffer,每个进程拿到其他进程对应rank编号的数据进行归约操作。

与ReduceScatter算子不同的是,ReduceScatterV算子支持为通信域内不同的节点配置不同大小的数据量。

函数原型

HcclResult HcclReduceScatterV(void *sendBuf, const void *sendCounts, const void *sendDispls, void *recvBuf, uint64_t recvCount, HcclDataType dataType, HcclReduceOp op, HcclComm comm, aclrtStream stream)

参数说明

参数名

输入/输出

描述

sendBuf

输入

源数据buffer地址。

sendCounts

输入

参与ReduceScatterV操作的每个rank在sendBuf中的数据size。该数组的第i个元素表示需要向rank i发送的数据量。

sendDispls

输入

参与ReduceScatterV操作的每个rank的数据在sendBuf中的偏移量(单位为dataType)。该数组的第i个元素表示向rank i发送的数据在sendBuf中的偏移量。

recvBuf

输出

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

recvCount

输入

参与ReduceScatterV操作的rank对应recvBuf的数据size。

假设当前rank的编号为i,则recvCount的值需要与sendCounts数组中下标为i的元素值相同。

dataType

输入

ReduceScatterV操作的数据类型,HcclDataType类型。

针对Atlas A2 训练系列产品,支持数据类型:int8、int16、int32、float16、float32、bfp16。

针对Atlas 300I Duo 推理卡,支持数据类型:int16、float16、float32。

op

输入

Reduce的操作类型。

针对Atlas A2 训练系列产品支持操作类型为sum、max、min。

针对Atlas 300I Duo 推理卡,仅支持操作类型sum。

comm

输入

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

stream

输入

本rank所使用的stream。

返回值

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

约束说明

  • 所有rank的sendCounts、sendDispls、dataType、op均应相同。
  • 仅支持单机场景。
  • 针对Atlas 300I Duo 推理卡支持单机两卡的场景。

支持的型号

  • Atlas 800T A2 训练服务器
  • Atlas 900 A2 PoD 集群基础单元
  • Atlas 300I Duo 推理卡