From 75901efa286abd370d913511d5114566b4223aef Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Tue, 9 Jan 2024 15:41:05 +0800 Subject: [PATCH 01/15] first commit Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- modules/torch_compile.ipynb | 194 ++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 modules/torch_compile.ipynb diff --git a/modules/torch_compile.ipynb b/modules/torch_compile.ipynb new file mode 100644 index 0000000000..8f6143314f --- /dev/null +++ b/modules/torch_compile.ipynb @@ -0,0 +1,194 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) MONAI Consortium \n", + "Licensed under the Apache License, Version 2.0 (the \"License\"); \n", + "you may not use this file except in compliance with the License. \n", + "You may obtain a copy of the License at \n", + "    http://www.apache.org/licenses/LICENSE-2.0 \n", + "Unless required by applicable law or agreed to in writing, software \n", + "distributed under the License is distributed on an \"AS IS\" BASIS, \n", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. \n", + "See the License for the specific language governing permissions and \n", + "limitations under the License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# PyTorch 2.0 Integration\n", + "\n", + "This notebook introduces how to use `torch.compile` in MONAI pipeline. It mainly includes several parts as shown below.\n", + "- What is torch.compile?\n", + "\n", + " `torch.compile`` is the main API for PyTorch 2.0, which wraps your model and returns a compiled model. It is a fully additive (and optional) feature and hence 2.0 is 100% backward compatible by definition.\n", + "\n", + "- GDS hardware and software requirements and how to install GDS.\n", + "\n", + "\n", + "\n", + "- A simple demo comparing the time taken with and without GDS.\n", + "\n", + " In this tutorial, we are creating a conda environment to install `kvikio`, which provides a Python API for GDS. To install `kvikio` using other methods, refer to https://github.com/rapidsai/kvikio#install.\n", + "\n", + " ```conda create -n gds_env -c rapidsai-nightly -c conda-forge python=3.10 cuda-version=11.8 kvikio```\n", + "\n", + "- An End-to-end workflow Profiling Comparison" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setup environment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!python -c \"import monai\" || pip install -q \"monai-weekly[nibabel, matplotlib]\"\n", + "!pip install -q torch>=2.1.0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setup imports" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import time\n", + "import torch\n", + "import shutil\n", + "import tempfile\n", + "\n", + "import monai\n", + "import monai.transforms as mt\n", + "from monai.config import print_config\n", + "from monai.utils import set_determinism\n", + "\n", + "print_config()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setup data directory\n", + "\n", + "You can specify a directory with the `MONAI_DATA_DIRECTORY` environment variable. \n", + "This allows you to save results and reuse downloads. \n", + "If not specified, a temporary directory will be used." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "directory = os.environ.get(\"MONAI_DATA_DIRECTORY\")\n", + "root_dir = tempfile.mkdtemp() if directory is None else directory\n", + "print(root_dir)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## A simple demo to show how to use the `torch.compile`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sample_url = \"https://github.com/Project-MONAI/MONAI-extra-test-data/releases\"\n", + "sample_url += \"/download/0.8.1/totalSegmentator_mergedLabel_samples.zip\"\n", + "monai.apps.download_and_extract(sample_url, output_dir=root_dir, filepath=\"samples.zip\")\n", + "\n", + "base_name = os.path.join(root_dir, \"totalSegmentator_mergedLabel_samples\")\n", + "input_data = []\n", + "for filename in os.listdir(os.path.join(base_name, \"imagesTr\")):\n", + " input_data.append(\n", + " {\n", + " \"image\": os.path.join(base_name, \"imagesTr\", filename),\n", + " \"label\": os.path.join(base_name, \"labelsTr\", filename),\n", + " }\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Set deterministic for reproducibility" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "set_determinism(seed=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setup transforms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "device = \"cuda:0\" if torch.cuda.is_available() else \"cpu\"\n", + "transform = mt.Compose(\n", + " [\n", + " mt.LoadImageD(keys=(\"image\", \"label\"), image_only=True, ensure_channel_first=True),\n", + " mt.SpacingD(keys=(\"image\", \"label\"), pixdim=1.5),\n", + " mt.EnsureTypeD(keys=(\"image\", \"label\"), device=device),\n", + " mt.RandRotateD(\n", + " keys=(\"image\", \"label\"),\n", + " prob=1.0,\n", + " range_x=0.1,\n", + " range_y=0.1,\n", + " range_z=0.3,\n", + " mode=(\"bilinear\", \"nearest\"),\n", + " ),\n", + " mt.RandZoomD(keys=(\"image\", \"label\"), prob=1.0, min_zoom=0.8, max_zoom=1.2, mode=(\"trilinear\", \"nearest\")),\n", + " mt.ResizeWithPadOrCropD(keys=(\"image\", \"label\"), spatial_size=(200, 210, 220)),\n", + " ]\n", + ")" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 37a1a7faf8293ea8e47b3914a197de9e60806eaa Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Tue, 9 Jan 2024 09:15:04 +0000 Subject: [PATCH 02/15] update tutorial Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- modules/torch_compile.ipynb | 272 +++++++++++++++++++++++++++++++++--- 1 file changed, 254 insertions(+), 18 deletions(-) diff --git a/modules/torch_compile.ipynb b/modules/torch_compile.ipynb index 8f6143314f..4159649fc5 100644 --- a/modules/torch_compile.ipynb +++ b/modules/torch_compile.ipynb @@ -25,19 +25,15 @@ "This notebook introduces how to use `torch.compile` in MONAI pipeline. It mainly includes several parts as shown below.\n", "- What is torch.compile?\n", "\n", - " `torch.compile`` is the main API for PyTorch 2.0, which wraps your model and returns a compiled model. It is a fully additive (and optional) feature and hence 2.0 is 100% backward compatible by definition.\n", + " `torch.compile` is the main API for PyTorch 2.0, which wraps your model and returns a compiled model. It is a fully additive (and optional) feature and hence 2.0 is 100% backward compatible by definition.\n", "\n", - "- GDS hardware and software requirements and how to install GDS.\n", + "- A simple demo to show how to use the `torch.compile`.\n", "\n", + "- Use the `torch.compile` in the bundle.\n", "\n", + "- Compared results\n", "\n", - "- A simple demo comparing the time taken with and without GDS.\n", - "\n", - " In this tutorial, we are creating a conda environment to install `kvikio`, which provides a Python API for GDS. To install `kvikio` using other methods, refer to https://github.com/rapidsai/kvikio#install.\n", - "\n", - " ```conda create -n gds_env -c rapidsai-nightly -c conda-forge python=3.10 cuda-version=11.8 kvikio```\n", - "\n", - "- An End-to-end workflow Profiling Comparison" + " We run an end-to-end pipeline based on [\"fast_training_tutorial.ipynb\"](https://github.com/Project-MONAI/tutorials/blob/main/acceleration/fast_training_tutorial.ipynb), and we can see a 10% speed up." ] }, { @@ -73,13 +69,14 @@ "import os\n", "import time\n", "import torch\n", - "import shutil\n", "import tempfile\n", "\n", "import monai\n", "import monai.transforms as mt\n", "from monai.config import print_config\n", "from monai.utils import set_determinism\n", + "from monai.bundle import download, create_workflow\n", + "from monai.engines import SupervisedTrainer\n", "\n", "print_config()" ] @@ -97,9 +94,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/workspace/data\n" + ] + } + ], "source": [ "directory = os.environ.get(\"MONAI_DATA_DIRECTORY\")\n", "root_dir = tempfile.mkdtemp() if directory is None else directory\n", @@ -115,9 +120,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-01-09 09:01:27,769 - INFO - Expected md5 is None, skip md5 check for file samples.zip.\n", + "2024-01-09 09:01:27,769 - INFO - File exists: samples.zip, skipped downloading.\n", + "2024-01-09 09:01:27,771 - INFO - Writing into directory: /workspace/data.\n" + ] + } + ], "source": [ "sample_url = \"https://github.com/Project-MONAI/MONAI-extra-test-data/releases\"\n", "sample_url += \"/download/0.8.1/totalSegmentator_mergedLabel_samples.zip\"\n", @@ -143,7 +158,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -159,7 +174,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -178,15 +193,236 @@ " mode=(\"bilinear\", \"nearest\"),\n", " ),\n", " mt.RandZoomD(keys=(\"image\", \"label\"), prob=1.0, min_zoom=0.8, max_zoom=1.2, mode=(\"trilinear\", \"nearest\")),\n", - " mt.ResizeWithPadOrCropD(keys=(\"image\", \"label\"), spatial_size=(200, 210, 220)),\n", + " mt.ResizeWithPadOrCropD(keys=(\"image\", \"label\"), spatial_size=(96, 96, 96)),\n", + " # add `FromMetaTensorD` to convert `MetaTensor` to `torch.Tensor`\n", + " mt.FromMetaTensorD(keys=(\"image\", \"label\"))\n", " ]\n", ")" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create model\n", + "\n", + "Here we used `create_workflow` to get the network instance from the bundle. You can also initialize your own network." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-01-09 09:01:30,861 - INFO - --- input summary of monai.bundle.scripts.download ---\n", + "2024-01-09 09:01:30,863 - INFO - > name: 'wholeBody_ct_segmentation'\n", + "2024-01-09 09:01:30,864 - INFO - > bundle_dir: './bundle'\n", + "2024-01-09 09:01:30,865 - INFO - > source: 'monaihosting'\n", + "2024-01-09 09:01:30,865 - INFO - > remove_prefix: 'monai_'\n", + "2024-01-09 09:01:30,866 - INFO - > progress: True\n", + "2024-01-09 09:01:30,867 - INFO - ---\n", + "\n", + "\n", + "2024-01-09 09:01:31,054 - INFO - Expected md5 is None, skip md5 check for file bundle/wholeBody_ct_segmentation_v0.2.1.zip.\n", + "2024-01-09 09:01:31,055 - INFO - File exists: bundle/wholeBody_ct_segmentation_v0.2.1.zip, skipped downloading.\n", + "2024-01-09 09:01:31,056 - INFO - Writing into directory: bundle.\n", + "2024-01-09 09:01:31,968 - INFO - --- input summary of monai.bundle.scripts.run ---\n", + "2024-01-09 09:01:31,969 - INFO - > config_file: './bundle/wholeBody_ct_segmentation/configs/train.json'\n", + "2024-01-09 09:01:31,970 - INFO - > workflow_type: 'train'\n", + "2024-01-09 09:01:31,971 - INFO - ---\n", + "\n", + "\n", + "2024-01-09 09:01:31,972 - INFO - Setting logging properties based on config: bundle/wholeBody_ct_segmentation/configs/logging.conf.\n" + ] + } + ], + "source": [ + "bundle_dir = \"./bundle\"\n", + "os.makedirs(bundle_dir, exist_ok=True)\n", + "\n", + "bundle = download(\"wholeBody_ct_segmentation\", bundle_dir=bundle_dir)\n", + "config_file = os.path.join(bundle_dir, 'wholeBody_ct_segmentation/configs/train.json')\n", + "train_workflow = create_workflow(config_file=str(config_file), workflow_type=\"train\")\n", + "\n", + "def create_model():\n", + " return train_workflow.network_def.to(device)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Without compile" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Loading dataset: 100%|██████████| 20/20 [00:05<00:00, 3.46it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch0 time 2.3300938606262207\n", + "epoch1 time 1.0478227138519287\n", + "epoch2 time 1.0480997562408447\n", + "epoch3 time 1.0515162944793701\n", + "epoch4 time 1.0385167598724365\n", + "epoch5 time 1.0458405017852783\n", + "total time 105.7378671169281\n" + ] + } + ], + "source": [ + "epoch_num = 100\n", + "dataset = monai.data.CacheDataset(data=input_data, transform=transform, cache_rate=1.0, num_workers=4)\n", + "data_loader = monai.data.DataLoader(dataset, batch_size=1)\n", + "\n", + "model = create_model()\n", + "s = time.time()\n", + "for i in range(epoch_num):\n", + " e = time.time()\n", + " for batch_data in data_loader:\n", + " inputs, labels = (\n", + " batch_data[\"image\"].to(device),\n", + " batch_data[\"label\"].to(device),\n", + " )\n", + " out = model(inputs)\n", + " if i <= 5:\n", + " print(f\"epoch{i} time\", time.time() - e)\n", + "print(\"total time\", time.time() - s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### With compile\n", + "\n", + "The only difference is that we wrap the model with `torch.compile`. As [torch](https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html) mentioned, we can see that `torch.compile`` takes longer in the first epoch, as it must compile the model, but in subsequent iterations, we can see a significant improvement compared to eager." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Loading dataset: 100%|██████████| 20/20 [00:04<00:00, 4.15it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch0 time 15.756214141845703\n", + "epoch1 time 0.528465986251831\n", + "epoch2 time 0.5261788368225098\n", + "epoch3 time 0.5370438098907471\n", + "epoch4 time 0.532045841217041\n", + "epoch5 time 0.5341622829437256\n", + "total time 67.98181772232056\n" + ] + } + ], + "source": [ + "dataset = monai.data.CacheDataset(data=input_data, transform=transform, cache_rate=1.0, num_workers=4)\n", + "data_loader = monai.data.DataLoader(dataset, batch_size=1)\n", + "\n", + "model = torch.compile(create_model())\n", + "s = time.time()\n", + "for i in range(epoch_num):\n", + " e = time.time()\n", + " for batch_data in data_loader:\n", + " inputs, labels = (\n", + " batch_data[\"image\"].to(device),\n", + " batch_data[\"label\"].to(device),\n", + " )\n", + " out = model(inputs)\n", + " if i <= 5:\n", + " print(f\"epoch{i} time\", time.time() - e)\n", + "print(\"total time\", time.time() - s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Use the `torch.compile` in the bundle\n", + "\n", + "We can simply set `compile=True` in the `SupervisedTrainer` and `SupervisedEvaluator`. Here we convert data to `torch.Tensor` internally if set `compile=True`. Here is the [ticket](https://github.com/pytorch/pytorch/issues/117026) we can track." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "trainer = SupervisedTrainer(\n", + " device=device,\n", + " max_epochs=epoch_num,\n", + " train_data_loader=data_loader,\n", + " network=model,\n", + " # optimizer=optimizer,\n", + " # loss_function=loss_function,\n", + " # inferer=SimpleInferer(),\n", + " # postprocessing=post_transform,\n", + " # amp=args.amp,\n", + " # key_train_metric={\n", + " # \"train_dice\": MeanDice(\n", + " # include_background=False,\n", + " # output_transform=from_engine([\"pred\", \"label\"]),\n", + " # )\n", + " # },\n", + " compile=True\n", + " # you can also add `compile_kwargs` dict of the args for `torch.compile()` API\n", + " compile_kwargs={}\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compared results\n", + "\n", + "We used `torch.compile` in fast_training_tutorial.ipynb and see 10% speed up." + ] } ], "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" } }, "nbformat": 4, From aecbd76287223f77e54a3766169bb4f0348a2ed4 Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Tue, 9 Jan 2024 17:17:51 +0800 Subject: [PATCH 03/15] update figures Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- figures/total_epoch_time_comparison-compile.png | Bin 0 -> 90595 bytes modules/torch_compile.ipynb | 9 ++++++++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 figures/total_epoch_time_comparison-compile.png diff --git a/figures/total_epoch_time_comparison-compile.png b/figures/total_epoch_time_comparison-compile.png new file mode 100644 index 0000000000000000000000000000000000000000..d88ef7d44a8693b6171705b6e0badbece0a01a45 GIT binary patch literal 90595 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 i@W0Db{~yd|X=9UX_hQ8=YiBFsCs Date: Tue, 9 Jan 2024 09:19:57 +0000 Subject: [PATCH 04/15] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- modules/torch_compile.ipynb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/torch_compile.ipynb b/modules/torch_compile.ipynb index 9065aab720..440add1d26 100644 --- a/modules/torch_compile.ipynb +++ b/modules/torch_compile.ipynb @@ -195,7 +195,7 @@ " mt.RandZoomD(keys=(\"image\", \"label\"), prob=1.0, min_zoom=0.8, max_zoom=1.2, mode=(\"trilinear\", \"nearest\")),\n", " mt.ResizeWithPadOrCropD(keys=(\"image\", \"label\"), spatial_size=(96, 96, 96)),\n", " # add `FromMetaTensorD` to convert `MetaTensor` to `torch.Tensor`\n", - " mt.FromMetaTensorD(keys=(\"image\", \"label\"))\n", + " mt.FromMetaTensorD(keys=(\"image\", \"label\")),\n", " ]\n", ")" ] @@ -245,9 +245,10 @@ "os.makedirs(bundle_dir, exist_ok=True)\n", "\n", "bundle = download(\"wholeBody_ct_segmentation\", bundle_dir=bundle_dir)\n", - "config_file = os.path.join(bundle_dir, 'wholeBody_ct_segmentation/configs/train.json')\n", + "config_file = os.path.join(bundle_dir, \"wholeBody_ct_segmentation/configs/train.json\")\n", "train_workflow = create_workflow(config_file=str(config_file), workflow_type=\"train\")\n", "\n", + "\n", "def create_model():\n", " return train_workflow.network_def.to(device)" ] From 7b03936c91a1805a0ad2931478cc3f5a2cf0ff0d Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Tue, 9 Jan 2024 17:42:35 +0800 Subject: [PATCH 05/15] fix ci Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- modules/torch_compile.ipynb | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/modules/torch_compile.ipynb b/modules/torch_compile.ipynb index 440add1d26..1247535bad 100644 --- a/modules/torch_compile.ipynb +++ b/modules/torch_compile.ipynb @@ -391,7 +391,7 @@ " # output_transform=from_engine([\"pred\", \"label\"]),\n", " # )\n", " # },\n", - " compile=True\n", + " compile=True,\n", " # you can also add `compile_kwargs` dict of the args for `torch.compile()` API\n", " compile_kwargs={}\n", ")" @@ -407,11 +407,6 @@ "\n", "![compile_benchmark_total_epoch_time_comparison](../figures/total_epoch_time_comparison-compile.png)" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] } ], "metadata": { From 7f7db3e5edf1df67d5825dfb446b5ae623e1b493 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 09:43:30 +0000 Subject: [PATCH 06/15] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- modules/torch_compile.ipynb | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/modules/torch_compile.ipynb b/modules/torch_compile.ipynb index 1247535bad..a2b13e5ed4 100644 --- a/modules/torch_compile.ipynb +++ b/modules/torch_compile.ipynb @@ -376,24 +376,24 @@ "outputs": [], "source": [ "trainer = SupervisedTrainer(\n", - " device=device,\n", - " max_epochs=epoch_num,\n", - " train_data_loader=data_loader,\n", - " network=model,\n", - " # optimizer=optimizer,\n", - " # loss_function=loss_function,\n", - " # inferer=SimpleInferer(),\n", - " # postprocessing=post_transform,\n", - " # amp=args.amp,\n", - " # key_train_metric={\n", - " # \"train_dice\": MeanDice(\n", - " # include_background=False,\n", - " # output_transform=from_engine([\"pred\", \"label\"]),\n", - " # )\n", - " # },\n", - " compile=True,\n", - " # you can also add `compile_kwargs` dict of the args for `torch.compile()` API\n", - " compile_kwargs={}\n", + " device=device,\n", + " max_epochs=epoch_num,\n", + " train_data_loader=data_loader,\n", + " network=model,\n", + " # optimizer=optimizer,\n", + " # loss_function=loss_function,\n", + " # inferer=SimpleInferer(),\n", + " # postprocessing=post_transform,\n", + " # amp=args.amp,\n", + " # key_train_metric={\n", + " # \"train_dice\": MeanDice(\n", + " # include_background=False,\n", + " # output_transform=from_engine([\"pred\", \"label\"]),\n", + " # )\n", + " # },\n", + " compile=True,\n", + " # you can also add `compile_kwargs` dict of the args for `torch.compile()` API\n", + " compile_kwargs={},\n", ")" ] }, From 82275a51cefaf711d25ea369d612a004dca26109 Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Tue, 16 Jan 2024 06:37:30 +0000 Subject: [PATCH 07/15] update tutorial Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- .../total_epoch_time_comparison-compile.png | Bin 90595 -> 98073 bytes modules/torch_compile.ipynb | 316 +++++++++++------- 2 files changed, 202 insertions(+), 114 deletions(-) diff --git a/figures/total_epoch_time_comparison-compile.png b/figures/total_epoch_time_comparison-compile.png index d88ef7d44a8693b6171705b6e0badbece0a01a45..2fcafe9af5496940281354d2148e3c5ea0779e58 100644 GIT binary patch literal 98073 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 VZO)l*MQ9XUS1ze3e^fGg@L%}~MSlPQ literal 90595 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 i@W0Db{~yd|X=9UX_hQ8=YiBFsCs name: 'wholeBody_ct_segmentation'\n", - "2024-01-09 09:01:30,864 - INFO - > bundle_dir: './bundle'\n", - "2024-01-09 09:01:30,865 - INFO - > source: 'monaihosting'\n", - "2024-01-09 09:01:30,865 - INFO - > remove_prefix: 'monai_'\n", - "2024-01-09 09:01:30,866 - INFO - > progress: True\n", - "2024-01-09 09:01:30,867 - INFO - ---\n", + "2024-01-16 05:55:59,615 - INFO - --- input summary of monai.bundle.scripts.download ---\n", + "2024-01-16 05:55:59,617 - INFO - > name: 'wholeBody_ct_segmentation'\n", + "2024-01-16 05:55:59,617 - INFO - > bundle_dir: './bundle'\n", + "2024-01-16 05:55:59,618 - INFO - > source: 'monaihosting'\n", + "2024-01-16 05:55:59,619 - INFO - > remove_prefix: 'monai_'\n", + "2024-01-16 05:55:59,619 - INFO - > progress: True\n", + "2024-01-16 05:55:59,620 - INFO - ---\n", "\n", "\n", - "2024-01-09 09:01:31,054 - INFO - Expected md5 is None, skip md5 check for file bundle/wholeBody_ct_segmentation_v0.2.1.zip.\n", - "2024-01-09 09:01:31,055 - INFO - File exists: bundle/wholeBody_ct_segmentation_v0.2.1.zip, skipped downloading.\n", - "2024-01-09 09:01:31,056 - INFO - Writing into directory: bundle.\n", - "2024-01-09 09:01:31,968 - INFO - --- input summary of monai.bundle.scripts.run ---\n", - "2024-01-09 09:01:31,969 - INFO - > config_file: './bundle/wholeBody_ct_segmentation/configs/train.json'\n", - "2024-01-09 09:01:31,970 - INFO - > workflow_type: 'train'\n", - "2024-01-09 09:01:31,971 - INFO - ---\n", + "2024-01-16 05:55:59,797 - INFO - Expected md5 is None, skip md5 check for file bundle/wholeBody_ct_segmentation_v0.2.1.zip.\n", + "2024-01-16 05:55:59,798 - INFO - File exists: bundle/wholeBody_ct_segmentation_v0.2.1.zip, skipped downloading.\n", + "2024-01-16 05:55:59,799 - INFO - Writing into directory: bundle.\n", + "2024-01-16 05:56:00,729 - INFO - --- input summary of monai.bundle.scripts.run ---\n", + "2024-01-16 05:56:00,729 - INFO - > config_file: './bundle/wholeBody_ct_segmentation/configs/train.json'\n", + "2024-01-16 05:56:00,730 - INFO - > workflow_type: 'train'\n", + "2024-01-16 05:56:00,731 - INFO - ---\n", "\n", "\n", - "2024-01-09 09:01:31,972 - INFO - Setting logging properties based on config: bundle/wholeBody_ct_segmentation/configs/logging.conf.\n" + "2024-01-16 05:56:00,732 - INFO - Setting logging properties based on config: bundle/wholeBody_ct_segmentation/configs/logging.conf.\n" ] } ], "source": [ + "device = \"cuda:0\" if torch.cuda.is_available() else \"cpu\"\n", "bundle_dir = \"./bundle\"\n", "os.makedirs(bundle_dir, exist_ok=True)\n", "\n", @@ -249,7 +248,7 @@ "train_workflow = create_workflow(config_file=str(config_file), workflow_type=\"train\")\n", "\n", "\n", - "def create_model():\n", + "def init_model(device):\n", " return train_workflow.network_def.to(device)" ] }, @@ -257,107 +256,207 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Without compile" + "## Set up DataLoader and train transforms" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Loading dataset: 100%|██████████| 20/20 [00:05<00:00, 3.46it/s]\n" + "Loading dataset: 100%|██████████| 20/20 [00:05<00:00, 3.85it/s]\n" ] - }, + } + ], + "source": [ + "device = \"cuda:0\" if torch.cuda.is_available() else \"cpu\"\n", + "\n", + "transform = mt.Compose(\n", + " [\n", + " mt.LoadImageD(keys=(\"image\", \"label\"), image_only=True, ensure_channel_first=True),\n", + " mt.SpacingD(keys=(\"image\", \"label\"), pixdim=1.5),\n", + " mt.EnsureTypeD(keys=(\"image\", \"label\"), device=device),\n", + " mt.RandRotateD(\n", + " keys=(\"image\", \"label\"),\n", + " prob=1.0,\n", + " range_x=0.1,\n", + " range_y=0.1,\n", + " range_z=0.3,\n", + " mode=(\"bilinear\", \"nearest\"),\n", + " ),\n", + " mt.RandZoomD(keys=(\"image\", \"label\"), prob=1.0, min_zoom=0.8, max_zoom=1.2, mode=(\"trilinear\", \"nearest\")),\n", + " mt.ResizeWithPadOrCropD(keys=(\"image\", \"label\"), spatial_size=(96, 96, 96)),\n", + " # add `FromMetaTensorD` to convert `MetaTensor` to `torch.Tensor`\n", + " mt.FromMetaTensorD(keys=(\"image\", \"label\")),\n", + " ]\n", + ")\n", + "\n", + "dataset = monai.data.CacheDataset(data=input_data, transform=transform, cache_rate=1.0, num_workers=4)\n", + "data_loader = monai.data.DataLoader(dataset, batch_size=1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Training in eager mode" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "epoch0 time 2.3300938606262207\n", - "epoch1 time 1.0478227138519287\n", - "epoch2 time 1.0480997562408447\n", - "epoch3 time 1.0515162944793701\n", - "epoch4 time 1.0385167598724365\n", - "epoch5 time 1.0458405017852783\n", - "total time 105.7378671169281\n" + "epoch 1/20 average loss: 5.3744, time: 0.0841\n", + "epoch 2/20 average loss: 4.9033, time: 0.0835\n", + "epoch 3/20 average loss: 4.2363, time: 0.0837\n", + "epoch 4/20 average loss: 3.7749, time: 0.0838\n", + "epoch 5/20 average loss: 3.4824, time: 0.0844\n", + "median training time per iteration: 0.0838 seconds\n" ] } ], "source": [ - "epoch_num = 100\n", - "dataset = monai.data.CacheDataset(data=input_data, transform=transform, cache_rate=1.0, num_workers=4)\n", - "data_loader = monai.data.DataLoader(dataset, batch_size=1)\n", + "# start a typical PyTorch training\n", + "epoch_num = 20\n", + "model = init_model(device)\n", + "optimizer = torch.optim.Adam(model.parameters(), 1e-3)\n", "\n", - "model = create_model()\n", - "s = time.time()\n", - "for i in range(epoch_num):\n", - " e = time.time()\n", + "epoch_loss_values = []\n", + "eager_time = []\n", + "for epoch in range(epoch_num):\n", + " model.train()\n", + " epoch_loss = 0\n", + " step = 0\n", " for batch_data in data_loader:\n", - " inputs, labels = (\n", - " batch_data[\"image\"].to(device),\n", - " batch_data[\"label\"].to(device),\n", - " )\n", - " out = model(inputs)\n", - " if i <= 5:\n", - " print(f\"epoch{i} time\", time.time() - e)\n", - "print(\"total time\", time.time() - s)" + " step += 1\n", + " inputs, labels = batch_data[\"image\"].to(device), batch_data[\"label\"].to(device)\n", + " optimizer.zero_grad()\n", + " loss, train_time = timed(lambda: train(model, inputs, labels))\n", + " optimizer.step()\n", + " epoch_loss += loss.item()\n", + " eager_time.append(train_time)\n", + " epoch_loss /= step\n", + " epoch_loss_values.append(epoch_loss)\n", + " if epoch < 5:\n", + " print(f\"epoch {epoch + 1}/{epoch_num} average loss: {epoch_loss:.4f}, time: {train_time:.4f}\")\n", + "print(f\"median training time per iteration: {np.median(eager_time):.4f} seconds\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### With compile\n", + "## Train the model with torch.compile\n", "\n", - "The only difference is that we wrap the model with `torch.compile`. As [torch](https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html) mentioned, we can see that `torch.compile`` takes longer in the first epoch, as it must compile the model, but in subsequent iterations, we can see a significant improvement compared to eager." + "The only difference is that we wrap the model with `torch.compile`. You may also see different speedup results depending on the chosen mode argument. The \"reduce-overhead\" mode uses CUDA graphs to further reduce the overhead of Python. For your own models, you may need to experiment with different modes to maximize speedup. You can read more about modes [here](https://pytorch.org/get-started/pytorch-2.0/#user-experience)." ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "model_opt = torch.compile(init_model(device), mode=\"reduce-overhead\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Loading dataset: 100%|██████████| 20/20 [00:04<00:00, 4.15it/s]\n" + "Using FallbackKernel: aten.upsample_trilinear3d\n", + "Using FallbackKernel: aten.upsample_trilinear3d_backward\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch0 time 15.756214141845703\n", - "epoch1 time 0.528465986251831\n", - "epoch2 time 0.5261788368225098\n", - "epoch3 time 0.5370438098907471\n", - "epoch4 time 0.532045841217041\n", - "epoch5 time 0.5341622829437256\n", - "total time 67.98181772232056\n" + "epoch 1/20 average loss: 3.0229, time: 0.0529\n", + "epoch 2/20 average loss: 2.9459, time: 0.0530\n", + "epoch 3/20 average loss: 2.9603, time: 0.0529\n", + "epoch 4/20 average loss: 2.9253, time: 0.0529\n", + "epoch 5/20 average loss: 2.8783, time: 0.0531\n", + "median training time per iteration after compilation: 0.0529 seconds\n" ] } ], "source": [ - "dataset = monai.data.CacheDataset(data=input_data, transform=transform, cache_rate=1.0, num_workers=4)\n", - "data_loader = monai.data.DataLoader(dataset, batch_size=1)\n", + "# start a typical PyTorch training\n", + "optimizer = torch.optim.Adam(model_opt.parameters(), 1e-3)\n", "\n", - "model = torch.compile(create_model())\n", - "s = time.time()\n", - "for i in range(epoch_num):\n", - " e = time.time()\n", + "epoch_loss_values = []\n", + "compile_time = []\n", + "for epoch in range(epoch_num):\n", + " model_opt.train()\n", + " epoch_loss = 0\n", + " step = 0\n", " for batch_data in data_loader:\n", - " inputs, labels = (\n", - " batch_data[\"image\"].to(device),\n", - " batch_data[\"label\"].to(device),\n", - " )\n", - " out = model(inputs)\n", - " if i <= 5:\n", - " print(f\"epoch{i} time\", time.time() - e)\n", - "print(\"total time\", time.time() - s)" + " step += 1\n", + " inputs, labels = batch_data[\"image\"].to(device), batch_data[\"label\"].to(device)\n", + " optimizer.zero_grad()\n", + " loss, train_time = timed(lambda: train(model_opt, inputs, labels))\n", + " optimizer.step()\n", + " epoch_loss += loss.item()\n", + " compile_time.append(train_time)\n", + " epoch_loss /= step\n", + " epoch_loss_values.append(epoch_loss)\n", + " if epoch < 5:\n", + " print(f\"epoch {epoch + 1}/{epoch_num} average loss: {epoch_loss:.4f}, time: {train_time:.4f}\")\n", + "print(f\"median training time per iteration after compilation: {np.median(compile_time):.4f} seconds\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Demonstrate the speedups\n", + "As [torch](https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html) mentioned, we can see that `torch.compile` takes longer in the first epoch, as it must compile the model, but in subsequent iterations, we can see a significant improvement compared to eager. " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "first iteration: 2.767s(eager mode) vs. 22.391s(compile mode)\n", + "eager median: 0.08376780700683595, compile median: 0.05292851257324219, speedup: 1.5826593821414972x\n" + ] + } + ], + "source": [ + "print(f\"first iteration: {eager_time[0]:.3f}s(eager mode) vs. {compile_time[0]:.3f}s(compile mode)\")\n", + "\n", + "speedup = np.median(eager_time) / np.median(compile_time)\n", + "print(f\"eager median: {np.median(eager_time)}, compile median: {np.median(compile_time)}, speedup: {speedup}x\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We also tried `torch.compile` in [fast_training_tutorial.ipynb](https://github.com/Project-MONAI/tutorials/blob/main/acceleration/fast_training_tutorial.ipynb).\n", + "The total training time for fast and compile is as follows: 354.9534s and 305.6460s, speedup: 1.16x.\n", + "\n", + "![compile_benchmark_total_epoch_time_comparison](../figures/total_epoch_time_comparison-compile.png)" ] }, { @@ -375,14 +474,14 @@ "metadata": {}, "outputs": [], "source": [ + "loss_function = monai.losses.DiceCELoss(to_onehot_y=True, softmax=True)\n", "trainer = SupervisedTrainer(\n", " device=device,\n", " max_epochs=epoch_num,\n", " train_data_loader=data_loader,\n", " network=model,\n", - " # optimizer=optimizer,\n", - " # loss_function=loss_function,\n", - " # inferer=SimpleInferer(),\n", + " optimizer=optimizer,\n", + " loss_function=loss_function,\n", " # postprocessing=post_transform,\n", " # amp=args.amp,\n", " # key_train_metric={\n", @@ -396,17 +495,6 @@ " compile_kwargs={},\n", ")" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Compared results\n", - "\n", - "We used `torch.compile` in fast_training_tutorial.ipynb and see a 10% speed up.\n", - "\n", - "![compile_benchmark_total_epoch_time_comparison](../figures/total_epoch_time_comparison-compile.png)" - ] } ], "metadata": { From a9fa67b39635976aba9f6bec45f3d89c55873eee Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 06:38:35 +0000 Subject: [PATCH 08/15] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- modules/torch_compile.ipynb | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/torch_compile.ipynb b/modules/torch_compile.ipynb index 8b4afacf2c..c22638d6b4 100644 --- a/modules/torch_compile.ipynb +++ b/modules/torch_compile.ipynb @@ -190,6 +190,7 @@ " torch.cuda.synchronize()\n", " return result, start.elapsed_time(end) / 1000\n", "\n", + "\n", "def train(model, inputs, labels):\n", " outputs = model(inputs)\n", " loss_function = monai.losses.DiceCELoss(to_onehot_y=True, softmax=True)\n", From ac8ff255bc0ac126141f5b16828fdf5c641bbe8a Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Tue, 16 Jan 2024 06:41:08 +0000 Subject: [PATCH 09/15] minor update Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- modules/torch_compile.ipynb | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/modules/torch_compile.ipynb b/modules/torch_compile.ipynb index c22638d6b4..811d370a03 100644 --- a/modules/torch_compile.ipynb +++ b/modules/torch_compile.ipynb @@ -22,18 +22,7 @@ "source": [ "# MONAI pipeline with PyTorch 2.0 Features\n", "\n", - "This notebook introduces how to use `torch.compile` in MONAI pipeline. It mainly includes several parts as shown below.\n", - "- What is torch.compile?\n", - "\n", - " `torch.compile` is the main API for PyTorch 2.0, which wraps your model and returns a compiled model. It is a fully additive (and optional) feature and hence 2.0 is 100% backward compatible by definition.\n", - "\n", - "- A simple demo to show how to use the `torch.compile`.\n", - "\n", - "- Use the `torch.compile` in the bundle.\n", - "\n", - "- Compared results\n", - "\n", - " We run an end-to-end pipeline based on [\"fast_training_tutorial.ipynb\"](https://github.com/Project-MONAI/tutorials/blob/main/acceleration/fast_training_tutorial.ipynb), and we can see a 10% speed up." + "This notebook introduces how to use `torch.compile` in the MONAI pipeline. `torch.compile` is the main API for PyTorch 2.0, which wraps your model and returns a compiled model. It is a fully additive (and optional) feature and hence 2.0 is 100% backward compatible by definition. We also run an end-to-end pipeline based on [\"fast_training_tutorial.ipynb\"](https://github.com/Project-MONAI/tutorials/blob/main/acceleration/fast_training_tutorial.ipynb), and the speed up is 1.16x." ] }, { From 4eea3262bbc8cd3ec62c6be76732e3833ead247a Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Tue, 16 Jan 2024 07:40:35 +0000 Subject: [PATCH 10/15] minor fix Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- modules/torch_compile.ipynb | 38 +++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/modules/torch_compile.ipynb b/modules/torch_compile.ipynb index 811d370a03..d545f5aae4 100644 --- a/modules/torch_compile.ipynb +++ b/modules/torch_compile.ipynb @@ -34,12 +34,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Failed to load image Python extension: '/usr/local/lib/python3.10/dist-packages/torchvision/image.so: undefined symbol: _ZN3c107WarningC1ENS_7variantIJNS0_11UserWarningENS0_18DeprecationWarningEEEERKNS_14SourceLocationENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb'If you don't plan on using image functionality from `torchvision.io`, you can ignore this warning. Otherwise, there might be something wrong with your environment. Did you have `libjpeg` or `libpng` installed before building `torchvision` from source?\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", + "\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.3.2\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n" + ] + } + ], "source": [ "!python -c \"import monai\" || pip install -q \"monai-weekly[nibabel, matplotlib]\"\n", - "!pip install -q torch>=2.1.0" + "%pip install -q torch==2.1.0" ] }, { @@ -56,8 +68,8 @@ "outputs": [], "source": [ "import os\n", - "import time\n", "import torch\n", + "import shutil\n", "import tempfile\n", "import numpy as np\n", "\n", @@ -485,6 +497,24 @@ " compile_kwargs={},\n", ")" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Cleanup data directory\n", + "Remove directory if a temporary was used." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if directory is None:\n", + " shutil.rmtree(root_dir)" + ] } ], "metadata": { From 65e04084e3f43bf4b689f8c83fe2de5408ab4fbd Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Fri, 19 Jan 2024 00:10:35 +0800 Subject: [PATCH 11/15] address comments Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- bundle/02_mednist_classification.ipynb | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/bundle/02_mednist_classification.ipynb b/bundle/02_mednist_classification.ipynb index 3dfea41f38..d33277c7a1 100644 --- a/bundle/02_mednist_classification.ipynb +++ b/bundle/02_mednist_classification.ipynb @@ -369,19 +369,19 @@ " num_workers: 4\n", "\n", "trainer:\n", - " _target_: SupervisedTrainer\n", - " device: '@device'\n", - " max_epochs: '@max_epochs'\n", - " train_data_loader: '@train_dl'\n", - " network: '@net'\n", - " optimizer: \n", - " _target_: torch.optim.Adam\n", - " params: '$@net.parameters()'\n", - " lr: 0.00001 # learning rate set slow so that you can see network improvement over epochs\n", - " loss_function: \n", - " _target_: torch.nn.CrossEntropyLoss\n", - " inferer: \n", - " _target_: SimpleInferer\n", + " _target_: SupervisedTrainer\n", + " device: '@device'\n", + " max_epochs: '@max_epochs'\n", + " train_data_loader: '@train_dl'\n", + " network: '@net'\n", + " optimizer: \n", + " _target_: torch.optim.Adam\n", + " params: '$@net.parameters()'\n", + " lr: 0.00001 # learning rate set slow so that you can see network improvement over epochs\n", + " loss_function: \n", + " _target_: torch.nn.CrossEntropyLoss\n", + " inferer: \n", + " _target_: SimpleInferer\n", "\n", "train:\n", "- '$@trainer.run()'\n", From 7da94b79d19e4d596fa803116a9f0a5f21367fa3 Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Fri, 19 Jan 2024 06:07:41 +0000 Subject: [PATCH 12/15] update tutorial Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- modules/torch_compile.ipynb | 172 +++++++++++++++++++++++------------- 1 file changed, 111 insertions(+), 61 deletions(-) diff --git a/modules/torch_compile.ipynb b/modules/torch_compile.ipynb index d545f5aae4..b862d9091d 100644 --- a/modules/torch_compile.ipynb +++ b/modules/torch_compile.ipynb @@ -34,24 +34,12 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Failed to load image Python extension: '/usr/local/lib/python3.10/dist-packages/torchvision/image.so: undefined symbol: _ZN3c107WarningC1ENS_7variantIJNS0_11UserWarningENS0_18DeprecationWarningEEEERKNS_14SourceLocationENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb'If you don't plan on using image functionality from `torchvision.io`, you can ignore this warning. Otherwise, there might be something wrong with your environment. Did you have `libjpeg` or `libpng` installed before building `torchvision` from source?\n", - "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", - "\u001b[0m\n", - "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.3.2\u001b[0m\n", - "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n" - ] - } - ], + "outputs": [], "source": [ "!python -c \"import monai\" || pip install -q \"monai-weekly[nibabel, matplotlib]\"\n", - "%pip install -q torch==2.1.0" + "# %pip install -q torch==2.1.0" ] }, { @@ -72,6 +60,7 @@ "import shutil\n", "import tempfile\n", "import numpy as np\n", + "import matplotlib.pyplot as plt\n", "\n", "import monai\n", "import monai.transforms as mt\n", @@ -129,9 +118,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "2024-01-16 05:55:56,446 - INFO - Expected md5 is None, skip md5 check for file samples.zip.\n", - "2024-01-16 05:55:56,447 - INFO - File exists: samples.zip, skipped downloading.\n", - "2024-01-16 05:55:56,448 - INFO - Writing into directory: /workspace/data.\n" + "2024-01-19 06:02:08,535 - INFO - Expected md5 is None, skip md5 check for file samples.zip.\n", + "2024-01-19 06:02:08,536 - INFO - File exists: samples.zip, skipped downloading.\n", + "2024-01-19 06:02:08,537 - INFO - Writing into directory: /workspace/data.\n" ] } ], @@ -218,25 +207,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "2024-01-16 05:55:59,615 - INFO - --- input summary of monai.bundle.scripts.download ---\n", - "2024-01-16 05:55:59,617 - INFO - > name: 'wholeBody_ct_segmentation'\n", - "2024-01-16 05:55:59,617 - INFO - > bundle_dir: './bundle'\n", - "2024-01-16 05:55:59,618 - INFO - > source: 'monaihosting'\n", - "2024-01-16 05:55:59,619 - INFO - > remove_prefix: 'monai_'\n", - "2024-01-16 05:55:59,619 - INFO - > progress: True\n", - "2024-01-16 05:55:59,620 - INFO - ---\n", + "2024-01-19 06:02:11,869 - INFO - --- input summary of monai.bundle.scripts.download ---\n", + "2024-01-19 06:02:11,870 - INFO - > name: 'wholeBody_ct_segmentation'\n", + "2024-01-19 06:02:11,872 - INFO - > bundle_dir: './bundle'\n", + "2024-01-19 06:02:11,872 - INFO - > source: 'monaihosting'\n", + "2024-01-19 06:02:11,873 - INFO - > remove_prefix: 'monai_'\n", + "2024-01-19 06:02:11,874 - INFO - > progress: True\n", + "2024-01-19 06:02:11,875 - INFO - ---\n", "\n", "\n", - "2024-01-16 05:55:59,797 - INFO - Expected md5 is None, skip md5 check for file bundle/wholeBody_ct_segmentation_v0.2.1.zip.\n", - "2024-01-16 05:55:59,798 - INFO - File exists: bundle/wholeBody_ct_segmentation_v0.2.1.zip, skipped downloading.\n", - "2024-01-16 05:55:59,799 - INFO - Writing into directory: bundle.\n", - "2024-01-16 05:56:00,729 - INFO - --- input summary of monai.bundle.scripts.run ---\n", - "2024-01-16 05:56:00,729 - INFO - > config_file: './bundle/wholeBody_ct_segmentation/configs/train.json'\n", - "2024-01-16 05:56:00,730 - INFO - > workflow_type: 'train'\n", - "2024-01-16 05:56:00,731 - INFO - ---\n", + "2024-01-19 06:02:12,098 - INFO - Expected md5 is None, skip md5 check for file bundle/wholeBody_ct_segmentation_v0.2.1.zip.\n", + "2024-01-19 06:02:12,099 - INFO - File exists: bundle/wholeBody_ct_segmentation_v0.2.1.zip, skipped downloading.\n", + "2024-01-19 06:02:12,100 - INFO - Writing into directory: bundle.\n", + "2024-01-19 06:02:13,092 - INFO - --- input summary of monai.bundle.scripts.run ---\n", + "2024-01-19 06:02:13,095 - INFO - > config_file: './bundle/wholeBody_ct_segmentation/configs/train.json'\n", + "2024-01-19 06:02:13,095 - INFO - > workflow_type: 'train'\n", + "2024-01-19 06:02:13,096 - INFO - ---\n", "\n", "\n", - "2024-01-16 05:56:00,732 - INFO - Setting logging properties based on config: bundle/wholeBody_ct_segmentation/configs/logging.conf.\n" + "2024-01-19 06:02:13,097 - INFO - Setting logging properties based on config: bundle/wholeBody_ct_segmentation/configs/logging.conf.\n" ] } ], @@ -270,7 +259,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "Loading dataset: 100%|██████████| 20/20 [00:05<00:00, 3.85it/s]\n" + "Loading dataset: 0%| | 0/20 [00:00" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABBEAAAIjCAYAAABVmYP3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAC9eUlEQVR4nOzde3hU1dk28HvtmZxJAuEQCASCiEhQgkVMQREECk0tChWrr7YiWrUlVgXPrYC+iryARSqm2NoqSLWiVrD1s4qAigpyhmpBUORsCARIAgnkMHt9f8SZZsgkmTyTyWKy79915SIZ5rDmTjLPyjNr7a201hpERERERERERA2wTA+AiIiIiIiIiCIDmwhEREREREREFBQ2EYiIiIiIiIgoKGwiEBEREREREVFQ2EQgIiIiIiIioqCwiUBEREREREREQWETgYiIiIiIiIiCwiYCEREREREREQWFTQQiIiIiIiIiCgqbCERnkQ8//BBKKXz44Yemh4Kbb74ZGRkZzf64jz76KJRSzf64Nc2aNQvnn38+bNs2Oo5I5v1ZfuONN0K+r8rKSqSnp+MPf/hDE4yMiIgizYIFC6CUwoYNG8L6OEOHDsXQoUPD+hhELQGbCOR4SqmgPoL5w/7JJ5/E0qVLI2a8zSUjIyOoMS9YsMD0UFFSUoKZM2fiwQcfhGX99yVy0qRJ+N73voeUlBTEx8ejd+/eePTRR3Hy5Mla91FeXo4HH3wQaWlpiIuLQ3Z2Nt5///2Aj7d69WpcdtlliI+PR8eOHXHXXXcFvE8ni4qKwuTJkzF9+nScPn3a9HCIiFoc7x/pdX189tlnpocosmfPnqDnTXv27DE9XKKI4TY9ACLTFi1a5Pf1Sy+9hPfff7/W5b17927wvp588kmMGzcOY8aMacoh+mnK8dbn+eefb7J34ufOnev3h/E777yDv/3tb3j66afRrl073+WDBg3Cz372Mzz00ENN8rgSL7zwAqqqqvA///M/fpevX78egwcPxoQJExAbG4vNmzfj//7v/7B8+XKsWrXKr+Fw880344033sA999yDnj17YsGCBfjRj36EDz74AJdddpnvelu2bMHw4cPRu3dvzJkzBwcOHMBTTz2Fr776Cv/617+a7TlHggkTJuChhx7CK6+8gltuucX0cIiIWqT//d//Rffu3Wtdfu655xoYTejat29fa370u9/9DgcOHMDTTz9d67rLli1rzuERRSw2Ecjxfvazn/l9/dlnn+H999+vdfnZQjresrIyxMfHB/04UVFRovEFcmZT5dChQ/jb3/6GMWPGBNwy4Xabe2l68cUXcdVVVyE2Ntbv8k8++aTWdXv06IH77rsP69atw/e//30AwLp16/Dqq69i9uzZuO+++wAAN910Ey644AI88MADWL16te/2v/nNb9CmTRt8+OGHSEpKAlC9auO2227DsmXLMHLkyHA9zYjTunVrjBw5EgsWLGATgYgoTHJycnDxxRebHkaTSUhIqDU/evXVV3H8+PGzdp5HFAm4nYEoCKWlpbj33nuRnp6OmJgY9OrVC0899RS01r7rKKVQWlqKhQsX+pbG3XzzzQCAvXv3YuLEiejVqxfi4uLQtm1bXHvttWFbOjd06FBccMEF2LhxIy6//HLEx8fjN7/5DQDgrbfewpVXXom0tDTExMSgR48eePzxx+HxePzu48xjIniXBD711FP405/+hB49eiAmJgYDBgzA+vXrm2zsgY6JoJTCnXfeiddffx2ZmZmIi4vDwIED8fnnnwMA/vjHP+Lcc89FbGwshg4dGjDXtWvX4oc//CGSk5MRHx+PIUOG4NNPP/W7zu7du/Hvf/8bI0aMCGqs3nyKiop8l73xxhtwuVy4/fbbfZfFxsbi1ltvxZo1a7B//34A1dsmvM0fbwMBqG44tGrVCq+99lqDj19eXo5p06bh3HPPRUxMDNLT0/HAAw+gvLzc73re/F5++WX06tULsbGx6N+/P1atWlXrPjdv3oycnBwkJSWhVatWGD58eMBlrEVFRZg0aRIyMjIQExODLl264KabbkJhYaHf9WzbxvTp09GlSxfExsZi+PDh+Prrr/2u89VXX+Gaa65Bx44dERsbiy5duuD6669HcXGx3/V+8IMf4JNPPsGxY8cazIaIiJpezbnA008/jW7duiEuLg5DhgzBF198Uev6K1euxODBg5GQkIDWrVvj6quvxvbt22td7+DBg7j11lt9c5Pu3bvjV7/6FSoqKvyuV15ejsmTJ6N9+/ZISEjA2LFjceTIkSZ7fmceE8F7fJ/XXnsNjz32GDp37ozExESMGzcOxcXFKC8vxz333IMOHTqgVatWmDBhQq0aDAB//etf0b9/f8TFxSElJQXXX3+9bz5AFIm4EoGoAVprXHXVVfjggw9w6623ol+/fnjvvfdw//334+DBg77lcIsWLcIvfvELXHLJJb4/IHv06AGgein86tWrcf3116NLly7Ys2cP5s+fj6FDh2Lbtm2NWiEQrKNHjyInJwfXX389fvaznyE1NRVA9b7HVq1aYfLkyWjVqhVWrlyJqVOnoqSkBLNnz27wfl955RWcOHECd9xxB5RSmDVrFn7yk5/gm2++adLVC2f6+OOP8Y9//AO5ubkAgBkzZuDHP/4xHnjgAfzhD3/AxIkTcfz4ccyaNQu33HILVq5c6bvtypUrkZOTg/79+2PatGmwLAsvvvgihg0bho8//hiXXHIJAPhWCXzve98LOIaqqioUFRWhoqICX3zxBR555BEkJib6bg9U/xF+3nnn+TUGAPius2XLFqSnp+Pzzz9HVVVVrXd8oqOj0a9fP2zevLnePGzbxlVXXYVPPvkEt99+O3r37o3PP/8cTz/9NHbu3Fnr2BwfffQRFi9ejLvuugsxMTH4wx/+gB/+8IdYt24dLrjgAgDAf/7zHwwePBhJSUl44IEHEBUVhT/+8Y8YOnQoPvroI2RnZwMATp48icGDB2P79u245ZZb8L3vfQ+FhYX4xz/+gQMHDvhtUfm///s/WJaF++67D8XFxZg1axZuvPFGrF27FgBQUVGBUaNGoby8HL/+9a/RsWNHHDx4EG+//TaKioqQnJzsu6/+/ftDa43Vq1fjxz/+cb35EBFR4xUXF9dqBiul0LZtW7/LXnrpJZw4cQK5ubk4ffo0fv/732PYsGH4/PPPffON5cuXIycnB+eccw4effRRnDp1CvPmzcOll16KTZs2+Rrx3377LS655BIUFRXh9ttvx/nnn4+DBw/ijTfeQFlZGaKjo32P++tf/xpt2rTBtGnTsGfPHsydOxd33nknFi9eHNZcZsyYgbi4ODz00EP4+uuvMW/ePERFRcGyLBw/fhyPPvooPvvsMyxYsADdu3fH1KlTfbedPn06pkyZgp/+9Kf4xS9+gSNHjmDevHm4/PLLsXnzZrRu3TqsYycKC01EfnJzc3XNX42lS5dqAPqJJ57wu964ceO0Ukp//fXXvssSEhL0+PHja91nWVlZrcvWrFmjAeiXXnrJd9kHH3ygAegPPvhAPF6ttR4yZIgGoJ977rmgxnLHHXfo+Ph4ffr0ad9l48eP1926dfN9vXv3bg1At23bVh87dsx3+VtvvaUB6H/+859Bj3n27NkagN69e3et/5s2bVqt5wNAx8TE+F3/j3/8owagO3bsqEtKSnyXP/zww373bdu27tmzpx41apS2bdt3vbKyMt29e3f9gx/8wHfZI488ogHoEydOBBy393vm/ejVq1et71WfPn30sGHDat32P//5j9/35PXXX9cA9KpVq2pd99prr9UdO3YMOAavRYsWacuy9Mcff+x3+XPPPacB6E8//dR3mXe8GzZs8F22d+9eHRsbq8eOHeu7bMyYMTo6Olrv2rXLd9m3336rExMT9eWXX+67bOrUqRqAfvPNN2uNy5ux92e5d+/eury83Pf/v//97zUA/fnnn2uttd68ebMGoF9//fV6n693LAD0zJkzG7wuEREF78UXX/SrbzU/YmJifNfzzgXi4uL0gQMHfJevXbtWA9CTJk3yXdavXz/doUMHffToUd9lW7du1ZZl6Ztuusl32U033aQty9Lr16+vNS5vTfGOb8SIEX61fNKkSdrlcumioqKgn+uVV17pN7+paciQIXrIkCG+r7217IILLtAVFRW+y//nf/5HK6V0Tk6O3+0HDhzod9979uzRLpdLT58+3e96n3/+uXa73bUuJ4oU3M5A1IB33nkHLpcLd911l9/l9957L7TWQR0ALy4uzvd5ZWUljh49inPPPRetW7fGpk2bmnzMABATE4MJEybUO5YTJ06gsLAQgwcPRllZGb788ssG7/e6665DmzZtfF8PHjwYAPDNN980wajrNnz4cL/tFd53xa+55hokJibWutw7ni1btuCrr77CDTfcgKNHj6KwsBCFhYUoLS3F8OHDsWrVKt8BJI8ePQq3241WrVoFHENmZibef/99LF26FA888AASEhJqnUnh1KlTiImJqXVb7zEWTp065fdvXdf1/n9dXn/9dfTu3Rvnn3++7zkVFhZi2LBhAIAPPvjA7/oDBw5E//79fV937doVV199Nd577z14PB54PB4sW7YMY8aMwTnnnOO7XqdOnXDDDTfgk08+QUlJCQDg73//O7KysjB27Nha4zpzK8qECRP83kU68+fFu9LgvffeQ1lZWb3P2ftzd+a7ZERE1DTy8vLw/vvv+30EmueMGTMGnTt39n19ySWXIDs7G++88w4AID8/H1u2bMHNN9+MlJQU3/X69u2LH/zgB77r2baNpUuXYvTo0QGPxXBmTbn99tv9Lhs8eDA8Hg/27t0b2hNvwE033eS32jI7Oxta61rH6MnOzsb+/ftRVVUFAHjzzTdh2zZ++tOf+tXqjh07omfPnrVqNVGk4HYGogbs3bsXaWlpfn+oAv89+0EwhevUqVOYMWMGXnzxRRw8eNDvWApn7vtuKp07d/b7483rP//5Dx555BGsXLnS90dhY8bStWtXv6+9f9gdP348hNE27MzH9f7xmZ6eHvBy73i++uorAMD48ePrvO/i4mK/xkhdkpKSfMdLuPrqq/HKK6/g6quvxqZNm5CVlQWgukkTaD+k99SE3iaO99+6rluz2RPIV199he3bt6N9+/YB///w4cN+X/fs2bPWdc477zyUlZX59pOWlZWhV69eta7Xu3dv2LaN/fv3o0+fPti1axeuueaaesfn1dDPS/fu3TF58mTMmTMHL7/8MgYPHoyrrroKP/vZz/y2MgDw/d6cOakkIqKmcckllwR1YMW6aor3eD7euVFdNeW9995DaWkpTp48iZKSEt+2uoZEwhzEtm0UFxejbdu2+Oqrr6C1DpgX0LQHsSZqTmwiEDWDX//613jxxRdxzz33YODAgUhOToZSCtdff32TnUbxTIH+CC0qKsKQIUOQlJSE//3f/0WPHj0QGxuLTZs24cEHHwxqLC6XK+DlNRsj4VDX4zY0Hu9zmj17Nvr16xfwut6VB23btkVVVRVOnDhRq2kUyE9+8hP8/Oc/x6uvvuprInTq1AkHDx6sdd38/HwAQFpamu96NS8/87re69XFtm1ceOGFmDNnTsD/P3NiY0owPy+/+93vcPPNN+Ott97CsmXLcNddd2HGjBn47LPP0KVLF9/1vJPEmsdcICIi54jEOYhSCv/6178CXreulY9EZzs2EYga0K1bNyxfvrzWH5bepf/dunXzXVbXO6RvvPEGxo8fj9/97ne+y06fPu13VP/m8OGHH+Lo0aN48803cfnll/su3717d7OOozl5D25ZcxVBXc4//3wA1Xn07du3wfsuLy/3vePg1a9fP3zwwQcoKSnxO7ii90CC3kbGBRdcALfbjQ0bNuCnP/2p73oVFRXYsmWL32V1Pa+tW7di+PDhQb0z712RUdPOnTsRHx/vW80QHx+PHTt21Lrel19+CcuyfI2JHj16BDwKdyguvPBCXHjhhXjkkUewevVq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Ro8ejRUrVpgeGtLT05Gfn48LLrigye7z0UcfxUUXXdRk9/f73/8eCxYsaNRt8vPzkZOT02RjIGoMrTXy8/M5mSIKEX+XZJibHLOTaUm5mZi3V1ZWBnW9cM3b+/Xr12T315zz9mBza0rczkDNYs+ePbj00kvRunVrzJ49GxdeeCEqKyvx3nvvITc3F19++aXR8blcLnTs2LFJ71Mp5fuoj/e0LA1JTk5u9Bia+jkRNYZlWejWrZvpYRBFPP4uyTA3OWYn01JyMzFvb8yy/HDM24N1ts3buZ2BWrSJEydCKYV169bhmmuuwXnnnYc+ffpg8uTJ+Oyzz3zX27dvH66++mq0atUKSUlJ+OlPf4qCggLf/3u7hC+88AK6du2KVq1aYeLEifB4PJg1axY6duyIDh06YPr06X6Pr5TC/PnzkZOTg7i4OJxzzjl44403fP9/5rKoQD755BMMHjwYcXFxSE9Px1133YXS0tKA112wYAEee+wxbN261ddI8HYjvWO56qqrkJCQgOnTp8Pj8eDWW29F9+7dERcXh169euH3v/+9332euSxq6NChuOuuu/DAAw8gJSUFHTt2xKOPPlrreXuXRXmf45tvvokrrrgC8fHxyMrKwpo1a/xu8/zzz/tORTR27FjMmTMHrVu3rjMXorporXH69OkW8Y4MkUn8XZJhbnLMTiao3LQGSkub/6MR30sT8/aay/I5bw9+3v6nP/3JzLxd01mluLhYA9DFxcW1/u/UqVN627Zt+tSpU7VvWP3S0DwfjXT06FGtlNJPPvlkvdfzeDy6X79++rLLLtMbNmzQn332me7fv78eMmSI7zrTpk3TrVq10uPGjdP/+c9/9D/+8Q8dHR2tR40apX/961/rL7/8Ur/wwgsagP7ss89qxAPdtm1b/fzzz+sdO3boRx55RLtcLr1t2zattda7d+/WAPTmzZu11lp/8MEHGoA+fvy41lrrr7/+WickJOinn35a79y5U3/66af6oosu0jfffHPA51JWVqYnT56sMzMz9bfffqvz8/N1WVmZbywdOnTQL7zwgt61a5feu3evrqio0FOnTtXr16/X33zzjf7rX/+q4+Pj9eLFi333OX78eH311Vf7vh4yZIhOSkrSjz76qN65c6deuHChVkrpZcuW+T3vJUuW+D3H888/X7/99tt6x44dety4cbpbt266srJS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csstwsPDQ0RHR4s1a9ZY7s/JyREAxPfffy+EEGL79u0CgKUuIYT43//+J66//nrh4eEhunfvLp544gmb20LUkpKSksRtt93WYPnChQvFtddeK7y8vET37t3FY489JkpLSy33nzp1Stx6660iICBAeHl5idjYWLFx40bLe73ulJSU1HobRNTGDR06VCQnJ1tum0wmERYWJlJTU3Wsqm0DINatW2e5rWmaCAkJEQsWLLAsu3TpkjAajeLjjz/WocK26/z58wKAyMjIEELU5tSpUyerzyjHjh0TAMS3336rV5ltUufOncV7773HzOxQWloq+vTpI9LT08XIkSPFU089JYTg+60p5v85bNErN45EIJdTWFiITZs2ITk5Gd7e3g3uDwgIgKZpuO2221BYWIiMjAykp6fjp59+wuTJk63WPXnyJL766its2rQJH3/8MZYtW4Zx48bh559/RkZGBubPn49//OMf2LNnj9Xvvfjii5g0aRIOHjyIKVOm4K677sKxY8fsqv/kyZO45ZZbMGnSJPzwww9YvXo1vv76a0ybNk0+FCIHqKqKRYsW4ciRI/jggw+wbds2zJw503J/cnIyKisrsXPnThw6dAjz58+Hj48PIiIi8OmnnwIAsrKykJ+fjzfeeEOvzSBqU6qqqnDgwAGMGTPGskxVVYwZMwbffvutjpW1Lzk5OTh37pxVjv7+/khISGCO9RQXFwMAAgMDAQAHDhxAdXW1VXbXXHMNevTowex+ZTKZsGrVKpSXl2P48OHMzA7JyckYN26cVUYA329Xc+LECYSFhaFnz56YMmUKcnNzAeiXG8dLk8vJzs6GEMLqWKL6tm7dikOHDiEnJwcREREAgJUrV6J///7Yt28frrvuOgCApml4//334evri9jYWIwaNQpZWVn48ssvoaoqYmJiMH/+fGzfvh0JCQmWx7/jjjswdepUAMCcOXOQnp6OxYsX46233rpq/ampqZgyZYrlGLI+ffpg0aJFGDlyJJYsWQIPDw/ZaIiuasOGDfDx8bHcTkxMxJo1ayy3o6KiMHfuXDz66KOW93Nubi4mTZqEAQMGAAB69uxpWd/8YbVbt24ICAhohS0gah8uXrwIk8mE4OBgq+XBwcH48ccfdaqq/Tl37hwA2MzRfB/Vfp6ZPn06RowYYTkn07lz5+Du7t7gbzOzAw4dOoThw4ejoqICPj4+WLduHWJjY5GZmcnMmrBq1Sp899132LdvX4P7+H5rXEJCAlasWIGYmBjk5+fjn//8J2644QYcPnxYt9zYiUAuRwhx1XWOHTuGiIgISwcCAMTGxiIgIADHjh2zdCJERUXB19fXsk5wcDAMBgNUVbVaVv/41eHDhze4bb4aw9UcPHgQP/zwAz788EOrbdI0DTk5OejXr59dj0MkY9SoUViyZInltre3N7Zs2YLU1FT8+OOPKCkpQU1NDSoqKnD58mV4eXnhySefxGOPPYbNmzdjzJgxmDRpUoPjIImISD/Jyck4fPiw1XHW1LiYmBhkZmaiuLgYa9euRVJSEjIyMvQuq03Ly8vDU089hfT0dH7h1UyJiYmW+bi4OCQkJCAyMhKffPIJPD09damJhzOQy+nTpw8URWmRb3I6depkdVtRFJvLNE1z+LnMysrK8MgjjyAzM9MyHTx4ECdOnECvXr1a7HmIbPH29kbv3r0tU2VlJW699VbExcXh008/xYEDBywnN6uqqgIATJ06FT/99BPuvfdeHDp0CEOGDMHixYv13AyiNq9r164wGAwNzrBdUFCAkJAQnapqf8xZMcfGTZs2DRs2bMD27dvRvXt3y/KQkBBUVVU1uHoOswPc3d3Ru3dvDB48GKmpqYiPj8cbb7zBzJpw4MABnD9/HoMGDYKbmxvc3NyQkZGBRYsWwc3NDcHBwczOTgEBAejbty+ys7N1e8+xE4FcTmBgIMaOHYu0tDSrMxCbXbp0Cf369UNeXh7y8vIsy48ePYpLly4hNjbW4Rp2797d4La9IwgGDRqEo0ePWv0jZ57c3d0dro2oOQ4cOABN07Bw4UIMGzYMffv2xdmzZxusFxERgUcffRSfffYZnn76abz77rsAYHnPmkymVq2bqK1zd3fH4MGDrS47rGkatm7d2mA0GzUuOjoaISEhVjmWlJRgz549Lp+jEALTpk3DunXrsG3btgZX2hk8eDA6depklV1WVhZyc3NdPrv6NE1DZWUlM2vC6NGjcejQIasvwYYMGYIpU6ZY5pmdfcrKynDy5EmEhobq9p7j4QzkktLS0jBixAgMHToUs2fPRlxcHGpqapCeno4lS5bg6NGjGDBgAKZMmYLXX38dNTU1ePzxxzFy5EgMGTLE4edfs2YNhgwZguuvvx4ffvgh9u7di2XLltn1u88++yyGDRuGadOmYerUqfD29sbRo0eRnp6ON9980+HaiJqjd+/eqK6uxuLFizF+/Hjs2rULS5cutVpn+vTpSExMRN++fVFUVITt27dbOs0iIyOhKAo2bNiAP/7xj/D09LQ65wKRK0tJSUFSUhKGDBmCoUOH4vXXX0d5eTkeeOABvUtrU8rKypCdnW25nZOTg8zMTAQGBqJHjx6YPn065s6diz59+iA6OhovvvgiwsLCMHHiRP2KbgOSk5Px0Ucf4fPPP4evr6/l+Gl/f394enrC398ff/3rX5GSkoLAwED4+fnhiSeewPDhwzFs2DCdq9fPc889h8TERPTo0QOlpaX46KOPsGPHDvz3v/9lZk3w9fW1nG/DzNvbG126dLEsZ3a2PfPMMxg/fjwiIyNx9uxZzJo1CwaDAX/5y1/0e8857boPRG3c2bNnRXJysoiMjBTu7u4iPDxcTJgwQWzfvl0IYf8lHuuydQm8upevEaL28lNpaWni5ptvFkajUURFRYnVq1db7rfnEo979+4VN998s/Dx8RHe3t4iLi5OvPLKKy0RC1GjGrvE42uvvSZCQ0OFp6enGDt2rFi5cqXVe3batGmiV69ewmg0iqCgIHHvvfeKixcvWn5/9uzZIiQkRCiKwks8EtWzePFi0aNHD+Hu7i6GDh0qdu/erXdJbY65naw/mf+eaJomXnzxRREcHCyMRqMYPXq0yMrK0rfoNsBWZgDE8uXLLetcuXJFPP7446Jz587Cy8tL3H777SI/P1+/otuABx980PLZMSgoSIwePVps3rzZcj8zs1/9z8jMzrbJkyeL0NBQy/8rkydPFtnZ2Zb79chNEcKOs8wRUYtRFAXr1q1z+W9AiIiIiIio/eE5EYiIiIiIiIjILuxEICIiIiIiIiK78MSKRK2MRxAREREREVF7xZEIRERERERERGQXdiIQERERERERkV3YiUBEREREREREdmEnAhERERERERHZhZ0IRERERERERGQXdiIQEREREZHL2LFjBxRFwaVLl/QuhahdYicCEREREREREdmFnQhEREREREREZBd2IhARERERUavRNA2pqamIjo6Gp6cn4uPjsXbtWgC/HWqwceNGxMXFwcPDA8OGDcPhw4etHuPTTz9F//79YTQaERUVhYULF1rdX1lZiWeffRYREREwGo3o3bs3li1bZrXOgQMHMGTIEHh5eeH3v/89srKynLvhRB0EOxGIiIiIiKjVpKamYuXKlVi6dCmOHDmCGTNm4J577kFGRoZlnb/97W9YuHAh9u3bh6CgIIwfPx7V1dUAav/5v/POO3HXXXfh0KFDePnll/Hiiy9ixYoVlt+/77778PHHH2PRokU4duwY3n77bfj4+FjV8cILL2DhwoXYv38/3Nzc8OCDD7bK9hO1d4oQQuhdBBERERERdXyVlZUIDAzEli1bMHz4cMvyqVOn4vLly3j44YcxatQorFq1CpMnTwYAFBYWonv37lixYgXuvPNOTJkyBRcuXMDmzZstvz9z5kxs3LgRR44cwfHjxxETE4P09HSMGTOmQQ07duzAqFGjsGXLFowePRoA8OWXX2LcuHG4cuUKPDw8nJwCUfvGkQhERERERNQqsrOzcfnyZdx8883w8fGxTCtXrsTJkyct69XtYAgMDERMTAyOHTsGADh27BhGjBhh9bgjRozAiRMnYDKZkJmZCYPBgJEjRzZZS1xcnGU+NDQUAHD+/HmHt5Goo3PTuwAiIiIiInINZWVlAICNGzciPDzc6j6j0WjVkSDL09PTrvU6depkmVcUBUDt+RqIqGkciUBERERERK0iNjYWRqMRubm56N27t9UUERFhWW/37t2W+aKiIhw/fhz9+vUDAPTr1w+7du2yetxdu3ahb9++MBgMGDBgADRNszrHAhG1HI5EICIiIiKiVuHr64tnnnkGM2bMgKZpuP7661FcXIxdu3bBz88PkZGRAIDZs2ejS5cuCA4OxgsvvICuXbti4sSJAICnn34a1113HebMmYPJkyfj22+/xZtvvom33noLABAVFYWkpCQ8+OCDWLRoEeLj43H69GmcP38ed955p16bTtRhsBOBiIiIiIhazZw5cxAUFITU1FT89NNPCAgIwKBBg/D8889bDieYN28ennrqKZw4cQIDBw7EF198AXd3dwDAoEGD8Mknn+Cll17CnDlzEBoaitmzZ+P++++3PMeSJUvw/PPP4/HHH8cvv/yCHj164Pnnn9djc4k6HF6dgYiIiIiI2gTzlROKiooQEBCgdzlEZAPPiUBEREREREREdmEnAhERERERERHZhYczEBEREREREZFdOBKBiIiIiIiIiOzCTgQiIiIiIiIisgs7EYiIiIiIiIjILuxEICIiIiIiIiK7sBOBiIiIiIiIiOzCTgQiIiIiIiIisgs7EYiIiIiIiIjILuxEICIiIiIiIiK7/D8QQpr5mJpjCgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(\"train\", (12, 6))\n", + "plt.subplot(1, 2, 1)\n", + "plt.title(\"Total Train Time(300 epochs)\")\n", + "plt.bar(\"Compile\", sum(compile_time), 1, label=\"Compile training\", color=\"red\")\n", + "plt.bar(\"Fast\", sum(eager_time), 1, label=\"Fast training\", color=\"green\")\n", + "plt.ylabel(\"secs\")\n", + "plt.yscale(\"log\")\n", + "plt.grid(alpha=0.4, linestyle=\":\")\n", + "plt.legend(loc=\"best\")\n", "\n", - "![compile_benchmark_total_epoch_time_comparison](../figures/total_epoch_time_comparison-compile.png)" + "plt.subplot(1, 2, 2)\n", + "plt.title(\"Epoch Time\")\n", + "x = [i + 1 for i in range(int(len(compile_time)/step))]\n", + "plt.xlabel(\"epoch\")\n", + "plt.ylabel(\"secs\")\n", + "plt.plot(x, [sum(compile_time[i*step: (i+1)*step]) for i in range(int(len(compile_time)/step))], label=\"Compile training\", color=\"red\")\n", + "plt.plot(x, [sum(eager_time[i*step: (i+1)*step]) for i in range(int(len(eager_time)/step))], label=\"Fast training\", color=\"green\")\n", + "plt.yscale(\"log\")\n", + "plt.grid(alpha=0.4, linestyle=\":\")\n", + "plt.legend(loc=\"best\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Use the `torch.compile` in the bundle\n", + "We also tried `torch.compile` in [fast_training_tutorial.ipynb](https://github.com/Project-MONAI/tutorials/blob/main/acceleration/fast_training_tutorial.ipynb).\n", + "The total training time for fast and compile is as follows: 354.9534s and 305.6460s, speedup: 1.16x." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Use `torch.compile` with Engine Classes\n", "\n", "We can simply set `compile=True` in the `SupervisedTrainer` and `SupervisedEvaluator`. Here we convert data to `torch.Tensor` internally if set `compile=True`. Here is the [ticket](https://github.com/pytorch/pytorch/issues/117026) we can track." ] @@ -508,7 +558,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ From 0ca5bd0e41891790ec2376e96152383d4df0f8a5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 19 Jan 2024 06:08:38 +0000 Subject: [PATCH 13/15] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- modules/torch_compile.ipynb | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/modules/torch_compile.ipynb b/modules/torch_compile.ipynb index b862d9091d..5a228e3211 100644 --- a/modules/torch_compile.ipynb +++ b/modules/torch_compile.ipynb @@ -345,7 +345,9 @@ " epoch_loss /= step\n", " epoch_loss_values.append(epoch_loss)\n", " if epoch < 5:\n", - " print(f\"epoch {epoch + 1}/{epoch_num} average loss: {epoch_loss:.4f}, time: {sum(eager_time[epoch*step: epoch*step+step]):.4f}\")\n", + " print(\n", + " f\"epoch {epoch + 1}/{epoch_num} average loss: {epoch_loss:.4f}, time: {sum(eager_time[epoch*step: epoch*step+step]):.4f}\"\n", + " )\n", "print(f\"mean training time per iteration: {np.mean(eager_time):.4f} seconds\")" ] }, @@ -414,7 +416,9 @@ " epoch_loss /= step\n", " epoch_loss_values.append(epoch_loss)\n", " if epoch < 5:\n", - " print(f\"epoch {epoch + 1}/{epoch_num} average loss: {epoch_loss:.4f}, time: {sum(compile_time[epoch*step: epoch*step+step]):.4f}\")\n", + " print(\n", + " f\"epoch {epoch + 1}/{epoch_num} average loss: {epoch_loss:.4f}, time: {sum(compile_time[epoch*step: epoch*step+step]):.4f}\"\n", + " )\n", "print(f\"mean training time per iteration after compilation: {np.mean(compile_time):.4f} seconds\")" ] }, @@ -493,11 +497,21 @@ "\n", "plt.subplot(1, 2, 2)\n", "plt.title(\"Epoch Time\")\n", - "x = [i + 1 for i in range(int(len(compile_time)/step))]\n", + "x = [i + 1 for i in range(int(len(compile_time) / step))]\n", "plt.xlabel(\"epoch\")\n", "plt.ylabel(\"secs\")\n", - "plt.plot(x, [sum(compile_time[i*step: (i+1)*step]) for i in range(int(len(compile_time)/step))], label=\"Compile training\", color=\"red\")\n", - "plt.plot(x, [sum(eager_time[i*step: (i+1)*step]) for i in range(int(len(eager_time)/step))], label=\"Fast training\", color=\"green\")\n", + "plt.plot(\n", + " x,\n", + " [sum(compile_time[i * step : (i + 1) * step]) for i in range(int(len(compile_time) / step))],\n", + " label=\"Compile training\",\n", + " color=\"red\",\n", + ")\n", + "plt.plot(\n", + " x,\n", + " [sum(eager_time[i * step : (i + 1) * step]) for i in range(int(len(eager_time) / step))],\n", + " label=\"Fast training\",\n", + " color=\"green\",\n", + ")\n", "plt.yscale(\"log\")\n", "plt.grid(alpha=0.4, linestyle=\":\")\n", "plt.legend(loc=\"best\")" From 8d3b7373864d085abd77665710969dac65a92848 Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Fri, 19 Jan 2024 06:10:49 +0000 Subject: [PATCH 14/15] delete figures Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- figures/total_epoch_time_comparison-compile.png | Bin 98073 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 figures/total_epoch_time_comparison-compile.png diff --git a/figures/total_epoch_time_comparison-compile.png b/figures/total_epoch_time_comparison-compile.png deleted file mode 100644 index 2fcafe9af5496940281354d2148e3c5ea0779e58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98073 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 VZO)l*MQ9XUS1ze3e^fGg@L%}~MSlPQ From fad4aa1b3c746f296bfde29ec01dad91372df98c Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Fri, 19 Jan 2024 06:24:07 +0000 Subject: [PATCH 15/15] fix flake8 Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- modules/torch_compile.ipynb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/torch_compile.ipynb b/modules/torch_compile.ipynb index 5a228e3211..ac85eaa652 100644 --- a/modules/torch_compile.ipynb +++ b/modules/torch_compile.ipynb @@ -338,7 +338,7 @@ " step += 1\n", " inputs, labels = batch_data[\"image\"].to(device), batch_data[\"label\"].to(device)\n", " optimizer.zero_grad()\n", - " loss, train_time = timed(lambda: train(model, inputs, labels))\n", + " loss, train_time = timed(lambda: train(model, inputs, labels)) # noqa: B023\n", " optimizer.step()\n", " epoch_loss += loss.item()\n", " eager_time.append(train_time)\n", @@ -346,7 +346,8 @@ " epoch_loss_values.append(epoch_loss)\n", " if epoch < 5:\n", " print(\n", - " f\"epoch {epoch + 1}/{epoch_num} average loss: {epoch_loss:.4f}, time: {sum(eager_time[epoch*step: epoch*step+step]):.4f}\"\n", + " f\"epoch {epoch + 1}/{epoch_num} average loss: {epoch_loss:.4f}, \"\n", + " f\"time: {sum(eager_time[epoch*step: epoch*step+step]):.4f}\"\n", " )\n", "print(f\"mean training time per iteration: {np.mean(eager_time):.4f} seconds\")" ] @@ -409,7 +410,7 @@ " step += 1\n", " inputs, labels = batch_data[\"image\"].to(device), batch_data[\"label\"].to(device)\n", " optimizer.zero_grad()\n", - " loss, train_time = timed(lambda: train(model_opt, inputs, labels))\n", + " loss, train_time = timed(lambda: train(model_opt, inputs, labels)) # noqa: B023\n", " optimizer.step()\n", " epoch_loss += loss.item()\n", " compile_time.append(train_time)\n", @@ -417,7 +418,8 @@ " epoch_loss_values.append(epoch_loss)\n", " if epoch < 5:\n", " print(\n", - " f\"epoch {epoch + 1}/{epoch_num} average loss: {epoch_loss:.4f}, time: {sum(compile_time[epoch*step: epoch*step+step]):.4f}\"\n", + " f\"epoch {epoch + 1}/{epoch_num} average loss: {epoch_loss:.4f}, \"\n", + " f\"time: {sum(compile_time[epoch*step: epoch*step+step]):.4f}\"\n", " )\n", "print(f\"mean training time per iteration after compilation: {np.mean(compile_time):.4f} seconds\")" ]