# tf.config.set_soft_device_placement

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.13.1/tensorflow/python/framework/config.py#L272-L298) |

Enable or disable soft device placement.

#### View aliases


**Compat aliases for migration**

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

[`tf.compat.v1.config.set_soft_device_placement`](https://www.tensorflow.org/api_docs/python/tf/config/set_soft_device_placement)

<br />

    tf.config.set_soft_device_placement(
        enabled
    )

If enabled, ops can be placed on different devices than the device explicitly
assigned by the user. This potentially has a large performance cost due to an
increase in data communication between devices.

Some cases where soft_device_placement would modify device assignment are:

1. no GPU/TPU implementation for the OP
2. no GPU devices are known or registered
3. need to co-locate with reftype input(s) which are from CPU
4. an OP can not be compiled by XLA. Common for TPU which always requires the XLA compiler.

For TPUs, if this option is true, a feature called automatic outside
compilation is enabled. Automatic outside compilation will move uncompilable
ops within a TPU program to instead run on the host. This can be used when
encountering compilation failures due to unsupported ops.

> [!NOTE]
> **Note:** by default soft device placement is enabled when running in eager mode (for convenience) and disabled in graph mode (for performance).

<br />

<br />

<br />

| ## Args ||
|---|---|
| `enabled` | A boolean indicating whether to enable soft placement. |

<br />