tf.experimental.dtensor.barrier
Выполняет барьер на сетке.
tf.experimental.dtensor.barrier(
mesh: tf.experimental.dtensor.Mesh,
barrier_name: Optional[str] = None,
timeout_in_ms: Optional[int] = None
)
По возвращении из барьера все операции, выполненные до барьера, завершатся на всех клиентах. В настоящее время мы выделяем полностью фрагментированный тензор с формой сетки и выполняем 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 | Сетка, на которой нужно запустить барьер. |
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