Spaces:
Running
on
L40S
Running
on
L40S
version: 2.1 | |
jobs: | |
lint: | |
docker: | |
- image: cimg/python:3.7.4 | |
steps: | |
- checkout | |
- run: | |
name: Install pre-commit hook | |
command: | | |
pip install pre-commit | |
pre-commit install | |
- run: | |
name: Linting | |
command: pre-commit run --all-files | |
build_cpu: | |
parameters: | |
# The python version must match available image tags in | |
# https://circleci.com/developer/images/image/cimg/python | |
python: | |
type: string | |
default: "3.7.0" | |
torch: | |
type: string | |
torchvision: | |
type: string | |
machine: | |
image: ubuntu-2004:202010-01 | |
resource_class: large | |
steps: | |
- checkout | |
- run: | |
name: Install system dependencies | |
command: | | |
sudo apt-get update | |
sudo apt-get install -y ffmpeg libturbojpeg ninja-build | |
ffmpeg -version | |
- run: | |
# https://github.com/pytorch/vision/issues/2921 | |
name: Install dependency of torchvision when using pyenv | |
command: sudo apt-get install -y liblzma-dev | |
- run: | |
# python3.7 should be re-installed due to the issue https://github.com/pytorch/vision/issues/2921 | |
name: Select Python | |
command: | | |
pyenv uninstall -f << parameters.python >> | |
pyenv install << parameters.python >> | |
pyenv global << parameters.python >> | |
- run: | |
name: Upgrade pip | |
command: | | |
python -m pip install pip --upgrade | |
- run: | |
name: Install PyTorch | |
command: python -m pip install torch==<< parameters.torch >>+cpu torchvision==<< parameters.torchvision >>+cpu -f https://download.pytorch.org/whl/torch_stable.html | |
- run: | |
name: Install psutil | |
command: python -m pip install psutil | |
- run: | |
name: Build and install | |
command: | | |
rm -rf .eggs | |
python setup.py check -m -s | |
python -m pip install -e . | |
no_output_timeout: 20m | |
environment: | |
MMCV_WITH_OPS: 1 | |
- run: | |
name: Install dependencies of unit test | |
command: | | |
python -m pip install -r requirements/test.txt | |
- run: | |
name: Run unittests and generate coverage report | |
command: | | |
python -m coverage run --branch --source mmcv -m pytest tests/ | |
python -m coverage xml | |
python -m coverage report -m | |
build_cu102: | |
machine: | |
image: ubuntu-1604-cuda-10.1:201909-23 # the actual version of cuda is 10.2 | |
resource_class: gpu.nvidia.small | |
steps: | |
- checkout | |
- run: | |
name: Set CUDA environment | |
command: | | |
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> $BASH_ENV | |
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> $BASH_ENV | |
echo 'export CUDA_HOME=/usr/local/cuda' >> $BASH_ENV | |
source $BASH_ENV | |
nvidia-smi | |
nvcc --version | |
gcc --version | |
- run: | |
name: Install system dependencies | |
command: | | |
sudo apt-get update | |
sudo apt-get install -y libturbojpeg ninja-build | |
# the default version of ffmpeg is 2.8.7, which should be upgraded to 4+ | |
sudo add-apt-repository -y ppa:jonathonf/ffmpeg-4 | |
sudo apt-get update | |
sudo apt-get install -y ffmpeg | |
ffmpeg -version | |
sudo add-apt-repository --remove ppa:jonathonf/ffmpeg-4 -y | |
- run: | |
# https://github.com/pytorch/vision/issues/2921 | |
name: Install dependency of torchvision when using pyenv | |
command: sudo apt-get install -y liblzma-dev | |
- run: | |
# python3.7 should be re-installed due to the issue https://github.com/pytorch/vision/issues/2921 | |
name: Select python3.7 | |
command: | | |
pyenv uninstall -f 3.7.0 | |
pyenv install 3.7.0 | |
pyenv global 3.7.0 | |
- run: | |
name: Upgrade pip | |
command: | | |
python -m pip install pip --upgrade | |
- run: | |
name: Install PyTorch | |
command: python -m pip install torch==1.8.1+cu102 torchvision==0.9.1+cu102 -f https://download.pytorch.org/whl/torch_stable.html | |
- run: | |
name: Install psutil | |
command: python -m pip install psutil | |
- run: | |
name: Download onnxruntime library and install onnxruntime | |
command: | | |
wget https://github.com/microsoft/onnxruntime/releases/download/v1.8.1/onnxruntime-linux-x64-1.8.1.tgz | |
tar -zxvf onnxruntime-linux-x64-1.8.1.tgz | |
echo 'export ONNXRUNTIME_DIR=$(pwd)/onnxruntime-linux-x64-1.8.1' >> $BASH_ENV | |
echo 'export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$LD_LIBRARY_PATH' >> $BASH_ENV | |
source $BASH_ENV | |
python -m pip install onnxruntime==1.8.1 | |
- run: | |
name: Build and install | |
command: | | |
rm -rf .eggs | |
python setup.py check -m -s | |
python -m pip install -e . | |
environment: | |
MMCV_WITH_OPS: 1 | |
MMCV_WITH_ORT: 1 | |
- run: | |
name: Install dependencies for unit test | |
command: | | |
python -m pip install -r requirements/test.txt | |
- run: | |
name: Run unittests and generate coverage report | |
command: | | |
python -m coverage run --branch --source mmcv -m pytest tests/ | |
python -m coverage xml | |
python -m coverage report -m | |
workflows: | |
unit_tests: | |
jobs: | |
- lint | |
- build_cpu: | |
name: build_py3.8_pt1.9_cpu | |
torch: 1.9.0 | |
torchvision: 0.10.0 | |
python: "3.8.0" | |
requires: | |
- lint | |
- hold: | |
type: approval # <<< This key-value pair will set your workflow to a status of "On Hold" | |
requires: | |
- build_py3.8_pt1.9_cpu | |
- build_cu102: | |
requires: | |
- hold | |