AllReduceOperation
功能
把不同的卡的数据相加或者平均。
该算子涉及多卡相关操作,可根据实际需求配置HCCL相关环境变量,具体请参见《环境变量参考》中 章节。配置TLS等相关操作可查看对应设备的《HCCN Tool 接口参考》。
约束
rank、rankSize、rankRoot需满足以下条件。
- 0 ≤ rank < rankSize
- 0 ≤ rankRoot < rankSize
定义
struct AllReduceParam { int rank = 0; int rankSize = 0; int rankRoot = 0; std::string allReduceType = "sum"; std::string backend = "hccl"; HcclComm hcclComm = nullptr; };
成员
成员名称 |
描述 |
---|---|
rank |
每个进程的编号。 |
rankSize |
总的进程数,不能为0。 |
rankRoot |
主进程编号。 |
allReduceType |
支持“sum”,“prod”,“max”和“min”。 |
backend |
通信后端指示,仅支持“hccl”和“lccl”。 |
hcclComm |
hccl通信域接口获取的地址指针。 |
输入
参数 |
维度 |
数据类型 |
格式 |
---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16/float/int8/int32/int64 |
ND |
输出
参数 |
维度 |
数据类型 |
格式 |
---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16/float/int8/int32/int64 |
ND |