mindspore.reshard
- mindspore.reshard(tensor, layout)[source]
Specify the tensor by the given layout. The given layout must be type mindspore.Layout, can check
mindspore.Layoutfor reference.In the Graph mode, this function can set the sharding propagation strategy of a tensor. For those tensor do not manually be set, their strategies are decided by the sharding strategy propagation algorithm automatically.
In the PyNative mode, this function can set a tensor sharding strategy in a Cell that runs in the Graph mode (i.e. inside the Cell processed by Cell.shard/F.shard).
Note
In the auto parallel mode, an exception will throw if the search mode is not "sharding_propagation".
In the semi-auto parallel mode, the parallel mode will automatically switch to auto parallel mode with the search mode be set to "sharding_propagation".
Currently, configuring multi-dimension and multi-copy reshard strategy in mindspore.Layout is not supported.
- Parameters
- Returns
Tensor. The mathematically equivalent of the input tensor.
- Raises
Examples
>>> import numpy as np >>> import mindspore as ms >>> from mindspore import ops, nn, Tensor, context, Layout >>> context.set_context(mode=ms.GRAPH_MODE) >>> context.set_auto_parallel_context(parallel_mode=ms.ParallelMode.AUTO_PARALLEL, ... search_mode="sharding_propagation") >>> class Network(nn.Cell): ... def __init__(self): ... super().__init__() ... self.matmul = ops.MatMul() ... self.relu = ops.ReLU() ... def construct(self, x, layout): ... x = self.relu(x) ... x_reshard = ops.reshard(x, layout) ... y = Tensor(np.ones(shape=(128, 128)), dtype=ms.float32) ... x = self.matmul(x_reshard, y) ... return x >>> >>> layout = Layout((4, 2), ("dp", "mp")) >>> input_layout = layout("dp", "mp") >>> net = Network() >>> tensor = Tensor(np.ones(shape=(128, 128)), dtype=ms.float32) >>> out = net(tensor, input_layout)