From 876e01f6d7095f5994447b5b336b75561d69a060 Mon Sep 17 00:00:00 2001 From: zhouzaida Date: Fri, 11 Nov 2022 19:16:56 +0800 Subject: [PATCH 1/4] Add torch1.13 checking in CI --- .github/workflows/build.yml | 695 +++++++++++++++++++----------------- 1 file changed, 370 insertions(+), 325 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0328966dd6..067da34cdb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,233 +27,287 @@ env: MMCV_WITH_OPS: 1 jobs: - build_without_torch: - runs-on: ubuntu-18.04 - strategy: - matrix: - python-version: [3.7] - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install system dependencies - run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg - - name: Build and install - run: rm -rf .eggs && pip install -e . - - name: Validate the installation - run: python -c "import mmcv" - - name: Run unittests and generate coverage report - run: | - pip install -r requirements/test.txt - pytest tests/ \ - --ignore=tests/test_runner \ - --ignore=tests/test_device/test_ipu \ - --ignore=tests/test_optimizer.py \ - --ignore=tests/test_cnn \ - --ignore=tests/test_parallel.py \ - --ignore=tests/test_ops \ - --ignore=tests/test_load_model_zoo.py \ - --ignore=tests/test_utils/test_logging.py \ - --ignore=tests/test_image/test_io.py \ - --ignore=tests/test_utils/test_registry.py \ - --ignore=tests/test_utils/test_parrots_jit.py \ - --ignore=tests/test_utils/test_trace.py \ - --ignore=tests/test_utils/test_hub.py \ - --ignore=tests/test_device \ - --ignore=tests/test_utils/test_torch_ops.py + # build_without_torch: + # runs-on: ubuntu-18.04 + # strategy: + # matrix: + # python-version: [3.7] + # steps: + # - uses: actions/checkout@v2 + # - name: Set up Python ${{ matrix.python-version }} + # uses: actions/setup-python@v2 + # with: + # python-version: ${{ matrix.python-version }} + # - name: Install system dependencies + # run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg + # - name: Build and install + # run: rm -rf .eggs && pip install -e . + # - name: Validate the installation + # run: python -c "import mmcv" + # - name: Run unittests and generate coverage report + # run: | + # pip install -r requirements/test.txt + # pytest tests/ \ + # --ignore=tests/test_runner \ + # --ignore=tests/test_device/test_ipu \ + # --ignore=tests/test_optimizer.py \ + # --ignore=tests/test_cnn \ + # --ignore=tests/test_parallel.py \ + # --ignore=tests/test_ops \ + # --ignore=tests/test_load_model_zoo.py \ + # --ignore=tests/test_utils/test_logging.py \ + # --ignore=tests/test_image/test_io.py \ + # --ignore=tests/test_utils/test_registry.py \ + # --ignore=tests/test_utils/test_parrots_jit.py \ + # --ignore=tests/test_utils/test_trace.py \ + # --ignore=tests/test_utils/test_hub.py \ + # --ignore=tests/test_device \ + # --ignore=tests/test_utils/test_torch_ops.py - build_without_ops: - runs-on: ubuntu-18.04 - env: - MMCV_WITH_OPS: 0 - strategy: - matrix: - python-version: [3.7] - torch: [1.7.0, 1.8.0, 1.9.0] - include: - - torch: 1.7.0 - torchvision: 0.8.1 - - torch: 1.8.0 - torchvision: 0.9.0 - - torch: 1.9.0 - torchvision: 0.10.0 - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install system dependencies - run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg - - name: Install PyTorch - run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html - - name: Build and install - run: rm -rf .eggs && pip install -e . - - name: Validate the installation - run: python -c "import mmcv" - - name: Run unittests - run: | - pip install -r requirements/test.txt - pytest tests/ --ignore=tests/test_ops + # build_without_ops: + # runs-on: ubuntu-18.04 + # env: + # MMCV_WITH_OPS: 0 + # strategy: + # matrix: + # python-version: [3.7] + # torch: [1.7.0, 1.8.0, 1.9.0] + # include: + # - torch: 1.7.0 + # torchvision: 0.8.1 + # - torch: 1.8.0 + # torchvision: 0.9.0 + # - torch: 1.9.0 + # torchvision: 0.10.0 + # steps: + # - uses: actions/checkout@v2 + # - name: Set up Python ${{ matrix.python-version }} + # uses: actions/setup-python@v2 + # with: + # python-version: ${{ matrix.python-version }} + # - name: Install system dependencies + # run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg + # - name: Install PyTorch + # run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html + # - name: Build and install + # run: rm -rf .eggs && pip install -e . + # - name: Validate the installation + # run: python -c "import mmcv" + # - name: Run unittests + # run: | + # pip install -r requirements/test.txt + # pytest tests/ --ignore=tests/test_ops - build_cpu: - runs-on: ubuntu-18.04 - strategy: - matrix: - python-version: [3.7] - torch: [1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] - include: - - torch: 1.5.1 - torchvision: 0.6.1 - - torch: 1.6.0 - torchvision: 0.7.0 - - torch: 1.7.0 - torchvision: 0.8.1 - - torch: 1.8.0 - torchvision: 0.9.0 - - torch: 1.9.0 - torchvision: 0.10.0 - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install system dependencies - run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg - - name: Install PyTorch - run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html - # pstuil is an optional package to detect the number of CPU for compiling mmcv - - name: Install psutil - run: pip install psutil - - name: Create sdist and untar - run: | - MMCV_WITH_OPS=1 python setup.py sdist - tar zxvf dist/mmcv-full* -C /tmp - rm -r mmcv - - name: Build and install from sdist - run: | - pushd /tmp/mmcv-full* - pip install -e . - popd - - name: Validate the installation - run: python -c "import mmcv" - - name: Run unittests and generate coverage report - run: | - pip install -r requirements/test.txt - coverage run --branch --source=mmcv -m pytest tests/ - coverage xml - coverage report -m + # build_cpu: + # runs-on: ubuntu-18.04 + # strategy: + # matrix: + # python-version: [3.7] + # torch: [1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] + # include: + # - torch: 1.5.1 + # torchvision: 0.6.1 + # - torch: 1.6.0 + # torchvision: 0.7.0 + # - torch: 1.7.0 + # torchvision: 0.8.1 + # - torch: 1.8.0 + # torchvision: 0.9.0 + # - torch: 1.9.0 + # torchvision: 0.10.0 + # steps: + # - uses: actions/checkout@v2 + # - name: Set up Python ${{ matrix.python-version }} + # uses: actions/setup-python@v2 + # with: + # python-version: ${{ matrix.python-version }} + # - name: Install system dependencies + # run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg + # - name: Install PyTorch + # run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html + # # pstuil is an optional package to detect the number of CPU for compiling mmcv + # - name: Install psutil + # run: pip install psutil + # - name: Create sdist and untar + # run: | + # MMCV_WITH_OPS=1 python setup.py sdist + # tar zxvf dist/mmcv-full* -C /tmp + # rm -r mmcv + # - name: Build and install from sdist + # run: | + # pushd /tmp/mmcv-full* + # pip install -e . + # popd + # - name: Validate the installation + # run: python -c "import mmcv" + # - name: Run unittests and generate coverage report + # run: | + # pip install -r requirements/test.txt + # coverage run --branch --source=mmcv -m pytest tests/ + # coverage xml + # coverage report -m - build_cu101: - runs-on: ubuntu-18.04 - container: - image: pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel - env: - FORCE_CUDA: 1 - MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 - strategy: - matrix: - python-version: [3.7] - torch: [1.5.1+cu101, 1.6.0+cu101, 1.7.0+cu101, 1.8.0+cu101] - include: - - torch: 1.5.1+cu101 - torchvision: 0.6.1+cu101 - - torch: 1.6.0+cu101 - torchvision: 0.7.0+cu101 - - torch: 1.7.0+cu101 - torchvision: 0.8.1+cu101 - - torch: 1.8.0+cu101 - torchvision: 0.9.0+cu101 - - python-version: 3.6 - torch: 1.8.0+cu101 - torchvision: 0.9.0+cu101 - - python-version: 3.8 - torch: 1.8.0+cu101 - torchvision: 0.9.0+cu101 - - python-version: 3.9 - torch: 1.8.0+cu101 - torchvision: 0.9.0+cu101 - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Fetch GPG keys - run: | - apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub - apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub - - name: Install python-dev - run: apt-get update && apt-get install -y python${{matrix.python-version}}-dev - if: ${{matrix.python-version != '3.9'}} - - name: Install Pillow - run: python -m pip install Pillow==6.2.2 - if: ${{matrix.torchvision == '0.4.2'}} - # When we use a third-party container, we need to add python -m to call - # the user-installed pip when we use the pip command, otherwise it will - # call the system pip - - name: Install PyTorch - run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html - - name: Install system dependencies - run: apt-get update && apt-get install -y ffmpeg libturbojpeg ninja-build - - name: Install dependencies for compiling onnx when python=3.9 - run: python -m pip install protobuf && apt-get -y install libprotobuf-dev protobuf-compiler cmake - if: ${{matrix.python-version == '3.9'}} - # pstuil is an optional package to detect the number of CPU for compiling mmcv - - name: Install psutil - run: python -m pip install psutil - - name: Build and install - run: rm -rf .eggs && python -m pip install -e . - - name: Validate the installation - run: python -c "import mmcv" - - name: Run unittests and generate coverage report - run: | - python -m pip install -r requirements/test.txt - coverage run --branch --source=mmcv -m pytest tests/ - coverage xml - coverage report -m - # Only upload coverage report for python3.7 && pytorch1.6 - - name: Upload coverage to Codecov - if: ${{matrix.torch == '1.6.0+cu101' && matrix.python-version == '3.7'}} - uses: codecov/codecov-action@v1.0.14 - with: - file: ./coverage.xml - flags: unittests - env_vars: OS,PYTHON - name: codecov-umbrella - fail_ci_if_error: false + # build_cu101: + # runs-on: ubuntu-18.04 + # container: + # image: pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel + # env: + # FORCE_CUDA: 1 + # MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 + # strategy: + # matrix: + # python-version: [3.7] + # torch: [1.5.1+cu101, 1.6.0+cu101, 1.7.0+cu101, 1.8.0+cu101] + # include: + # - torch: 1.5.1+cu101 + # torchvision: 0.6.1+cu101 + # - torch: 1.6.0+cu101 + # torchvision: 0.7.0+cu101 + # - torch: 1.7.0+cu101 + # torchvision: 0.8.1+cu101 + # - torch: 1.8.0+cu101 + # torchvision: 0.9.0+cu101 + # - python-version: 3.6 + # torch: 1.8.0+cu101 + # torchvision: 0.9.0+cu101 + # - python-version: 3.8 + # torch: 1.8.0+cu101 + # torchvision: 0.9.0+cu101 + # - python-version: 3.9 + # torch: 1.8.0+cu101 + # torchvision: 0.9.0+cu101 + # steps: + # - uses: actions/checkout@v2 + # - name: Set up Python ${{ matrix.python-version }} + # uses: actions/setup-python@v2 + # with: + # python-version: ${{ matrix.python-version }} + # - name: Fetch GPG keys + # run: | + # apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub + # apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub + # - name: Install python-dev + # run: apt-get update && apt-get install -y python${{matrix.python-version}}-dev + # if: ${{matrix.python-version != '3.9'}} + # - name: Install Pillow + # run: python -m pip install Pillow==6.2.2 + # if: ${{matrix.torchvision == '0.4.2'}} + # # When we use a third-party container, we need to add python -m to call + # # the user-installed pip when we use the pip command, otherwise it will + # # call the system pip + # - name: Install PyTorch + # run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html + # - name: Install system dependencies + # run: apt-get update && apt-get install -y ffmpeg libturbojpeg ninja-build + # - name: Install dependencies for compiling onnx when python=3.9 + # run: python -m pip install protobuf && apt-get -y install libprotobuf-dev protobuf-compiler cmake + # if: ${{matrix.python-version == '3.9'}} + # # pstuil is an optional package to detect the number of CPU for compiling mmcv + # - name: Install psutil + # run: python -m pip install psutil + # - name: Build and install + # run: rm -rf .eggs && python -m pip install -e . + # - name: Validate the installation + # run: python -c "import mmcv" + # - name: Run unittests and generate coverage report + # run: | + # python -m pip install -r requirements/test.txt + # coverage run --branch --source=mmcv -m pytest tests/ + # coverage xml + # coverage report -m + # # Only upload coverage report for python3.7 && pytorch1.6 + # - name: Upload coverage to Codecov + # if: ${{matrix.torch == '1.6.0+cu101' && matrix.python-version == '3.7'}} + # uses: codecov/codecov-action@v1.0.14 + # with: + # file: ./coverage.xml + # flags: unittests + # env_vars: OS,PYTHON + # name: codecov-umbrella + # fail_ci_if_error: false + + # build_cu102: + # runs-on: ubuntu-18.04 + # container: + # image: pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel + # env: + # FORCE_CUDA: 1 + # MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 + # strategy: + # matrix: + # python-version: [3.7] + # torch: [1.9.0+cu102, 1.10.0+cu102] + # include: + # - torch: 1.9.0+cu102 + # torchvision: 0.10.0+cu102 + # - torch: 1.10.0+cu102 + # torchvision: 0.11.0+cu102 + # - python-version: '3.10' + # torch: 1.11.0+cu102 + # torchvision: 0.12.0+cu102 + # - python-version: '3.10' + # torch: 1.12.0+cu102 + # torchvision: 0.13.0+cu102 + # - python-version: 3.6 + # torch: 1.9.0+cu102 + # torchvision: 0.10.0+cu102 + # - python-version: 3.8 + # torch: 1.9.0+cu102 + # torchvision: 0.10.0+cu102 + # steps: + # - uses: actions/checkout@v2 + # - name: Set up Python ${{ matrix.python-version }} + # uses: actions/setup-python@v2 + # with: + # python-version: ${{ matrix.python-version }} + # - name: Fetch GPG keys + # run: | + # apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub + # apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub + # - name: Add PPA + # run: | + # apt-get update && apt-get install -y software-properties-common + # add-apt-repository -y ppa:deadsnakes/ppa + # - name: Install python-dev + # run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y python${{matrix.python-version}}-dev + # - name: python -m Install PyTorch + # run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html + # - name: Install system dependencies + # run: apt-get update && apt-get install -y ffmpeg libturbojpeg ninja-build + # # pstuil is an optional package to detect the number of CPU for compiling mmcv + # - name: Install psutil + # run: python -m pip install psutil + # - name: Build and install + # run: rm -rf .eggs && python -m pip install -e . + # - name: Validate the installation + # run: python -c "import mmcv" + # - name: Run unittests and generate coverage report + # run: | + # python -m pip install -r requirements/test.txt + # coverage run --branch --source=mmcv -m pytest tests/ + # coverage xml + # if: ${{matrix.python-version != '3.10'}} + # # special treatment for python3.10 because onnx and onnxruntime don't provide python3.10 pre-built packages + # - name: Run unittests and generate coverage report for python3.10 + # run: | + # python -m pip install -r requirements/test.txt + # coverage run --branch --source=mmcv -m pytest tests/ --ignore=tests/test_ops/test_onnx.py --ignore=tests/test_ops/test_tensorrt.py --ignore=tests/test_ops/test_tensorrt_preprocess.py + # coverage xml + # if: ${{matrix.python-version == '3.10'}} - build_cu102: + build_cu116: runs-on: ubuntu-18.04 container: - image: pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel + image: pytorch/pytorch:1.13.0-cuda11.6-cudnn8-devel env: FORCE_CUDA: 1 - MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 strategy: matrix: - python-version: [3.7] - torch: [1.9.0+cu102, 1.10.0+cu102] + python-version: ['3.11'] + torch: [1.13.0+cu116] include: - - torch: 1.9.0+cu102 - torchvision: 0.10.0+cu102 - - torch: 1.10.0+cu102 - torchvision: 0.11.0+cu102 - - python-version: '3.10' - torch: 1.11.0+cu102 - torchvision: 0.12.0+cu102 - - python-version: '3.10' - torch: 1.12.0+cu102 - torchvision: 0.13.0+cu102 - - python-version: 3.6 - torch: 1.9.0+cu102 - torchvision: 0.10.0+cu102 - - python-version: 3.8 - torch: 1.9.0+cu102 - torchvision: 0.10.0+cu102 + - torch: 1.13.0+cu116 + torchvision: 0.14.0+cu116 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} @@ -282,119 +336,110 @@ jobs: - name: Validate the installation run: python -c "import mmcv" - name: Run unittests and generate coverage report - run: | - python -m pip install -r requirements/test.txt - coverage run --branch --source=mmcv -m pytest tests/ - coverage xml - if: ${{matrix.python-version != '3.10'}} - # special treatment for python3.10 because onnx and onnxruntime don't provide python3.10 pre-built packages - - name: Run unittests and generate coverage report for python3.10 run: | python -m pip install -r requirements/test.txt coverage run --branch --source=mmcv -m pytest tests/ --ignore=tests/test_ops/test_onnx.py --ignore=tests/test_ops/test_tensorrt.py --ignore=tests/test_ops/test_tensorrt_preprocess.py coverage xml - if: ${{matrix.python-version == '3.10'}} - - build_windows_without_ops: - runs-on: windows-latest - env: - MMCV_WITH_OPS: 0 - strategy: - matrix: - torch: [1.7.1, 1.8.0, 1.9.0] - include: - - torch: 1.7.1 - torchvision: 0.8.2 - - torch: 1.8.0 - torchvision: 0.9.0 - - torch: 1.9.0 - torchvision: 0.10.0 - steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.7 - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - name: Install PyTorch - run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu --no-cache-dir -f https://download.pytorch.org/whl/torch_stable.html - - name: Build and install - run: pip install -e . - - name: Validate the installation - run: python -c "import mmcv" - - name: Run unittests - run: | - pip install -r requirements/test.txt - pytest tests/ --ignore=tests/test_ops --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py --ignore tests/test_image/test_io.py + # build_windows_without_ops: + # runs-on: windows-latest + # env: + # MMCV_WITH_OPS: 0 + # strategy: + # matrix: + # torch: [1.7.1, 1.8.0, 1.9.0] + # include: + # - torch: 1.7.1 + # torchvision: 0.8.2 + # - torch: 1.8.0 + # torchvision: 0.9.0 + # - torch: 1.9.0 + # torchvision: 0.10.0 + # steps: + # - uses: actions/checkout@v2 + # - name: Set up Python 3.7 + # uses: actions/setup-python@v2 + # with: + # python-version: 3.7 + # - name: Install PyTorch + # run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu --no-cache-dir -f https://download.pytorch.org/whl/torch_stable.html + # - name: Build and install + # run: pip install -e . + # - name: Validate the installation + # run: python -c "import mmcv" + # - name: Run unittests + # run: | + # pip install -r requirements/test.txt + # pytest tests/ --ignore=tests/test_ops --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py --ignore tests/test_image/test_io.py - build_windows: - runs-on: windows-latest - strategy: - matrix: - torch: [1.7.1, 1.8.0, 1.9.0] - include: - - torch: 1.7.1 - torchvision: 0.8.2 - - torch: 1.8.0 - torchvision: 0.9.0 - - torch: 1.9.0 - torchvision: 0.10.0 - steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.7 - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - name: Install PyTorch - run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu --no-cache-dir -f https://download.pytorch.org/whl/torch_stable.html - - name: Build and install - run: pip install -e . - - name: Validate the installation - run: python -c "import mmcv" - - name: Run unittests - run: | - pip install -r requirements/test.txt - pytest tests/ --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py --ignore tests/test_image/test_io.py + # build_windows: + # runs-on: windows-latest + # strategy: + # matrix: + # torch: [1.7.1, 1.8.0, 1.9.0] + # include: + # - torch: 1.7.1 + # torchvision: 0.8.2 + # - torch: 1.8.0 + # torchvision: 0.9.0 + # - torch: 1.9.0 + # torchvision: 0.10.0 + # steps: + # - uses: actions/checkout@v2 + # - name: Set up Python 3.7 + # uses: actions/setup-python@v2 + # with: + # python-version: 3.7 + # - name: Install PyTorch + # run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu --no-cache-dir -f https://download.pytorch.org/whl/torch_stable.html + # - name: Build and install + # run: pip install -e . + # - name: Validate the installation + # run: python -c "import mmcv" + # - name: Run unittests + # run: | + # pip install -r requirements/test.txt + # pytest tests/ --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py --ignore tests/test_image/test_io.py - build_macos: - runs-on: macos-latest - strategy: - matrix: - torch: [1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] - include: - - torch: 1.5.1 - torchvision: 0.6.1 - - torch: 1.6.0 - torchvision: 0.7.0 - - torch: 1.7.0 - torchvision: 0.8.1 - - torch: 1.8.0 - torchvision: 0.9.0 - - torch: 1.9.0 - torchvision: 0.10.0 - steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.7 - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - name: Install system dependencies - run: brew install ffmpeg jpeg-turbo - - name: Install utils - run: pip install psutil - - name: Install Pillow - run: pip install Pillow==6.2.2 - if: ${{matrix.torchvision == '0.4.2'}} - - name: Install PyTorch - run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} --no-cache-dir - - name: Build and install - run: | - rm -rf .eggs - CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' pip install -e . - - name: Validate the installation - run: python -c "import mmcv" - - name: Run unittests - run: | - pip install -r requirements/test.txt - # The timing on macos VMs is not precise, so we skip the progressbar tests - pytest tests/ --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py + # build_macos: + # runs-on: macos-latest + # strategy: + # matrix: + # torch: [1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] + # include: + # - torch: 1.5.1 + # torchvision: 0.6.1 + # - torch: 1.6.0 + # torchvision: 0.7.0 + # - torch: 1.7.0 + # torchvision: 0.8.1 + # - torch: 1.8.0 + # torchvision: 0.9.0 + # - torch: 1.9.0 + # torchvision: 0.10.0 + # steps: + # - uses: actions/checkout@v2 + # - name: Set up Python 3.7 + # uses: actions/setup-python@v2 + # with: + # python-version: 3.7 + # - name: Install system dependencies + # run: brew install ffmpeg jpeg-turbo + # - name: Install utils + # run: pip install psutil + # - name: Install Pillow + # run: pip install Pillow==6.2.2 + # if: ${{matrix.torchvision == '0.4.2'}} + # - name: Install PyTorch + # run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} --no-cache-dir + # - name: Build and install + # run: | + # rm -rf .eggs + # CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' pip install -e . + # - name: Validate the installation + # run: python -c "import mmcv" + # - name: Run unittests + # run: | + # pip install -r requirements/test.txt + # # The timing on macos VMs is not precise, so we skip the progressbar tests + # pytest tests/ --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py From bd04a88ca4aef8e37ea6d030df00a26826a04539 Mon Sep 17 00:00:00 2001 From: zhouzaida Date: Wed, 16 Nov 2022 15:14:31 +0800 Subject: [PATCH 2/4] swith to python3.10 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 067da34cdb..8f489f7446 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -303,7 +303,7 @@ jobs: FORCE_CUDA: 1 strategy: matrix: - python-version: ['3.11'] + python-version: ['3.10'] torch: [1.13.0+cu116] include: - torch: 1.13.0+cu116 From 6f6945380f30485173c45e2f01c64951ad3e0257 Mon Sep 17 00:00:00 2001 From: zhouzaida Date: Wed, 16 Nov 2022 16:08:13 +0800 Subject: [PATCH 3/4] fix --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8f489f7446..cf0f348408 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -301,6 +301,7 @@ jobs: image: pytorch/pytorch:1.13.0-cuda11.6-cudnn8-devel env: FORCE_CUDA: 1 + MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 strategy: matrix: python-version: ['3.10'] From db9d9be422bfebc0fc63714542798eb87ae05aa2 Mon Sep 17 00:00:00 2001 From: zhouzaida Date: Thu, 17 Nov 2022 10:10:02 +0800 Subject: [PATCH 4/4] cancel comments --- .github/workflows/build.yml | 726 ++++++++++++++++++------------------ 1 file changed, 363 insertions(+), 363 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cf0f348408..04e630723d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,273 +27,273 @@ env: MMCV_WITH_OPS: 1 jobs: - # build_without_torch: - # runs-on: ubuntu-18.04 - # strategy: - # matrix: - # python-version: [3.7] - # steps: - # - uses: actions/checkout@v2 - # - name: Set up Python ${{ matrix.python-version }} - # uses: actions/setup-python@v2 - # with: - # python-version: ${{ matrix.python-version }} - # - name: Install system dependencies - # run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg - # - name: Build and install - # run: rm -rf .eggs && pip install -e . - # - name: Validate the installation - # run: python -c "import mmcv" - # - name: Run unittests and generate coverage report - # run: | - # pip install -r requirements/test.txt - # pytest tests/ \ - # --ignore=tests/test_runner \ - # --ignore=tests/test_device/test_ipu \ - # --ignore=tests/test_optimizer.py \ - # --ignore=tests/test_cnn \ - # --ignore=tests/test_parallel.py \ - # --ignore=tests/test_ops \ - # --ignore=tests/test_load_model_zoo.py \ - # --ignore=tests/test_utils/test_logging.py \ - # --ignore=tests/test_image/test_io.py \ - # --ignore=tests/test_utils/test_registry.py \ - # --ignore=tests/test_utils/test_parrots_jit.py \ - # --ignore=tests/test_utils/test_trace.py \ - # --ignore=tests/test_utils/test_hub.py \ - # --ignore=tests/test_device \ - # --ignore=tests/test_utils/test_torch_ops.py + build_without_torch: + runs-on: ubuntu-18.04 + strategy: + matrix: + python-version: [3.7] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install system dependencies + run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg + - name: Build and install + run: rm -rf .eggs && pip install -e . + - name: Validate the installation + run: python -c "import mmcv" + - name: Run unittests and generate coverage report + run: | + pip install -r requirements/test.txt + pytest tests/ \ + --ignore=tests/test_runner \ + --ignore=tests/test_device/test_ipu \ + --ignore=tests/test_optimizer.py \ + --ignore=tests/test_cnn \ + --ignore=tests/test_parallel.py \ + --ignore=tests/test_ops \ + --ignore=tests/test_load_model_zoo.py \ + --ignore=tests/test_utils/test_logging.py \ + --ignore=tests/test_image/test_io.py \ + --ignore=tests/test_utils/test_registry.py \ + --ignore=tests/test_utils/test_parrots_jit.py \ + --ignore=tests/test_utils/test_trace.py \ + --ignore=tests/test_utils/test_hub.py \ + --ignore=tests/test_device \ + --ignore=tests/test_utils/test_torch_ops.py - # build_without_ops: - # runs-on: ubuntu-18.04 - # env: - # MMCV_WITH_OPS: 0 - # strategy: - # matrix: - # python-version: [3.7] - # torch: [1.7.0, 1.8.0, 1.9.0] - # include: - # - torch: 1.7.0 - # torchvision: 0.8.1 - # - torch: 1.8.0 - # torchvision: 0.9.0 - # - torch: 1.9.0 - # torchvision: 0.10.0 - # steps: - # - uses: actions/checkout@v2 - # - name: Set up Python ${{ matrix.python-version }} - # uses: actions/setup-python@v2 - # with: - # python-version: ${{ matrix.python-version }} - # - name: Install system dependencies - # run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg - # - name: Install PyTorch - # run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html - # - name: Build and install - # run: rm -rf .eggs && pip install -e . - # - name: Validate the installation - # run: python -c "import mmcv" - # - name: Run unittests - # run: | - # pip install -r requirements/test.txt - # pytest tests/ --ignore=tests/test_ops + build_without_ops: + runs-on: ubuntu-18.04 + env: + MMCV_WITH_OPS: 0 + strategy: + matrix: + python-version: [3.7] + torch: [1.7.0, 1.8.0, 1.9.0] + include: + - torch: 1.7.0 + torchvision: 0.8.1 + - torch: 1.8.0 + torchvision: 0.9.0 + - torch: 1.9.0 + torchvision: 0.10.0 + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install system dependencies + run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg + - name: Install PyTorch + run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html + - name: Build and install + run: rm -rf .eggs && pip install -e . + - name: Validate the installation + run: python -c "import mmcv" + - name: Run unittests + run: | + pip install -r requirements/test.txt + pytest tests/ --ignore=tests/test_ops - # build_cpu: - # runs-on: ubuntu-18.04 - # strategy: - # matrix: - # python-version: [3.7] - # torch: [1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] - # include: - # - torch: 1.5.1 - # torchvision: 0.6.1 - # - torch: 1.6.0 - # torchvision: 0.7.0 - # - torch: 1.7.0 - # torchvision: 0.8.1 - # - torch: 1.8.0 - # torchvision: 0.9.0 - # - torch: 1.9.0 - # torchvision: 0.10.0 - # steps: - # - uses: actions/checkout@v2 - # - name: Set up Python ${{ matrix.python-version }} - # uses: actions/setup-python@v2 - # with: - # python-version: ${{ matrix.python-version }} - # - name: Install system dependencies - # run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg - # - name: Install PyTorch - # run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html - # # pstuil is an optional package to detect the number of CPU for compiling mmcv - # - name: Install psutil - # run: pip install psutil - # - name: Create sdist and untar - # run: | - # MMCV_WITH_OPS=1 python setup.py sdist - # tar zxvf dist/mmcv-full* -C /tmp - # rm -r mmcv - # - name: Build and install from sdist - # run: | - # pushd /tmp/mmcv-full* - # pip install -e . - # popd - # - name: Validate the installation - # run: python -c "import mmcv" - # - name: Run unittests and generate coverage report - # run: | - # pip install -r requirements/test.txt - # coverage run --branch --source=mmcv -m pytest tests/ - # coverage xml - # coverage report -m + build_cpu: + runs-on: ubuntu-18.04 + strategy: + matrix: + python-version: [3.7] + torch: [1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] + include: + - torch: 1.5.1 + torchvision: 0.6.1 + - torch: 1.6.0 + torchvision: 0.7.0 + - torch: 1.7.0 + torchvision: 0.8.1 + - torch: 1.8.0 + torchvision: 0.9.0 + - torch: 1.9.0 + torchvision: 0.10.0 + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install system dependencies + run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg + - name: Install PyTorch + run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html + # pstuil is an optional package to detect the number of CPU for compiling mmcv + - name: Install psutil + run: pip install psutil + - name: Create sdist and untar + run: | + MMCV_WITH_OPS=1 python setup.py sdist + tar zxvf dist/mmcv-full* -C /tmp + rm -r mmcv + - name: Build and install from sdist + run: | + pushd /tmp/mmcv-full* + pip install -e . + popd + - name: Validate the installation + run: python -c "import mmcv" + - name: Run unittests and generate coverage report + run: | + pip install -r requirements/test.txt + coverage run --branch --source=mmcv -m pytest tests/ + coverage xml + coverage report -m - # build_cu101: - # runs-on: ubuntu-18.04 - # container: - # image: pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel - # env: - # FORCE_CUDA: 1 - # MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 - # strategy: - # matrix: - # python-version: [3.7] - # torch: [1.5.1+cu101, 1.6.0+cu101, 1.7.0+cu101, 1.8.0+cu101] - # include: - # - torch: 1.5.1+cu101 - # torchvision: 0.6.1+cu101 - # - torch: 1.6.0+cu101 - # torchvision: 0.7.0+cu101 - # - torch: 1.7.0+cu101 - # torchvision: 0.8.1+cu101 - # - torch: 1.8.0+cu101 - # torchvision: 0.9.0+cu101 - # - python-version: 3.6 - # torch: 1.8.0+cu101 - # torchvision: 0.9.0+cu101 - # - python-version: 3.8 - # torch: 1.8.0+cu101 - # torchvision: 0.9.0+cu101 - # - python-version: 3.9 - # torch: 1.8.0+cu101 - # torchvision: 0.9.0+cu101 - # steps: - # - uses: actions/checkout@v2 - # - name: Set up Python ${{ matrix.python-version }} - # uses: actions/setup-python@v2 - # with: - # python-version: ${{ matrix.python-version }} - # - name: Fetch GPG keys - # run: | - # apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub - # apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub - # - name: Install python-dev - # run: apt-get update && apt-get install -y python${{matrix.python-version}}-dev - # if: ${{matrix.python-version != '3.9'}} - # - name: Install Pillow - # run: python -m pip install Pillow==6.2.2 - # if: ${{matrix.torchvision == '0.4.2'}} - # # When we use a third-party container, we need to add python -m to call - # # the user-installed pip when we use the pip command, otherwise it will - # # call the system pip - # - name: Install PyTorch - # run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html - # - name: Install system dependencies - # run: apt-get update && apt-get install -y ffmpeg libturbojpeg ninja-build - # - name: Install dependencies for compiling onnx when python=3.9 - # run: python -m pip install protobuf && apt-get -y install libprotobuf-dev protobuf-compiler cmake - # if: ${{matrix.python-version == '3.9'}} - # # pstuil is an optional package to detect the number of CPU for compiling mmcv - # - name: Install psutil - # run: python -m pip install psutil - # - name: Build and install - # run: rm -rf .eggs && python -m pip install -e . - # - name: Validate the installation - # run: python -c "import mmcv" - # - name: Run unittests and generate coverage report - # run: | - # python -m pip install -r requirements/test.txt - # coverage run --branch --source=mmcv -m pytest tests/ - # coverage xml - # coverage report -m - # # Only upload coverage report for python3.7 && pytorch1.6 - # - name: Upload coverage to Codecov - # if: ${{matrix.torch == '1.6.0+cu101' && matrix.python-version == '3.7'}} - # uses: codecov/codecov-action@v1.0.14 - # with: - # file: ./coverage.xml - # flags: unittests - # env_vars: OS,PYTHON - # name: codecov-umbrella - # fail_ci_if_error: false + build_cu101: + runs-on: ubuntu-18.04 + container: + image: pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel + env: + FORCE_CUDA: 1 + MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 + strategy: + matrix: + python-version: [3.7] + torch: [1.5.1+cu101, 1.6.0+cu101, 1.7.0+cu101, 1.8.0+cu101] + include: + - torch: 1.5.1+cu101 + torchvision: 0.6.1+cu101 + - torch: 1.6.0+cu101 + torchvision: 0.7.0+cu101 + - torch: 1.7.0+cu101 + torchvision: 0.8.1+cu101 + - torch: 1.8.0+cu101 + torchvision: 0.9.0+cu101 + - python-version: 3.6 + torch: 1.8.0+cu101 + torchvision: 0.9.0+cu101 + - python-version: 3.8 + torch: 1.8.0+cu101 + torchvision: 0.9.0+cu101 + - python-version: 3.9 + torch: 1.8.0+cu101 + torchvision: 0.9.0+cu101 + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Fetch GPG keys + run: | + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub + - name: Install python-dev + run: apt-get update && apt-get install -y python${{matrix.python-version}}-dev + if: ${{matrix.python-version != '3.9'}} + - name: Install Pillow + run: python -m pip install Pillow==6.2.2 + if: ${{matrix.torchvision == '0.4.2'}} + # When we use a third-party container, we need to add python -m to call + # the user-installed pip when we use the pip command, otherwise it will + # call the system pip + - name: Install PyTorch + run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html + - name: Install system dependencies + run: apt-get update && apt-get install -y ffmpeg libturbojpeg ninja-build + - name: Install dependencies for compiling onnx when python=3.9 + run: python -m pip install protobuf && apt-get -y install libprotobuf-dev protobuf-compiler cmake + if: ${{matrix.python-version == '3.9'}} + # pstuil is an optional package to detect the number of CPU for compiling mmcv + - name: Install psutil + run: python -m pip install psutil + - name: Build and install + run: rm -rf .eggs && python -m pip install -e . + - name: Validate the installation + run: python -c "import mmcv" + - name: Run unittests and generate coverage report + run: | + python -m pip install -r requirements/test.txt + coverage run --branch --source=mmcv -m pytest tests/ + coverage xml + coverage report -m + # Only upload coverage report for python3.7 && pytorch1.6 + - name: Upload coverage to Codecov + if: ${{matrix.torch == '1.6.0+cu101' && matrix.python-version == '3.7'}} + uses: codecov/codecov-action@v1.0.14 + with: + file: ./coverage.xml + flags: unittests + env_vars: OS,PYTHON + name: codecov-umbrella + fail_ci_if_error: false - # build_cu102: - # runs-on: ubuntu-18.04 - # container: - # image: pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel - # env: - # FORCE_CUDA: 1 - # MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 - # strategy: - # matrix: - # python-version: [3.7] - # torch: [1.9.0+cu102, 1.10.0+cu102] - # include: - # - torch: 1.9.0+cu102 - # torchvision: 0.10.0+cu102 - # - torch: 1.10.0+cu102 - # torchvision: 0.11.0+cu102 - # - python-version: '3.10' - # torch: 1.11.0+cu102 - # torchvision: 0.12.0+cu102 - # - python-version: '3.10' - # torch: 1.12.0+cu102 - # torchvision: 0.13.0+cu102 - # - python-version: 3.6 - # torch: 1.9.0+cu102 - # torchvision: 0.10.0+cu102 - # - python-version: 3.8 - # torch: 1.9.0+cu102 - # torchvision: 0.10.0+cu102 - # steps: - # - uses: actions/checkout@v2 - # - name: Set up Python ${{ matrix.python-version }} - # uses: actions/setup-python@v2 - # with: - # python-version: ${{ matrix.python-version }} - # - name: Fetch GPG keys - # run: | - # apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub - # apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub - # - name: Add PPA - # run: | - # apt-get update && apt-get install -y software-properties-common - # add-apt-repository -y ppa:deadsnakes/ppa - # - name: Install python-dev - # run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y python${{matrix.python-version}}-dev - # - name: python -m Install PyTorch - # run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html - # - name: Install system dependencies - # run: apt-get update && apt-get install -y ffmpeg libturbojpeg ninja-build - # # pstuil is an optional package to detect the number of CPU for compiling mmcv - # - name: Install psutil - # run: python -m pip install psutil - # - name: Build and install - # run: rm -rf .eggs && python -m pip install -e . - # - name: Validate the installation - # run: python -c "import mmcv" - # - name: Run unittests and generate coverage report - # run: | - # python -m pip install -r requirements/test.txt - # coverage run --branch --source=mmcv -m pytest tests/ - # coverage xml - # if: ${{matrix.python-version != '3.10'}} - # # special treatment for python3.10 because onnx and onnxruntime don't provide python3.10 pre-built packages - # - name: Run unittests and generate coverage report for python3.10 - # run: | - # python -m pip install -r requirements/test.txt - # coverage run --branch --source=mmcv -m pytest tests/ --ignore=tests/test_ops/test_onnx.py --ignore=tests/test_ops/test_tensorrt.py --ignore=tests/test_ops/test_tensorrt_preprocess.py - # coverage xml - # if: ${{matrix.python-version == '3.10'}} + build_cu102: + runs-on: ubuntu-18.04 + container: + image: pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel + env: + FORCE_CUDA: 1 + MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 + strategy: + matrix: + python-version: [3.7] + torch: [1.9.0+cu102, 1.10.0+cu102] + include: + - torch: 1.9.0+cu102 + torchvision: 0.10.0+cu102 + - torch: 1.10.0+cu102 + torchvision: 0.11.0+cu102 + - python-version: '3.10' + torch: 1.11.0+cu102 + torchvision: 0.12.0+cu102 + - python-version: '3.10' + torch: 1.12.0+cu102 + torchvision: 0.13.0+cu102 + - python-version: 3.6 + torch: 1.9.0+cu102 + torchvision: 0.10.0+cu102 + - python-version: 3.8 + torch: 1.9.0+cu102 + torchvision: 0.10.0+cu102 + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Fetch GPG keys + run: | + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub + - name: Add PPA + run: | + apt-get update && apt-get install -y software-properties-common + add-apt-repository -y ppa:deadsnakes/ppa + - name: Install python-dev + run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y python${{matrix.python-version}}-dev + - name: python -m Install PyTorch + run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html + - name: Install system dependencies + run: apt-get update && apt-get install -y ffmpeg libturbojpeg ninja-build + # pstuil is an optional package to detect the number of CPU for compiling mmcv + - name: Install psutil + run: python -m pip install psutil + - name: Build and install + run: rm -rf .eggs && python -m pip install -e . + - name: Validate the installation + run: python -c "import mmcv" + - name: Run unittests and generate coverage report + run: | + python -m pip install -r requirements/test.txt + coverage run --branch --source=mmcv -m pytest tests/ + coverage xml + if: ${{matrix.python-version != '3.10'}} + # special treatment for python3.10 because onnx and onnxruntime don't provide python3.10 pre-built packages + - name: Run unittests and generate coverage report for python3.10 + run: | + python -m pip install -r requirements/test.txt + coverage run --branch --source=mmcv -m pytest tests/ --ignore=tests/test_ops/test_onnx.py --ignore=tests/test_ops/test_tensorrt.py --ignore=tests/test_ops/test_tensorrt_preprocess.py + coverage xml + if: ${{matrix.python-version == '3.10'}} build_cu116: runs-on: ubuntu-18.04 @@ -342,105 +342,105 @@ jobs: coverage run --branch --source=mmcv -m pytest tests/ --ignore=tests/test_ops/test_onnx.py --ignore=tests/test_ops/test_tensorrt.py --ignore=tests/test_ops/test_tensorrt_preprocess.py coverage xml - # build_windows_without_ops: - # runs-on: windows-latest - # env: - # MMCV_WITH_OPS: 0 - # strategy: - # matrix: - # torch: [1.7.1, 1.8.0, 1.9.0] - # include: - # - torch: 1.7.1 - # torchvision: 0.8.2 - # - torch: 1.8.0 - # torchvision: 0.9.0 - # - torch: 1.9.0 - # torchvision: 0.10.0 - # steps: - # - uses: actions/checkout@v2 - # - name: Set up Python 3.7 - # uses: actions/setup-python@v2 - # with: - # python-version: 3.7 - # - name: Install PyTorch - # run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu --no-cache-dir -f https://download.pytorch.org/whl/torch_stable.html - # - name: Build and install - # run: pip install -e . - # - name: Validate the installation - # run: python -c "import mmcv" - # - name: Run unittests - # run: | - # pip install -r requirements/test.txt - # pytest tests/ --ignore=tests/test_ops --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py --ignore tests/test_image/test_io.py + build_windows_without_ops: + runs-on: windows-latest + env: + MMCV_WITH_OPS: 0 + strategy: + matrix: + torch: [1.7.1, 1.8.0, 1.9.0] + include: + - torch: 1.7.1 + torchvision: 0.8.2 + - torch: 1.8.0 + torchvision: 0.9.0 + - torch: 1.9.0 + torchvision: 0.10.0 + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.7 + uses: actions/setup-python@v2 + with: + python-version: 3.7 + - name: Install PyTorch + run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu --no-cache-dir -f https://download.pytorch.org/whl/torch_stable.html + - name: Build and install + run: pip install -e . + - name: Validate the installation + run: python -c "import mmcv" + - name: Run unittests + run: | + pip install -r requirements/test.txt + pytest tests/ --ignore=tests/test_ops --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py --ignore tests/test_image/test_io.py - # build_windows: - # runs-on: windows-latest - # strategy: - # matrix: - # torch: [1.7.1, 1.8.0, 1.9.0] - # include: - # - torch: 1.7.1 - # torchvision: 0.8.2 - # - torch: 1.8.0 - # torchvision: 0.9.0 - # - torch: 1.9.0 - # torchvision: 0.10.0 - # steps: - # - uses: actions/checkout@v2 - # - name: Set up Python 3.7 - # uses: actions/setup-python@v2 - # with: - # python-version: 3.7 - # - name: Install PyTorch - # run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu --no-cache-dir -f https://download.pytorch.org/whl/torch_stable.html - # - name: Build and install - # run: pip install -e . - # - name: Validate the installation - # run: python -c "import mmcv" - # - name: Run unittests - # run: | - # pip install -r requirements/test.txt - # pytest tests/ --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py --ignore tests/test_image/test_io.py + build_windows: + runs-on: windows-latest + strategy: + matrix: + torch: [1.7.1, 1.8.0, 1.9.0] + include: + - torch: 1.7.1 + torchvision: 0.8.2 + - torch: 1.8.0 + torchvision: 0.9.0 + - torch: 1.9.0 + torchvision: 0.10.0 + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.7 + uses: actions/setup-python@v2 + with: + python-version: 3.7 + - name: Install PyTorch + run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu --no-cache-dir -f https://download.pytorch.org/whl/torch_stable.html + - name: Build and install + run: pip install -e . + - name: Validate the installation + run: python -c "import mmcv" + - name: Run unittests + run: | + pip install -r requirements/test.txt + pytest tests/ --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py --ignore tests/test_image/test_io.py - # build_macos: - # runs-on: macos-latest - # strategy: - # matrix: - # torch: [1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] - # include: - # - torch: 1.5.1 - # torchvision: 0.6.1 - # - torch: 1.6.0 - # torchvision: 0.7.0 - # - torch: 1.7.0 - # torchvision: 0.8.1 - # - torch: 1.8.0 - # torchvision: 0.9.0 - # - torch: 1.9.0 - # torchvision: 0.10.0 - # steps: - # - uses: actions/checkout@v2 - # - name: Set up Python 3.7 - # uses: actions/setup-python@v2 - # with: - # python-version: 3.7 - # - name: Install system dependencies - # run: brew install ffmpeg jpeg-turbo - # - name: Install utils - # run: pip install psutil - # - name: Install Pillow - # run: pip install Pillow==6.2.2 - # if: ${{matrix.torchvision == '0.4.2'}} - # - name: Install PyTorch - # run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} --no-cache-dir - # - name: Build and install - # run: | - # rm -rf .eggs - # CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' pip install -e . - # - name: Validate the installation - # run: python -c "import mmcv" - # - name: Run unittests - # run: | - # pip install -r requirements/test.txt - # # The timing on macos VMs is not precise, so we skip the progressbar tests - # pytest tests/ --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py + build_macos: + runs-on: macos-latest + strategy: + matrix: + torch: [1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] + include: + - torch: 1.5.1 + torchvision: 0.6.1 + - torch: 1.6.0 + torchvision: 0.7.0 + - torch: 1.7.0 + torchvision: 0.8.1 + - torch: 1.8.0 + torchvision: 0.9.0 + - torch: 1.9.0 + torchvision: 0.10.0 + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.7 + uses: actions/setup-python@v2 + with: + python-version: 3.7 + - name: Install system dependencies + run: brew install ffmpeg jpeg-turbo + - name: Install utils + run: pip install psutil + - name: Install Pillow + run: pip install Pillow==6.2.2 + if: ${{matrix.torchvision == '0.4.2'}} + - name: Install PyTorch + run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} --no-cache-dir + - name: Build and install + run: | + rm -rf .eggs + CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' pip install -e . + - name: Validate the installation + run: python -c "import mmcv" + - name: Run unittests + run: | + pip install -r requirements/test.txt + # The timing on macos VMs is not precise, so we skip the progressbar tests + pytest tests/ --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py