昇腾社区首页
中文
注册

HcclReduceScatterV

产品支持情况

产品

是否支持

Atlas A2 训练系列产品

Atlas 800I A2 推理产品

x

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品

Atlas 训练系列产品

x

Atlas 200/300/500 推理产品

x

针对Atlas 推理系列产品,仅支持此系列产品中的Atlas 300I Duo 推理卡

功能说明

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

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

函数原型

1
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 A2 训练系列产品,仅支持单机场景,针对Atlas 200T A2 Box16 异构子框,仅支持使用单模组的场景,即只使用前8卡或者后8卡。
  • 针对Atlas 300I Duo 推理卡,最多支持单机两卡的场景。