diff --git a/docs/source/governance.rst b/docs/source/governance.rst index 5c29f7d0da544..4114ccdb8a818 100644 --- a/docs/source/governance.rst +++ b/docs/source/governance.rst @@ -39,7 +39,7 @@ Board Alumni ------ -- Jeff Yang (`ydcjeff `_) +- Jeff Yang (`ydcjeff `_) - Jeff Ling (`jeffling `_) - Teddy Koker (`teddykoker `_) - Nate Raw (`nateraw `_) diff --git a/pytorch_lightning/trainer/connectors/accelerator_connector.py b/pytorch_lightning/trainer/connectors/accelerator_connector.py index 6250857bf5b7a..2ea875a0c4e9a 100644 --- a/pytorch_lightning/trainer/connectors/accelerator_connector.py +++ b/pytorch_lightning/trainer/connectors/accelerator_connector.py @@ -742,6 +742,11 @@ def set_distributed_mode(self, distributed_backend: Optional[str] = None): # special case with DDP on CPUs if self.distributed_backend == "ddp_cpu": + if _TPU_AVAILABLE: + raise MisconfigurationException( + "`accelerator='ddp_cpu'` is not supported on TPU machines. " + "Learn more: https://github.com/PyTorchLightning/pytorch-lightning/issues/7810" + ) self._distrib_type = DistributedType.DDP_SPAWN if self.num_gpus > 0: rank_zero_warn( diff --git a/tests/accelerators/test_tpu_backend.py b/tests/accelerators/test_tpu_backend.py index c54d9bd905fb2..8a5587c2a6e88 100644 --- a/tests/accelerators/test_tpu_backend.py +++ b/tests/accelerators/test_tpu_backend.py @@ -264,3 +264,10 @@ def on_train_end(self, trainer, pl_module): for param, param_copy in zip(model.parameters(), model_copy.parameters()): assert not torch.equal(param.cpu().data, param_copy.data) + + +@RunIf(tpu=True) +def test_ddp_cpu_not_supported_on_tpus(): + + with pytest.raises(MisconfigurationException, match="`accelerator='ddp_cpu'` is not supported on TPU machines"): + Trainer(accelerator="ddp_cpu")