Support mmtrack with NPU backend. (#876) #1858
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
push: | |
paths-ignore: | |
- 'README.md' | |
- 'README_zh-CN.md' | |
- 'docs/**' | |
- 'docs_zh-CN/**' | |
- 'examples/**' | |
- '.dev_scripts/**' | |
pull_request: | |
paths-ignore: | |
- 'README.md' | |
- 'README_zh-CN.md' | |
- 'docs/**' | |
- 'docs_zh-CN/**' | |
- 'examples/**' | |
- '.dev_scripts/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build_cpu: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [3.7] | |
torch: [1.5.1, 1.7.1] | |
include: | |
- torch: 1.5.1 | |
torch_version: torch1.5 | |
torchvision: 0.6.1 | |
- torch: 1.7.1 | |
torch_version: torch1.7 | |
torchvision: 0.8.2 | |
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 PyTorch | |
run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html | |
- name: Install mmtrack dependencies | |
run: | | |
# Some dependencies may be required for the build of pycocotools | |
export CFLAGS=`python -c 'import sysconfig;print("-I"+sysconfig.get_paths()["include"])'` | |
pip install git+https://github.com/votchallenge/toolkit.git | |
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/${{matrix.torch_version}}/index.html | |
pip install mmdet | |
pip install -r requirements.txt | |
pip install git+https://github.com/JonathonLuiten/TrackEval.git | |
pip install git+https://github.com/lvis-dataset/lvis-api.git | |
pip install git+https://github.com/TAO-Dataset/tao.git | |
- name: Build and install | |
run: rm -rf .eggs && pip install -e . | |
- name: Run unittests and generate coverage report | |
run: | | |
coverage run --branch --source mmtrack -m pytest tests/ | |
coverage xml | |
coverage report -m | |
build_cuda101: | |
runs-on: ubuntu-18.04 | |
container: | |
image: pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel | |
strategy: | |
matrix: | |
python-version: [3.7] | |
torch: [1.5.1+cu101, 1.7.1+cu101] | |
include: | |
- torch: 1.5.1+cu101 | |
torch_version: torch1.5 | |
torchvision: 0.6.1+cu101 | |
- torch: 1.7.1+cu101 | |
torch_version: torch1.7 | |
torchvision: 0.8.2+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 | |
# Add ppa source repo for python3.9. | |
- name: Add python3.9 source | |
run: | | |
apt-get update && apt-get install -y software-properties-common | |
add-apt-repository -y ppa:deadsnakes/ppa | |
if: ${{matrix.python-version == '3.9'}} | |
# Install python-dev for some packages which require libpython3.Xm. | |
# Github's setup-python cannot install python3.9-dev, so we have to use apt install. | |
# Set DEBIAN_FRONTEND=noninteractive to avoid some interactions. | |
- name: Install python-dev | |
run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python${{matrix.python-version}}-dev | |
- name: Install system dependencies | |
run: | | |
apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 | |
apt-get clean | |
rm -rf /var/lib/apt/lists/* | |
- 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 mmtrack dependencies | |
run: | | |
# Some dependencies may be required for the build of pycocotools | |
export CFLAGS=`python -c 'import sysconfig;print("-I"+sysconfig.get_paths()["include"])'` | |
python -m pip install git+https://github.com/votchallenge/toolkit.git | |
python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/${{matrix.torch_version}}/index.html | |
python -m pip install mmdet | |
python -m pip install -r requirements.txt | |
python -m pip install git+https://github.com/JonathonLuiten/TrackEval.git | |
python -m pip install git+https://github.com/lvis-dataset/lvis-api.git | |
python -m pip install git+https://github.com/TAO-Dataset/tao.git | |
- name: Build and install | |
run: | | |
rm -rf .eggs | |
python setup.py check -m -s | |
TORCH_CUDA_ARCH_LIST=7.0 pip install . | |
- name: Run unittests and generate coverage report | |
run: | | |
coverage run --branch --source mmtrack -m pytest tests/ | |
coverage xml | |
coverage report -m | |
- name: Upload coverage to Codecov | |
uses: codecov/[email protected] | |
with: | |
file: ./coverage.xml | |
flags: unittests | |
env_vars: OS,PYTHON | |
name: codecov-umbrella | |
fail_ci_if_error: false | |
build_cuda102: | |
runs-on: ubuntu-18.04 | |
container: | |
image: pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel | |
strategy: | |
matrix: | |
python-version: [3.6, 3.7, 3.8, 3.9] | |
torch: [1.9.0+cu102] | |
include: | |
- torch: 1.9.0+cu102 | |
torch_version: torch1.9 | |
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 | |
# Add ppa source repo for python3.9. | |
- name: Add python3.9 source | |
run: | | |
apt-get update && apt-get install -y software-properties-common | |
add-apt-repository -y ppa:deadsnakes/ppa | |
if: ${{matrix.python-version == '3.9'}} | |
# Install python-dev for some packages which require libpython3.Xm. | |
# Github's setup-python cannot install python3.9-dev, so we have to use apt install. | |
# Set DEBIAN_FRONTEND=noninteractive to avoid some interactions. | |
- name: Install python-dev | |
run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python${{matrix.python-version}}-dev | |
- name: Install system dependencies | |
run: | | |
apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 | |
apt-get clean | |
rm -rf /var/lib/apt/lists/* | |
- 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 mmtrack dependencies | |
run: | | |
# Some dependencies may be required for the build of pycocotools | |
export CFLAGS=`python -c 'import sysconfig;print("-I"+sysconfig.get_paths()["include"])'` | |
python -m pip install git+https://github.com/votchallenge/toolkit.git | |
python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/${{matrix.torch_version}}/index.html | |
python -m pip install mmdet | |
python -m pip install -r requirements.txt | |
python -m pip install git+https://github.com/JonathonLuiten/TrackEval.git | |
python -m pip install git+https://github.com/lvis-dataset/lvis-api.git | |
python -m pip install git+https://github.com/TAO-Dataset/tao.git | |
- name: Build and install | |
run: | | |
rm -rf .eggs | |
python setup.py check -m -s | |
TORCH_CUDA_ARCH_LIST=7.0 pip install . | |
- name: Run unittests and generate coverage report | |
run: | | |
coverage run --branch --source mmtrack -m pytest tests/ | |
coverage xml | |
coverage report -m | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v2 | |
with: | |
files: ./coverage.xml | |
flags: unittests | |
env_vars: OS,PYTHON | |
name: codecov-umbrella | |
fail_ci_if_error: false | |
test_windows: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-2022] | |
python: [3.8] | |
platform: [cpu, cu111] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Upgrade pip | |
run: python -m pip install pip --upgrade --user | |
- name: Install PyTorch | |
# As a complement to Linux CI, we test on PyTorch LTS version | |
run: python -m pip install torch==1.8.2+${{ matrix.platform }} torchvision==0.9.2+${{ matrix.platform }} -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html | |
- name: Install votchallenge toolkit | |
run: python -m pip install git+https://github.com/votchallenge/toolkit.git | |
- name: Install MMCV | |
run: | | |
python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.8/index.html --only-binary mmcv-full | |
- name: Install mmdet | |
run: | | |
python -m pip install mmdet | |
- name: Install unittest dependencies | |
run: | | |
python -m pip install -r requirements/tests.txt -r requirements/runtime.txt | |
python -m pip install git+https://github.com/JonathonLuiten/TrackEval.git | |
python -m pip install git+https://github.com/lvis-dataset/lvis-api.git | |
python -m pip install git+https://github.com/TAO-Dataset/tao.git | |
- name: Build and install | |
run: python -m pip install -e . | |
- name: Run unittests | |
run: | | |
coverage run --branch --source mmtrack -m pytest tests/ | |
- name: Generate coverage report | |
run: | | |
coverage xml | |
coverage report -m |