receive
功能说明
提供group内点对点通信发送数据的receive功能。
函数原型
def receive(shape, data_type, sr_tag, src_rank, group = "hccl_world_group")
参数说明
参数名 |
输入/输出 |
描述 |
---|---|---|
shape |
输入 |
接收tensor的shape。 |
data_type |
输入 |
接收数据的数据类型。 针对Atlas 训练系列产品,tensor支持的数据类型为:int8、uint8、 int16、uint16、int32、uint32、int64、uint64、float16、float32、float64。 针对Atlas 300I Duo 推理卡,支持数据类型为:int8、uint8、int16、uint16、int32、uint32、int64、uint64、float16、float32、float64。 针对Atlas A2 训练系列产品,tensor支持的数据类型为:int8、uint8、int16、uint16、int32、uint32、int64、uint64、float16、float32、float64、bfp16。 |
sr_tag |
输入 |
int类型。 消息标签,相同sr_tag的send/recv对可以收发数据。 |
src_rank |
输入 |
int类型。 接收数据的源节点,该rank是group中的rank id。 |
group |
输入 |
String类型,最大长度为128字节,含结束符。 group名称,可以为用户自定义group或者"hccl_world_group"。 |
返回值
tensor:进行receive操作之后接收到对端的结果tensor。
约束说明
- 调用该接口的rank必须在当前接口入参group定义的范围内,不在此范围内的rank调用该接口会失败。
- 点对点收发数据的rank要属于不同的Server,且昇腾AI处理器物理ID必须相同。
- 要求send和receive必须配对使用,且和图中其他算子要有依赖关系。
支持的型号
Atlas 训练系列产品
Atlas 300I Duo 推理卡
Atlas A2 训练系列产品
调用示例
1 2 3 4 |
from npu_bridge.npu_init import * sr_tag = 0 src_rank = 0 tensor = hccl_ops.receive(tensor.shape, tensor.dtype, sr_tag, src_rank) |