tf.experimental.dtensor.barrier
Выполняет барьерную синхронизацию на mesh.
tf.experimental.dtensor.barrier(
mesh: tf.experimental.dtensor.Mesh,
barrier_name: Optional[str] = None,
timeout_in_ms: Optional[int] = None
)
После возврата из барьерной синхронизации все операции, запущенные до неё, будут завершены на всех клиентах. В настоящее время мы выделяем полностью шардированный тензор с формой mesh и выполняем для него all_reduce.
Пример:
Барьерную синхронизацию можно использовать перед выходом из приложения, чтобы убедиться в завершении ожидающих операций.
x = [1, 2, 3] x = dtensor.relayout(x, dtensor.Layout.batch_sharded(mesh, 'batch', 1)) dtensor.barrier(mesh) # At this point all devices on all clients in the mesh have completed # operations before the barrier. Therefore it is OK to tear down the clients. sys.exit()
| Аргументы | |
|---|---|
mesh | Mesh, на котором выполняется барьерная синхронизация. |
barrier_name | Имя барьерной синхронизации. В основном используется для ведения журналов. |
timeout_in_ms | Время ожидания барьерной синхронизации в мс. Если не указано, выполнение блокируется на неопределённое время, пока барьерная синхронизация не будет достигнута всеми клиентами. |
© 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/barrier