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