Spec-Zone.ru › TensorFlow 2.4

tf.distribute.NcclAllReduce

Просмотреть исходный код на GitHub

Реализация NCCL all-reduce для CrossDeviceOps.

Наследуется от: CrossDeviceOps

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

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

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

tf.compat.v1.distribute.NcclAllReduce

tf.distribute.NcclAllReduce(
    num_packs=1
)

Использует Nvidia NCCL для all-reduce. Для пакетного API тензоры будут переупакованы или агрегированы для более эффективной межпроцессорной передачи.

Для сокращений, которые не являются all-reduce, используется tf.distribute.ReductionToOneDevice.

Вот как можно использовать NcclAllReduce в tf.distribute.MirroredStrategy:

strategy = tf.distribute.MirroredStrategy(
  cross_device_ops=tf.distribute.NcclAllReduce())
Аргументы
num_packs целое неотрицательное число. Количество пакетов для разделения значений. Если равно нулю, упаковка не выполняется.
Исключения
ValueError если num_packs отрицательное.

Методы

batch_reduce

Просмотреть исходный код

batch_reduce(
    reduce_op, value_destination_pairs, options=None
)

Сокращение значений до пунктов назначения в пакетах.

См. tf.distribute.StrategyExtended.batch_reduce_to. Это можно вызывать только в контексте кросс-репликации.

Аргументы
reduce_op tf.distribute.ReduceOp, определяющий, как следует комбинировать значения.
value_destination_pairs последовательность пар (значение, пункты назначения). См. tf.distribute.CrossDeviceOps.reduce для описаний.
options tf.distribute.experimental.CommunicationOptions. См. tf.distribute.experimental.CommunicationOptions для подробностей.
Возвращаемое значение
Список tf.Tensor или tf.distribute.DistributedValues, по одному на каждую пару в value_destination_pairs.
Исключения
ValueError если value_destination_pairs не является итерируемым набором кортежей tf.distribute.DistributedValues и пунктов назначения.

broadcast

Просмотреть исходный код

broadcast(
    tensor, destinations
)

Распространение tensor до destinations.

Это можно вызывать только в контексте кросс-репликации.

Аргументы
tensor объект типа tf.Tensor. Значение для распространения.
destinations tf.distribute.DistributedValues, tf.Variable, tf.Tensor или строка устройства. Определяет устройства для распространения. Обратите внимание, что если это tf.Variable, значение распространяется на устройства этой переменной; этот метод не обновляет переменную.
Возвращаемое значение
tf.Tensor или tf.distribute.DistributedValues.

reduce

Просмотреть исходный код

reduce(
    reduce_op, per_replica_value, destinations, options=None
)

Сокращение per_replica_value до destinations.

См. tf.distribute.StrategyExtended.reduce_to. Это можно вызывать только в контексте кросс-репликации.

Аргументы
reduce_op tf.distribute.ReduceOp, определяющий, как следует комбинировать значения.
per_replica_value tf.distribute.DistributedValues или объект типа tf.Tensor.
destinations tf.distribute.DistributedValues, tf.Variable, tf.Tensor или строка устройства. Для выполнения all-reduce передайте то же значение в value и destinations. Обратите внимание, что если это tf.Variable, значение сводится к устройствам этой переменной, и этот метод не обновляет переменную.
options tf.distribute.experimental.CommunicationOptions. См. tf.distribute.experimental.CommunicationOptions для подробностей.
Возвращаемое значение
tf.Tensor или tf.distribute.DistributedValues.
Исключения
ValueError если per_replica_value нельзя преобразовать в tf.distribute.DistributedValues или если destinations не является строкой, tf.Variable или tf.distribute.DistributedValues.

© 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/NcclAllReduce

Spec-Zone.ru

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