From dfc43715a169ecce944258ed51817fc5e8f76081 Mon Sep 17 00:00:00 2001 From: awaelchli Date: Thu, 22 Sep 2022 00:14:59 +0200 Subject: [PATCH 1/4] Remove deprecated LightningIPUModule --- src/pytorch_lightning/strategies/ipu.py | 40 +------------------ .../deprecated_api/test_remove_1-8.py | 5 --- 2 files changed, 2 insertions(+), 43 deletions(-) diff --git a/src/pytorch_lightning/strategies/ipu.py b/src/pytorch_lightning/strategies/ipu.py index a363d143e523e..7f83e7dff5f37 100644 --- a/src/pytorch_lightning/strategies/ipu.py +++ b/src/pytorch_lightning/strategies/ipu.py @@ -17,15 +17,14 @@ import torch from lightning_utilities.core.apply_func import apply_to_collection -from torch import FloatTensor, Tensor +from torch import Tensor from torch.utils.data import DataLoader, Sampler import pytorch_lightning as pl from lightning_lite.plugins import CheckpointIO, ClusterEnvironment from lightning_lite.plugins.precision.utils import _fp_to_half from lightning_lite.utilities.cloud_io import get_filesystem -from lightning_lite.utilities.enums import PrecisionType -from pytorch_lightning.overrides.base import _LightningModuleWrapperBase, _LightningPrecisionModuleWrapperBase +from pytorch_lightning.overrides.base import _LightningModuleWrapperBase from pytorch_lightning.plugins.precision import PrecisionPlugin from pytorch_lightning.strategies.parallel import ParallelStrategy from pytorch_lightning.strategies.strategy import TBroadcast @@ -34,7 +33,6 @@ from pytorch_lightning.utilities.data import _get_dataloader_init_args_and_kwargs, _reinstantiate_wrapped_cls from pytorch_lightning.utilities.exceptions import MisconfigurationException from pytorch_lightning.utilities.model_helpers import is_overridden -from pytorch_lightning.utilities.rank_zero import rank_zero_deprecation from pytorch_lightning.utilities.types import STEP_OUTPUT if _POPTORCH_AVAILABLE: @@ -43,40 +41,6 @@ poptorch = None -class LightningIPUModule(_LightningModuleWrapperBase): - """ - .. deprecated:: v1.7.0 - ``LightningIPUModule`` has been deprecated in v1.7.0 and will be removed in v1.9.0. - """ - - def __init__( - self, - forward_module: Optional[Union["pl.LightningModule", _LightningPrecisionModuleWrapperBase]] = None, - precision: Union[str, int] = 32, - pl_module: Optional[Union["pl.LightningModule", _LightningPrecisionModuleWrapperBase]] = None, - ) -> None: - rank_zero_deprecation("`LightningIPUModule` has been deprecated in v1.7.0 and will be removed in v1.8.0") - self._validate_init_arguments(pl_module, forward_module) - super().__init__(forward_module=(pl_module or forward_module)) - self.precision = precision - - def forward(self, *inputs: Any, **kwargs: Any) -> Any: - if self.precision == PrecisionType.HALF: - inputs = self._move_float_tensors_to_half(inputs) - - return super().forward(*inputs, **kwargs) - - @staticmethod - def batch_to(data: Tensor) -> Tensor: - if torch.is_floating_point(data): - return data.half() - return data - - def _move_float_tensors_to_half(self, batch: Any) -> Any: - batch = apply_to_collection(batch, (FloatTensor, torch.cuda.FloatTensor), function=self.batch_to) - return batch - - class IPUStrategy(ParallelStrategy): """Plugin for training on IPU devices.""" diff --git a/tests/tests_pytorch/deprecated_api/test_remove_1-8.py b/tests/tests_pytorch/deprecated_api/test_remove_1-8.py index f0910d57828c9..cc9d749e48430 100644 --- a/tests/tests_pytorch/deprecated_api/test_remove_1-8.py +++ b/tests/tests_pytorch/deprecated_api/test_remove_1-8.py @@ -603,11 +603,6 @@ def test_trainer_config_ipus(monkeypatch, trainer_kwargs, expected_ipus): trainer.ipus == expected_ipus -def test_v1_8_0_deprecated_lightning_ipu_module(): - with pytest.deprecated_call(match=r"has been deprecated in v1.7.0 and will be removed in v1.8."): - _ = LightningIPUModule(BoringModel(), 32) - - def test_deprecated_mc_save_checkpoint(): mc = ModelCheckpoint() trainer = Trainer() From 764980476b166700697b499a696338314af2f7ec Mon Sep 17 00:00:00 2001 From: awaelchli Date: Thu, 22 Sep 2022 00:16:01 +0200 Subject: [PATCH 2/4] chlog --- src/pytorch_lightning/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pytorch_lightning/CHANGELOG.md b/src/pytorch_lightning/CHANGELOG.md index 0dbf13e4936b8..2a23b95e34c24 100644 --- a/src/pytorch_lightning/CHANGELOG.md +++ b/src/pytorch_lightning/CHANGELOG.md @@ -198,6 +198,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Removed the deprecated way to set the distributed backend via the environment variable `PL_TORCH_DISTRIBUTED_BACKEND`, in favor of setting the `process_group_backend` in the strategy constructor ([#14693](https://github.com/Lightning-AI/lightning/pull/14693)) +- Removed the deprecated `LightningIPUModule` ([#14830](https://github.com/Lightning-AI/lightning/pull/14830)) + + + ### Fixed From 0e9a33d02f16a7a94833a1a978bc5d4c675b43e1 Mon Sep 17 00:00:00 2001 From: awaelchli Date: Thu, 22 Sep 2022 01:26:02 +0200 Subject: [PATCH 3/4] fix import --- tests/tests_pytorch/deprecated_api/test_remove_1-8.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/tests_pytorch/deprecated_api/test_remove_1-8.py b/tests/tests_pytorch/deprecated_api/test_remove_1-8.py index cc9d749e48430..008e62a18f003 100644 --- a/tests/tests_pytorch/deprecated_api/test_remove_1-8.py +++ b/tests/tests_pytorch/deprecated_api/test_remove_1-8.py @@ -26,7 +26,6 @@ from pytorch_lightning.loggers import CSVLogger, Logger from pytorch_lightning.plugins.precision.precision_plugin import PrecisionPlugin from pytorch_lightning.profilers import AdvancedProfiler, SimpleProfiler -from pytorch_lightning.strategies.ipu import LightningIPUModule from pytorch_lightning.trainer.configuration_validator import _check_datamodule_checkpoint_hooks from pytorch_lightning.trainer.states import RunningStage from pytorch_lightning.utilities.rank_zero import rank_zero_only From e5493ccbe31c6ed8caeb81a1bd4fce2239721d3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mochol=C3=AD?= Date: Thu, 22 Sep 2022 03:07:25 +0200 Subject: [PATCH 4/4] Fix 1.10 depr test --- tests/tests_pytorch/deprecated_api/test_remove_1-10.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/tests_pytorch/deprecated_api/test_remove_1-10.py b/tests/tests_pytorch/deprecated_api/test_remove_1-10.py index 72da0d5be5d79..3ff5490695baa 100644 --- a/tests/tests_pytorch/deprecated_api/test_remove_1-10.py +++ b/tests/tests_pytorch/deprecated_api/test_remove_1-10.py @@ -33,7 +33,6 @@ from pytorch_lightning.plugins.environments import LightningEnvironment from pytorch_lightning.strategies.bagua import LightningBaguaModule from pytorch_lightning.strategies.deepspeed import LightningDeepSpeedModule -from pytorch_lightning.strategies.ipu import LightningIPUModule from pytorch_lightning.strategies.utils import on_colab_kaggle from pytorch_lightning.utilities.apply_func import ( apply_to_collection, @@ -85,7 +84,6 @@ def test_deprecated_amp_level(): LightningBaguaModule, LightningDeepSpeedModule, pytest.param(LightningShardedDataParallel, marks=RunIf(fairscale=True)), - LightningIPUModule, ], ) def test_v1_10_deprecated_pl_module_init_parameter(wrapper_class):