比较与torch.distributed.all_reduce的差异
torch.distributed.all_reduce
torch.distributed.all_reduce(
tensor,
op=ReduceOp.SUM,
group=None,
async_op=False
)
更多内容详见torch.distributed.all_reduce。
mindspore.communication.comm_func.all_reduce
mindspore.communication.comm_func.all_reduce(
tensor,
op=ReduceOp.SUM,
group=GlobalComm.WORLD_COMM_GROUP,
async_op=False
)
差异对比
PyTorch:该接口输入tensor、操作类型op、通信域group及异步操作标志async_op,按op指定的操作进行all_reduce操作后,PyTorch将结果写回输入tensor
。当 async_op=True
时,返回异步work句柄,否则返回为空。
MindSpore:该接口输入tensor、操作类型op和通信域group及异步操作标志async_op。按op指定的操作进行all_reduce操作后,MindSpore返回结果tensor
,其shape与输入tensor
一致。当 async_op=True
时,返回异步work句柄,否则返回为空。
分类 |
子类 |
PyTorch |
MindSpore |
差异 |
---|---|---|---|---|
参数 |
参数1 |
tensor |
tensor |
PyTorch:输入tensor,进行all_reduce操作后将结果写回tensor,MindSpore:不会将输出结果写入到输入tensor中。 |
参数2 |
op |
op |
一致 |
|
参数3 |
group |
group |
一致 |
|
参数4 |
async_op |
async_op |
一致 |
|
返回值 |
单返回值 |
async_work_handle |
tuple(tensor, CommHandle) |
PyTorch:如果 |