Spec-Zone.ru › TensorFlow 2.4

tf.distribute.experimental.CommunicationOptions

Параметры для меж-устройственных коммуникаций, таких как All-reduce.

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

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

См. Руководство по миграции для получения дополнительных сведений.

tf.compat.v1.distribute.experimental.CommunicationOptions

tf.distribute.experimental.CommunicationOptions(
    bytes_per_pack=0, timeout_seconds=None,
    implementation=tf.distribute.experimental.CollectiveCommunication.AUTO
)

Это можно передать методам, таким как tf.distribute.get_replica_context().all_reduce() для оптимизации производительности коллективных операций. Обратите внимание, что это только подсказки, которые могут или не могут изменить фактическое поведение. Некоторые параметры применимы только к определённой стратегии и игнорируются другими.

Одной из распространённых оптимизаций является разделение операций all-reduce для градиентов на несколько пакетов, чтобы обновления весов могли перекрываться с all-reduce градиентов.

Примеры:

options = tf.distribute.experimental.CommunicationOptions(
    bytes_per_pack=50 * 1024 * 1024,
    timeout_seconds=120,
    implementation=tf.distribute.experimental.CommunicationImplementation.NCCL
)
grads = tf.distribute.get_replica_context().all_reduce(
    'sum', grads, options=options)
optimizer.apply_gradients(zip(grads, vars),
    experimental_aggregate_gradients=False)
Аргументы
bytes_per_pack целое неотрицательное число. Разбивает коллективные операции на пакеты определённого размера. Если значение равно нулю, значение определяется автоматически. Это применимо только к all-reduce с MultiWorkerMirroredStrategy в настоящее время.
timeout_seconds число с плавающей точкой или None, таймаут в секундах. Если не None, коллективная операция вызывает tf.errors.DeadlineExceededError, если занимает больше времени, чем этот таймаут. Ноль отключает таймаут. Это может быть полезно при отладке зависаний. Это следует использовать только для отладки, так как это создаёт новую нить для каждой коллективной операции, т.е. увеличивает нагрузку на timeout_seconds * num_collectives_per_second больше нитей. Это работает только для tf.distribute.experimental.MultiWorkerMirroredStrategy.
implementation tf.distribute.experimental.CommunicationImplementation. Это подсказка о предпочтительной реализации коммуникации. Возможные значения включают AUTO, RING, и NCCL. NCCL обычно более производителен для GPU, но не работает для CPU. Это работает только для tf.distribute.experimental.MultiWorkerMirroredStrategy.
Исключения
ValueError При неверных значениях аргументов.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/distribute/experimental/CommunicationOptions

Spec-Zone.ru

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