mindspore.Layout

class mindspore.Layout(device_matrix, alias_name)[源代码]

Layout描述了详细的切分信息。

说明

  • 仅在半自动并行或自动并行模式下有效。

  • device_matrix 的累乘结果必须等于一个pipeline stage中的设备数。

  • 当Layout来构建切分策略时,每个别名只允许用于一次张量的切分。

参数:
  • device_matrix (tuple) - 描述设备排列的形状,其元素类型为int。

  • alias_name (tuple) - device_matrix的每个轴的别名,其元素类型为字符串。使用"interleaved_parallel"作为别名时,会在其对应的切分维度将该算子在单卡内拆分为多个副本,"interleaved_parallel"所对应的device_matrix的值必须为2。

异常:
  • TypeError - device_matrix 不是元组类型。

  • TypeError - alias_name 不是元组类型。

  • ValueError - device_matrix 长度不等于 alias_name 长度。

  • TypeError - device_matrix 的元素不是int类型。

  • TypeError - alias_name 的元素不是str类型。

  • ValueError - alias_name 的元素是一个空的str。

  • ValueError - alias_name 的元素为“None”。

  • ValueError - alias_name 包含重复的元素。

样例:

>>> from mindspore import Layout
>>> layout = Layout((2, 2, 2), ("dp", "sp", "mp"))
>>> layout0 = layout("dp", "mp")
>>> print(layout0.to_dict())
{"device_matrix": (2, 2, 2), "tensor_map": (2, 0)}
>>> # Total device num is 4, but split the tensor in local device into two copies.
>>> layout = Layout((2, 2, 2), ("dp", "sp", "interleaved_parallel"))
>>> layout1 = layout(("dp", "interleaved_parallel"), "sp")
to_dict()[源代码]

将Layout转换为词典 。