Differences with torch.distributed.reduce
torch.distributed.reduce
torch.distributed.reduce(
tensor,
dst,
op=ReduceOp.SUM,
group=None,
async_op=False
)
For more information, see torch.distributed.reduce.
mindspore.communication.comm_func.reduce
mindspore.communication.comm_func.reduce(
tensor,
dst,
op=ReduceOp.SUM,
group=None,
)
For more information, see mindspore.communication.comm_func.reduce.
Differences
PyTorch: This interface has five inputs:tensor will store the reduced result of the destination process dst and all tensors must have the same shape. Only the dst process will store the reduced result, other processes’ tensors remain unchanged.group is the communication group and the async op flag async_op. The return is a async work handle if async_op=True, otherwise is None.
MindSpore: This interface has four inputs and an output, the input tensor of each process must have the same shape and will not store the reduced result, and the communication group group and op are same as pytorch. This interface currently does not support the configuration of async_op. The return output is a tensor which store the reduced result of the destination process.Only the output of dst process will store the reduced result, other processes’ tensors remain a zero tensor with the same shape of input tensor.
Class |
Sub-class |
PyTorch |
MindSpore |
Difference |
|---|---|---|---|---|
Parameters |
Parameter 1 |
tensor |
tensor |
PyTorch: the input tensor will store the reduced result of the destination process. MindSpore: the input tensor will not store the reduced result of the destination process |
Parameter 2 |
dst |
dst |
No difference |
|
Parameter 3 |
op |
op |
No difference |
|
Parameter 4 |
group |
group |
No difference |
|
Parameter 5 |
async_op |
- |
PyTorch: the async op flag. MindSpore: does not have this parameter. |
|
Returns |
Single return |
- |
tensor |
PyTorch: does not have a return. MindSpore: returns the tensor after reduce operation. |