diff --git a/.github/scripts/ci_test_xpu.sh b/.github/scripts/ci_test_xpu.sh index 574df41e80..d765696b40 100644 --- a/.github/scripts/ci_test_xpu.sh +++ b/.github/scripts/ci_test_xpu.sh @@ -8,7 +8,7 @@ export CXX=/usr/bin/g++ export SCCACHE_DISABLE=1 python3 -m pip install torch torchvision torchaudio pytorch-triton-xpu --index-url https://download.pytorch.org/whl/nightly/xpu --force-reinstall --no-cache-dir -cd torchao && python3 setup.py install && cd .. +cd torchao && pip install . --no-build-isolation && cd .. python3 -c "import torch; import torchao; print(f'Torch version: {torch.__version__}')" diff --git a/.github/workflows/1xH100_tests.yml b/.github/workflows/1xH100_tests.yml index 475b6e2b31..171e41f1ad 100644 --- a/.github/workflows/1xH100_tests.yml +++ b/.github/workflows/1xH100_tests.yml @@ -46,7 +46,7 @@ jobs: pip install uv pip install ${{ matrix.torch-spec }} uv pip install -r dev-requirements.txt - pip install . + pip install . --no-build-isolation pytest test/integration --verbose -s pytest test/dtypes/test_affine_quantized_float.py --verbose -s python test/quantization/quantize_/workflows/float8/test_float8_tensor.py diff --git a/.github/workflows/1xL4_tests.yml b/.github/workflows/1xL4_tests.yml index e56c74bb5b..58980d8504 100644 --- a/.github/workflows/1xL4_tests.yml +++ b/.github/workflows/1xL4_tests.yml @@ -46,7 +46,7 @@ jobs: pip install uv pip install ${{ matrix.torch-spec }} uv pip install -r dev-requirements.txt - pip install . + pip install . --no-build-isolation pytest test/integration --verbose -s pytest test/dtypes/test_affine_quantized_float.py --verbose -s ./test/float8/test_everything_single_gpu.sh diff --git a/.github/workflows/4xH100_tests.yml b/.github/workflows/4xH100_tests.yml index 6d675a7abf..72faeebebb 100644 --- a/.github/workflows/4xH100_tests.yml +++ b/.github/workflows/4xH100_tests.yml @@ -44,6 +44,6 @@ jobs: pip install uv pip install ${{ matrix.torch-spec }} uv pip install -r dev-requirements.txt - pip install . + pip install . --no-build-isolation ./test/float8/test_everything_multi_gpu.sh ./test/prototype/mx_formats/test_mx_dtensor.sh diff --git a/.github/workflows/dashboard_perf_test.yml b/.github/workflows/dashboard_perf_test.yml index 07b32cc072..518a87d058 100644 --- a/.github/workflows/dashboard_perf_test.yml +++ b/.github/workflows/dashboard_perf_test.yml @@ -30,7 +30,7 @@ jobs: ${CONDA_RUN} python -m pip install --upgrade pip ${CONDA_RUN} pip install ${{ matrix.torch-spec }} ${CONDA_RUN} pip install -r dev-requirements.txt - ${CONDA_RUN} pip install . + ${CONDA_RUN} pip install . --no-build-isolation # SAM 2.1 ${CONDA_RUN} pip install -r examples/sam2_amg_server/requirements.txt diff --git a/.github/workflows/doc_build.yml b/.github/workflows/doc_build.yml index 469686d96c..547c3094eb 100644 --- a/.github/workflows/doc_build.yml +++ b/.github/workflows/doc_build.yml @@ -43,8 +43,7 @@ jobs: - name: Install dependencies run: | python -m pip install torch - python -m pip install setuptools==78.1.1 --force-reinstall - python -m pip install -e . + python -m pip install -e . --no-build-isolation pip install -r dev-requirements.txt python -m pip install -r docs/requirements.txt - name: Build docs diff --git a/.github/workflows/nightly_smoke_test.yml b/.github/workflows/nightly_smoke_test.yml index 7b88f84762..c53560f841 100644 --- a/.github/workflows/nightly_smoke_test.yml +++ b/.github/workflows/nightly_smoke_test.yml @@ -38,5 +38,5 @@ jobs: python -m pip install --upgrade pip pip install ${{ matrix.torch-spec }} pip install -r dev-requirements.txt - python setup.py install + pip install . --no-build-isolation pytest test --verbose -s diff --git a/.github/workflows/regression_test.yml b/.github/workflows/regression_test.yml index 94afa1a766..cc474ff9e7 100644 --- a/.github/workflows/regression_test.yml +++ b/.github/workflows/regression_test.yml @@ -50,7 +50,7 @@ jobs: python -m pip install --upgrade pip pip install ${{ matrix.torch-spec }} pip install -r dev-requirements.txt - pip install . + pip install . --no-build-isolation export CONDA=$(dirname $(dirname $(which conda))) export LD_LIBRARY_PATH=$CONDA/lib/:$LD_LIBRARY_PATH pytest test --verbose -s @@ -114,7 +114,7 @@ jobs: pip install ${{ matrix.torch-spec }} sed -i '${{ matrix.dev-requirements-overrides }}' dev-requirements.txt pip install -r dev-requirements.txt - pip install . + pip install . --no-build-isolation export CONDA=$(dirname $(dirname $(which conda))) export LD_LIBRARY_PATH=$CONDA/lib/:$LD_LIBRARY_PATH pytest test --verbose -s diff --git a/.github/workflows/regression_test_aarch64.yml b/.github/workflows/regression_test_aarch64.yml index ff10b661a5..72b66c9a75 100644 --- a/.github/workflows/regression_test_aarch64.yml +++ b/.github/workflows/regression_test_aarch64.yml @@ -39,7 +39,7 @@ jobs: pip install executorch pip install torch==2.7.0 --index-url https://download.pytorch.org/whl/cpu --force-reinstall pip install -r dev-requirements.txt - USE_CPP=1 TORCHAO_BUILD_KLEIDIAI=1 pip install . + USE_CPP=1 TORCHAO_BUILD_KLEIDIAI=1 pip install . --no-build-isolation - name: Install requirements linux if: runner.os == 'Linux' run: | @@ -47,7 +47,7 @@ jobs: pip install coremltools pip install torch==2.7.0 --index-url https://download.pytorch.org/whl/cpu --force-reinstall pip install -r dev-requirements.txt - BUILD_TORCHAO_EXPERIMENTAL=1 TORCHAO_BUILD_CPU_AARCH64=1 TORCHAO_BUILD_KLEIDIAI=1 TORCHAO_ENABLE_ARM_NEON_DOT=1 TORCHAO_PARALLEL_BACKEND=OPENMP pip install . + BUILD_TORCHAO_EXPERIMENTAL=1 TORCHAO_BUILD_CPU_AARCH64=1 TORCHAO_BUILD_KLEIDIAI=1 TORCHAO_ENABLE_ARM_NEON_DOT=1 TORCHAO_PARALLEL_BACKEND=OPENMP pip install . --no-build-isolation - name: Run python tests run: | conda activate venv diff --git a/.github/workflows/regression_test_rocm.yml b/.github/workflows/regression_test_rocm.yml index 95ff662216..fcb0ec1d9e 100644 --- a/.github/workflows/regression_test_rocm.yml +++ b/.github/workflows/regression_test_rocm.yml @@ -45,7 +45,7 @@ jobs: python -m pip install --upgrade pip pip install ${{ matrix.torch-spec }} pip install -r dev-requirements.txt - pip install . + pip install . --no-build-isolation export CONDA=$(dirname $(dirname $(which conda))) export LD_LIBRARY_PATH=$CONDA/lib/:$LD_LIBRARY_PATH pytest test --verbose -s diff --git a/.github/workflows/release_model.yml b/.github/workflows/release_model.yml index 6b3566e07c..15bdfeccbf 100644 --- a/.github/workflows/release_model.yml +++ b/.github/workflows/release_model.yml @@ -40,7 +40,7 @@ jobs: pip install uv pip install ${{ matrix.torch-spec }} uv pip install -r dev-requirements.txt - pip install . + pip install . --no-build-isolation HF_MODEL_ID=${{ github.event.inputs.hf_model_id }} cd .github/scripts/torchao_model_releases ./release.sh --model_id $HF_MODEL_ID --push_to_hub diff --git a/.github/workflows/run_microbenchmarks.yml b/.github/workflows/run_microbenchmarks.yml index 3c21afa35b..67f977d051 100644 --- a/.github/workflows/run_microbenchmarks.yml +++ b/.github/workflows/run_microbenchmarks.yml @@ -39,7 +39,7 @@ jobs: # Install dependencies ${CONDA_RUN} pip install ${{ matrix.torch-spec }} ${CONDA_RUN} pip install -r dev-requirements.txt - ${CONDA_RUN} pip install . + ${CONDA_RUN} pip install . --no-build-isolation ${CONDA_RUN} ls ${CONDA_RUN} bash -c 'pwd' diff --git a/.github/workflows/run_tutorials.yml b/.github/workflows/run_tutorials.yml index eaa61eb815..3a8ee4df6b 100644 --- a/.github/workflows/run_tutorials.yml +++ b/.github/workflows/run_tutorials.yml @@ -28,6 +28,6 @@ jobs: ${CONDA_RUN} python -m pip install --upgrade pip ${CONDA_RUN} pip install ${{ matrix.torch-spec }} ${CONDA_RUN} pip install -r dev-requirements.txt - ${CONDA_RUN} pip install . + ${CONDA_RUN} pip install . --no-build-isolation cd tutorials ${CONDA_RUN} bash run_all.sh diff --git a/README.md b/README.md index ad3e0b6f97..a7224c202a 100644 --- a/README.md +++ b/README.md @@ -107,8 +107,9 @@ pip install torchao pip install torchao --index-url https://download.pytorch.org/whl/cpu # CPU only # For developers - USE_CUDA=1 python setup.py develop - USE_CPP=0 python setup.py develop + # Note: the `--no-build-isolation` flag is required. + USE_CUDA=1 pip install -e . --no-build-isolation + USE_CPP=0 pip install -e . --no-build-isolation ``` diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000..6adbf5d302 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,10 @@ +[build-system] +requires = [ + "setuptools", + "wheel", + # TODO(future): consider declaring build-time dependencies such + # as `torch` here to enable PEP 517. For now, require the user to + # install `torch` in their environment before running the build, + # and only support builds with the `--no-build-isolation` flag. +] +build-backend = "setuptools.build_meta" diff --git a/scripts/test_torch_version_torchao_version_compatibility.sh b/scripts/test_torch_version_torchao_version_compatibility.sh index decf4c2ae7..affdeb73a7 100755 --- a/scripts/test_torch_version_torchao_version_compatibility.sh +++ b/scripts/test_torch_version_torchao_version_compatibility.sh @@ -63,7 +63,7 @@ pip uninstall torchao # Install specific compatible version of torch (nightly 2.9.0dev) pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu129 # Build torchao from source -python setup.py develop +pip install . --no-build-isolation # Should import successfully without warning check_torchao_import "false" "" ## prev torch, torchao from source (do not rebuild), env var = True