BroadcastOperation

功能

把主进程(root节点)的Tensor数据广播到其他的进程。

该算子涉及多卡相关操作,可根据实际需求配置HCCL相关环境变量,具体请参见《环境变量参考》执行相关 > 集合通信与分布式训练 > 集合通信相关配置章节。配置TLS等相关操作可查看对应设备的。

约束

当使用加速库的通信算子异常退出时,需要清空残留数据,避免影响之后的使用,命令参考如下:

rm -rf /dev/shm/sem.lccl*
rm -rf /dev/shm/sem.hccl*
ipcrm -a

定义

struct BroadcastParam {
    int rank = 0;
    int rankSize = 0;
    int rankRoot = 0;
    HcclComm hcclComm = nullptr; 
    CommMode commMode = COMM_MULTI_PROCESS;
    std::string backend = "hccl";
    std::string rankTableFile;
};

成员

成员名称

描述

rank

当前进程的编号。

rankSize

总的进程数,不能为0。

rankRoot

主进程编号。

hcclComm

HCCL通信域接口获取的地址指针,当值为空指针(nullptr)时不生效。

commMode

通信模式,CommMode类型枚举值。

backend

通信后端指示,支持“hccl”和“lccl”。hccl多线程只支持外部传入通信域方式。

rankTableFile

集群信息的配置文件路径,用于多机通信场景,当前仅支持hccl后端场景。

输入

参数

维度

数据类型

格式

x

[-1,…,-1]

-1表示当前维度的大小没有约束。

float16/float/int8/int32/int64

ND

输出

参数

维度

数据类型

格式

x

[-1,…,-1]

-1表示当前维度的大小没有约束。

float16/float/int8/int32/int64

ND