tf.experimental.dtensor.create_tpu_mesh
Возвращает распределённую сетку TPU, оптимизированную для сокращений типа AllReduce.
tf.experimental.dtensor.create_tpu_mesh(
mesh_dim_names: List[str],
mesh_shape: List[int],
mesh_name: str,
ring_dims: Optional[int] = None,
ring_axes: Optional[List[str]] = None,
ring_bounds: Optional[List[int]] = None,
can_split_host_across_rings: bool = True,
build_ring_across_rings: bool = False,
rotate_ring_across_rings: bool = False,
use_xla_spmd: bool = layout_lib.USE_XLA_SPMD
) -> tf.experimental.dtensor.Mesh
Будут использованы только те ведущие оси, которые заданы параметром ring_axes, необходимые для построения колец, при условии, что подсрез, образованный этими осями, содержит достаточно ядер для создания кольца требуемого размера. Остальные оси в ring_axes не повлияют на результаты.
Эта функция всегда использует все устройства TPU и предлагает больше настроек, чем tf.experimental.dtensor.create_distributed_mesh.
| Аргументы | |
|---|---|
mesh_dim_names | Список имён измерений сетки. |
mesh_shape | Форма сетки. |
mesh_name | Уникальное имя для сетки. Если пустое, будет сгенерировано автоматически. |
ring_dims | Необязательно; количество ведущих (ring_dims > 0) или хвостовых (ring_dims < 0) измерений сетки для построения колец. Если не указано, кольца строятся для всех, кроме первого измерения. |
ring_axes | Необязательно; перестановка ["x", "y", "z", "core"], определяющая порядок осей топологии TPU для построения колец. Если не указано, используется ["core", "x", "y", "z"]. |
ring_bounds | Необязательно; максимальное количество устройств на каждой оси в порядке x, y, z, core. Если не указано, используются пределы физической топологии. |
can_split_host_across_rings | Необязательно; если true, устройства, подключенные к одному хосту (т.е., клиенту DTensor), могут быть назначены разным кольцам. Установка в false может сделать некоторые комбинации аргументов невозможными; см. DeviceAssignmentTest.testCreateMesh[No]SplittingHosts* для примеров. |
build_ring_across_rings | Необязательно; если true, также строит кольцо данных по всем моделям попарно. Это кольцо может быть смещенным. |
rotate_ring_across_rings | Необязательно; если true, строит кольцо данных в столбце-главном, а не в строке-главном порядке. |
use_xla_spmd | Логическое значение. Если True, будет использоваться XLA SPMD вместо DTensor SPMD. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/experimental/dtensor/create_tpu_mesh