Spec-Zone.ru › TensorFlow

tf.test.experimental.sync_devices

Синхронизирует все устройства.

Просмотреть псевдонимы

Псевдонимы совместимости для миграции

Подробнее см. в руководстве по миграции.

tf.compat.v1.test.experimental.sync_devices

tf.test.experimental.sync_devices() -> None

По умолчанию GPU работают асинхронно. Это означает, что при выполнении операции на GPU, например tf.linalg.matmul, она может продолжать выполняться на GPU после возврата функции. Для устройств, отличных от GPU, также можно включить асинхронный режим, вызвав tf.config.experimental.set_synchronous_execution(False). Вызов sync_devices() блокирует выполнение до завершения всех ожидающих операций. Это полезно главным образом для измерения производительности во время тестирования производительности.

Например, вот как можно измерить время выполнения tf.linalg.matmul:

import time
x = tf.random.normal((4096, 4096))
tf.linalg.matmul(x, x)  # Warmup.
tf.test.experimental.sync_devices()  # Block until warmup has completed.

start = time.time()
y = tf.linalg.matmul(x, x)
tf.test.experimental.sync_devices()  # Block until matmul has completed.
end = time.time()
print(f'Time taken: {end - start}')

Если не вызвать sync_devices(), выведенное время может оказаться слишком малым. Это связано с тем, что операция может всё ещё выполняться асинхронно в момент выполнения строки end = time.time().

Вызывает исключение
RuntimeError При вызове вне режима Eager. Этот метод необходимо вызывать в режиме Eager, вне любых объектов tf.function.

© 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/test/experimental/sync_devices

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API