From c0f87fb49dc97486691596354afdfc98feacf0a2 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Thu, 13 Feb 2025 10:10:03 -0800 Subject: [PATCH 01/12] Add pyproject.toml --- pyproject.toml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000000..4b650033f898 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,9 @@ +[build-system] +requires = [ + "setuptools", + "wheel", + "ninja", + "typing-extensions>=4.10.0", +] +# Use legacy backend to import local packages in setup.py +build-backend = "setuptools.build_meta:__legacy__" \ No newline at end of file From 65f5365863c857a79e4f955bd83994bf9dfb7237 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Thu, 13 Feb 2025 10:12:57 -0800 Subject: [PATCH 02/12] Formatting fix Signed-off-by: Logan Adams --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4b650033f898..3b11a224a008 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,4 +6,4 @@ requires = [ "typing-extensions>=4.10.0", ] # Use legacy backend to import local packages in setup.py -build-backend = "setuptools.build_meta:__legacy__" \ No newline at end of file +build-backend = "setuptools.build_meta:__legacy__" From f7d18dc6f013b1ff2a3a4a206bafa1b2e791c2d4 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Fri, 14 Feb 2025 14:07:49 -0800 Subject: [PATCH 03/12] Update setuptools min requirement --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3b11a224a008..867e26859657 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,9 +1,9 @@ [build-system] requires = [ - "setuptools", + "setuptools>=64", "wheel", "ninja", "typing-extensions>=4.10.0", ] # Use legacy backend to import local packages in setup.py -build-backend = "setuptools.build_meta:__legacy__" +build-backend = "setuptools.build_meta" From b8244bda8a836367af0d0f85bd0283b7a26e2967 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Fri, 14 Feb 2025 14:21:39 -0800 Subject: [PATCH 04/12] Switch build to legacy --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 867e26859657..5e5f27c52d98 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,4 +6,4 @@ requires = [ "typing-extensions>=4.10.0", ] # Use legacy backend to import local packages in setup.py -build-backend = "setuptools.build_meta" +build-backend = "setuptools.build_meta:__legacy__" From e5826c9a720f058b276ba3882c84f0f038630aa1 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Fri, 14 Feb 2025 14:32:30 -0800 Subject: [PATCH 05/12] Add no-build isolation --- .github/workflows/nv-pre-compile-ops.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nv-pre-compile-ops.yml b/.github/workflows/nv-pre-compile-ops.yml index fc810bc190d0..9bab68d009cb 100644 --- a/.github/workflows/nv-pre-compile-ops.yml +++ b/.github/workflows/nv-pre-compile-ops.yml @@ -36,7 +36,7 @@ jobs: #python -c "import torch; print('CUDA available:', torch.cuda.is_available())" - name: Compile DeepSpeed Ops run: | - DS_ACCELERATOR=cuda DS_ENABLE_NINJA=1 TORCH_CUDA_ARCH_LIST="7.0;7.5;8.0" DS_BUILD_OPS=1 DS_BUILD_SPARSE_ATTN=0 DS_BUILD_FP_QUANTIZER=0 DS_BUILD_CUTLASS_OPS=0 DS_BUILD_GDS=0 DS_BUILD_RAGGED_DEVICE_OPS=0 DS_BUILD_EVOFORMER_ATTN=0 pip3 install . + DS_ACCELERATOR=cuda DS_ENABLE_NINJA=1 TORCH_CUDA_ARCH_LIST="7.0;7.5;8.0" DS_BUILD_OPS=1 DS_BUILD_SPARSE_ATTN=0 DS_BUILD_FP_QUANTIZER=0 DS_BUILD_CUTLASS_OPS=0 DS_BUILD_GDS=0 DS_BUILD_RAGGED_DEVICE_OPS=0 DS_BUILD_EVOFORMER_ATTN=0 pip3 install . --no-build-isolation - name: DS Report run: | ds_report From b38d75fe0a73740e2ccf48023ba8330af72e3be0 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Wed, 19 Feb 2025 09:55:56 -0800 Subject: [PATCH 06/12] Test with non legacy backend Signed-off-by: Logan Adams --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5e5f27c52d98..145c4ab3e069 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,4 +6,5 @@ requires = [ "typing-extensions>=4.10.0", ] # Use legacy backend to import local packages in setup.py -build-backend = "setuptools.build_meta:__legacy__" +#build-backend = "setuptools.build_meta:__legacy__" +build-backend = "setuptools.build_meta" From 8acbaa3dc6dde987d736bae8d39954cbd10d43a2 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Wed, 19 Feb 2025 10:05:33 -0800 Subject: [PATCH 07/12] Need legacy backend to execute setup.py, though it executes it differently, so we aren't seeing cupy installed. Signed-off-by: Logan Adams --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 145c4ab3e069..867e26859657 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,5 +6,4 @@ requires = [ "typing-extensions>=4.10.0", ] # Use legacy backend to import local packages in setup.py -#build-backend = "setuptools.build_meta:__legacy__" build-backend = "setuptools.build_meta" From e5146e42e8c0161d6c7db7d80a96759350138b8f Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Wed, 19 Feb 2025 10:17:15 -0800 Subject: [PATCH 08/12] Update to actually use legacy backend Signed-off-by: Logan Adams --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 867e26859657..5e5f27c52d98 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,4 +6,4 @@ requires = [ "typing-extensions>=4.10.0", ] # Use legacy backend to import local packages in setup.py -build-backend = "setuptools.build_meta" +build-backend = "setuptools.build_meta:__legacy__" From c1694cdf4a3e96d952e29ee260832449e054ef8e Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Fri, 21 Feb 2025 15:06:42 -0800 Subject: [PATCH 09/12] Add all imports from setup.py to pyproject.toml --- pyproject.toml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 5e5f27c52d98..dd314eeb347f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,6 +4,15 @@ requires = [ "wheel", "ninja", "typing-extensions>=4.10.0", + "pathlib", + "os", + "shutil", + "subprocess", + "shutil", + "time", + "typing", + "shlex", + "torch" ] # Use legacy backend to import local packages in setup.py build-backend = "setuptools.build_meta:__legacy__" From b720b544f348b283e7f4e9a74e140f0a96d62d44 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Mon, 24 Feb 2025 16:22:59 -0800 Subject: [PATCH 10/12] Update workflow to not do build isolation Signed-off-by: Logan Adams --- .github/workflows/nv-torch-latest-v100.yml | 2 +- .github/workflows/nv-torch-nightly-v100.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nv-torch-latest-v100.yml b/.github/workflows/nv-torch-latest-v100.yml index 3884663d9e55..2b92da8845b7 100644 --- a/.github/workflows/nv-torch-latest-v100.yml +++ b/.github/workflows/nv-torch-latest-v100.yml @@ -44,7 +44,7 @@ jobs: - name: Install deepspeed run: | - pip install .[dev,1bit,autotuning] + pip install .[dev,1bit,autotuning] --no-build-isolation ds_report - name: Python environment diff --git a/.github/workflows/nv-torch-nightly-v100.yml b/.github/workflows/nv-torch-nightly-v100.yml index cb8c15f0d709..db11fefe8a79 100644 --- a/.github/workflows/nv-torch-nightly-v100.yml +++ b/.github/workflows/nv-torch-nightly-v100.yml @@ -43,7 +43,7 @@ jobs: - name: Install deepspeed run: | - pip install .[dev,1bit,autotuning] + pip install .[dev,1bit,autotuning] --no-build-isolation ds_report - name: Python environment From a868356fb176348c7d1a64ba583436eea666a821 Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Mon, 24 Feb 2025 16:27:27 -0800 Subject: [PATCH 11/12] Add more requirements --- pyproject.toml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index dd314eeb347f..86031c759fea 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,14 +4,6 @@ requires = [ "wheel", "ninja", "typing-extensions>=4.10.0", - "pathlib", - "os", - "shutil", - "subprocess", - "shutil", - "time", - "typing", - "shlex", "torch" ] # Use legacy backend to import local packages in setup.py From fa4d66bc3a151663f955f8e611b196f8ddcee43a Mon Sep 17 00:00:00 2001 From: Logan Adams Date: Wed, 26 Feb 2025 08:39:46 -0800 Subject: [PATCH 12/12] Add pyproject.toml into comments Signed-off-by: Logan Adams --- .github/workflows/nv-mii.yml | 1 + deepspeed/git_version_info.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nv-mii.yml b/.github/workflows/nv-mii.yml index aff0c8a548c1..ac527d1fcb80 100644 --- a/.github/workflows/nv-mii.yml +++ b/.github/workflows/nv-mii.yml @@ -13,6 +13,7 @@ on: - '.github/workflows/nv-mii.yml' - 'requirements/**' - 'setup.py' + - 'pyproject.toml' - 'deepspeed/__init__.py' - 'deepspeed/inference/**' - '!deepspeed/inference/v2/**' # exclude v2 dir diff --git a/deepspeed/git_version_info.py b/deepspeed/git_version_info.py index 70c536d2f78e..2ca8f802d62a 100644 --- a/deepspeed/git_version_info.py +++ b/deepspeed/git_version_info.py @@ -4,7 +4,7 @@ # DeepSpeed Team try: - # This is populated by setup.py + # This is populated by setup.py/pyproject.toml from .git_version_info_installed import * # noqa: F401 # type: ignore except ModuleNotFoundError: import os