tf.distribute.HierarchicalCopyAllReduce
Реализация иерархического копирования all-reduce для CrossDeviceOps.
Наследуется от: CrossDeviceOps
tf.distribute.HierarchicalCopyAllReduce(
num_packs=1
)
Использование в блокнотах
| Используется в руководстве |
|---|
Он сводится к одному GPU по краям в некоторой иерархии и транслируется обратно на каждый GPU по тому же пути. Для пакетного API тензоры будут переупакованы или агрегированы для более эффективной межсетевой транспортировки.
Это сокращение, созданное для Nvidia DGX-1, которое предполагает, что GPU соединены так же, как на машине DGX-1. Если у вас есть другие межсоединения GPU, скорее всего, оно будет медленнее, чем tf.distribute.ReductionToOneDevice.
Для сокращений, которые не являются all-reduce, используется tf.distribute.ReductionToOneDevice.
Вот как вы можете использовать HierarchicalCopyAllReduce в tf.distribute.MirroredStrategy:
strategy = tf.distribute.MirroredStrategy( cross_device_ops=tf.distribute.HierarchicalCopyAllReduce())
| Аргументы | |
|---|---|
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. |
© 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/distribute/HierarchicalCopyAllReduce