Он сводится к одному GPU по рёбрам в некоторой иерархии и транслируется обратно на каждый GPU по тому же пути. Перед выполнением all-reduce тензоры будут переупакованы или агрегированы для более эффективной межсетевой транспортировки.
Это сокращение создано для Nvidia DGX-1, которое предполагает, что GPU подключены так же, как и на машине DGX-1. Если у вас есть другие межсоединения GPU, скорее всего, оно будет медленнее, чем tf.distribute.ReductionToOneDevice.
Аргументы
num_packs
значения будут упакованы в столько же разбиений. num_packs должно быть больше или равно 0. Когда оно равно нулю, упаковка не выполняется.
Сведение каждого первого элемента в value_destination_pairs к каждому второму элементу, который указывает на пункты назначения.
Это может быть быстрее, чем несколько отдельных reduce операций, потому что мы можем объединить несколько тензоров в один или несколько пакетов перед выполнением уменьшения.
Аргументы
reduce_op
Экземпляр tf.distribute.ReduceOp, который указывает, как per_replica_value будет уменьшаться.
value_destination_pairs
Список или кортеж объектов PerReplica (или тензоров с установленным устройством, если одно устройство) и пунктов назначения.
experimental_hints
A tf.distrbute.experimental.CollectiveHints. Указания для выполнения коллективных операций.
Возвращает
список объектов Mirrored.
Возбуждает
ValueError
если value_destination_pairs не является итерируемым наборами кортежей объектов PerReplica и пунктов назначения.