# tf.distribute.experimental.CommunicationImplementation

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.14.0/tensorflow/python/distribute/collective_util.py#L26-L44) |

Cross device communication implementation.

#### View aliases


**Main aliases**

[`tf.distribute.experimental.CollectiveCommunication`](https://www.tensorflow.org/api_docs/python/tf/distribute/experimental/CommunicationImplementation)
**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

[`tf.compat.v1.distribute.experimental.CollectiveCommunication`](https://www.tensorflow.org/api_docs/python/tf/distribute/experimental/CommunicationImplementation), [`tf.compat.v1.distribute.experimental.CommunicationImplementation`](https://www.tensorflow.org/api_docs/python/tf/distribute/experimental/CommunicationImplementation)

<br />

> [!WARNING]
> **Warning:** The alias [`tf.distribute.experimental.CollectiveCommunication`](https://www.tensorflow.org/versions/r2.14/api_docs/python/tf/distribute/experimental/CommunicationImplementation) is deprecated and will be removed in a future version. Use [`tf.distribute.experimental.CommunicationImplementation`](https://www.tensorflow.org/versions/r2.14/api_docs/python/tf/distribute/experimental/CommunicationImplementation) instead.

- `AUTO`: Automatically chosen by Tensorflow.
- `RING`: TensorFlow's ring algorithms for all-reduce and all-gather.
- `NCCL`: NVIDIA®'s NCCL library. This is now only used for all-reduce on GPUs; all-reduce on CPU, all-gather and broadcast fallbacks to RING.

<br />

<br />

<br />

| ## Class Variables ||
|---|---|
| AUTO | `<CommunicationImplementation.AUTO: 'AUTO'>` |
| NCCL | `<CommunicationImplementation.NCCL: 'NCCL'>` |
| RING | `<CommunicationImplementation.RING: 'RING'>` |

<br />