Transfer to cpu only when torch.Tensor arguments in onnx export #6266
Workflow file for this run
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: | |
- ".github/scripts/**" | |
- "demo/**" | |
- "docker/**" | |
- "tools/**" | |
pull_request: | |
paths-ignore: | |
- ".github/scripts/**" | |
- "demo/**" | |
- "docker/**" | |
- "tools/**" | |
- "docs/**" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build_cpu_model_convert: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
torch: [1.9.0] | |
include: | |
- torch: 1.9.0 | |
torchvision: 0.10.0 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install PyTorch | |
run: | | |
python -m pip install --upgrade pip | |
python -V | |
python -m pip show pip | |
python -m pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html | |
- name: Install unittest dependencies | |
run: | | |
python -m pip install openmim | |
python -m pip install -r requirements.txt | |
python -m pip install -r requirements/backends.txt | |
python -m mim install "mmcv==2.0.1" | |
python -m mim install -r requirements/codebases.txt | |
python -m pip install clip numba transformers numpy==1.23 albumentations | |
python -m pip list | |
- name: Install mmyolo | |
run: | | |
git clone -b dev --depth 1 https://github.com/open-mmlab/mmyolo.git /home/runner/work/mmyolo | |
python -m pip install -v -e /home/runner/work/mmyolo | |
- name: Install mmpose | |
run: | | |
git clone --depth 1 https://github.com/open-mmlab/mmpose.git /home/runner/work/mmpose | |
python -m pip install -v -e /home/runner/work/mmpose | |
- name: Build and install | |
run: | | |
rm -rf .eggs && python -m pip install -e . | |
python tools/check_env.py | |
- name: Run python unittests and generate coverage report | |
run: | | |
coverage run --branch --source mmdeploy -m pytest -rsE tests | |
coverage xml | |
coverage report -m | |
- name: Run mmyolo deploy unittests | |
id: badge_status | |
run: | | |
python -m pip install xdoctest | |
cd /home/runner/work/mmyolo | |
pytest tests/test_deploy | |
- name: create badge | |
if: always() | |
uses: RubbaBoy/BYOB@v1.2.1 | |
with: | |
NAME: build_cpu_model_convert | |
LABEL: 'build' | |
STATUS: ${{ steps.badge_status.conclusion == 'success' && 'passing' || 'failing' }} | |
COLOR: ${{ steps.badge_status.conclusion == 'success' && 'green' || 'red' }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
build_cpu_sdk: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: update | |
run: sudo apt update | |
- name: gcc-multilib | |
run: | | |
sudo apt install gcc-multilib g++-multilib wget libprotobuf-dev protobuf-compiler | |
sudo apt update | |
sudo apt install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libxrender-dev libc++1-9 libc++abi1-9 | |
sudo apt install libopencv-dev lcov wget | |
- name: Build and run SDK unit test without backend | |
id: badge_status | |
run: | | |
mkdir -p build && pushd build | |
cmake .. -DCMAKE_CXX_COMPILER=g++ -DMMDEPLOY_CODEBASES=all -DMMDEPLOY_BUILD_SDK=ON -DMMDEPLOY_BUILD_SDK_PYTHON_API=OFF -DMMDEPLOY_TARGET_DEVICES=cpu -DMMDEPLOY_COVERAGE=ON -DMMDEPLOY_BUILD_TEST=ON | |
make -j2 | |
mkdir -p mmdeploy_test_resources/transform | |
cp ../tests/data/tiger.jpeg mmdeploy_test_resources/transform/ | |
./bin/mmdeploy_tests | |
lcov --capture --directory . --output-file coverage.info | |
ls -lah coverage.info | |
cp coverage.info ../ | |
- name: create badge | |
if: always() | |
uses: RubbaBoy/BYOB@v1.2.1 | |
with: | |
NAME: build_cpu_sdk | |
LABEL: 'build' | |
STATUS: ${{ steps.badge_status.conclusion == 'success' && 'passing' || 'failing' }} | |
COLOR: ${{ steps.badge_status.conclusion == 'success' && 'green' || 'red' }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
cross_build_aarch64: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: update | |
run: sudo apt update | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.8 | |
- name: gcc-multilib | |
id: badge_status | |
run: | | |
sh -ex tools/scripts/ubuntu_cross_build_aarch64.sh | |
- name: create badge | |
if: always() | |
uses: RubbaBoy/BYOB@v1.2.1 | |
with: | |
NAME: cross_build_aarch64 | |
LABEL: 'build' | |
STATUS: ${{ steps.badge_status.conclusion == 'success' && 'passing' || 'failing' }} | |
COLOR: ${{ steps.badge_status.conclusion == 'success' && 'green' || 'red' }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
build_cuda117: | |
runs-on: ubuntu-20.04 | |
container: | |
image: pytorch/pytorch:2.0.0-cuda11.7-cudnn8-devel | |
env: | |
FORCE_CUDA: 1 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install system dependencies | |
run: | | |
apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libxrender-dev | |
apt-get clean | |
rm -rf /var/lib/apt/lists/* | |
- name: Install PyTorch | |
run: | | |
python -V | |
python -m pip show torch torchvision | |
python -m pip install --no-cache-dir --upgrade pip | |
- name: Check disk space | |
continue-on-error: true | |
run: | | |
df -h | |
rm -rf /__t/go | |
rm -rf /__t/node | |
rm -rf /__t/Ruby | |
rm -rf /__t/CodeQL | |
cat /proc/cpuinfo | grep -ic proc | |
free | |
df -h | |
- name: Install dependencies | |
run: | | |
python -V | |
python -m pip install --no-cache-dir openmim | |
python -m pip install --no-cache-dir -r requirements.txt | |
python -m pip install --no-cache-dir -r requirements/backends.txt | |
python -m mim install "mmcv==2.0.1" | |
python -m pip install --no-cache-dir -r requirements/codebases.txt | |
python -m pip install --no-cache-dir -U pycuda numpy==1.23 clip numba transformers albumentations | |
python -m pip list | |
- name: Build and install | |
run: | | |
rm -rf .eggs && python -m pip install -e . | |
python tools/check_env.py | |
- name: Run unittests and generate coverage report | |
run: | | |
coverage run --branch --source mmdeploy -m pytest -rsE tests | |
coverage xml | |
coverage report -m | |
- name: Upload coverage to Codecov | |
id: badge_status | |
uses: codecov/codecov-action@v2 | |
with: | |
file: ./coverage.xml,./coverage.info | |
flags: unittests | |
env_vars: OS,PYTHON,CPLUS | |
name: codecov-umbrella | |
fail_ci_if_error: false | |
- name: create badge | |
if: always() | |
uses: RubbaBoy/BYOB@v1.2.1 | |
with: | |
NAME: build_cuda117 | |
LABEL: 'build' | |
STATUS: ${{ steps.badge_status.conclusion == 'success' && 'passing' || 'failing' }} | |
COLOR: ${{ steps.badge_status.conclusion == 'success' && 'green' || 'red' }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
build_cuda113: | |
runs-on: ubuntu-20.04 | |
container: | |
image: pytorch/pytorch:1.12.0-cuda11.3-cudnn8-devel | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install system dependencies | |
run: | | |
apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libxrender-dev | |
apt-get clean | |
rm -rf /var/lib/apt/lists/* | |
- name: Install PyTorch | |
run: | | |
python -V | |
python -m pip show torch torchvision | |
python -m pip install --no-cache-dir --upgrade pip | |
- name: Check disk space | |
continue-on-error: true | |
run: | | |
df -h | |
rm -rf /__t/go | |
rm -rf /__t/node | |
rm -rf /__t/Ruby | |
rm -rf /__t/CodeQL | |
cat /proc/cpuinfo | grep -ic proc | |
free | |
df -h | |
- name: Install dependencies | |
run: | | |
python -V | |
python -m pip install --no-cache-dir openmim | |
python -m pip install --no-cache-dir -r requirements.txt | |
python -m pip install --no-cache-dir -r requirements/backends.txt | |
python -m mim install --no-cache-dir "mmcv==2.0.1" | |
python -m pip install --no-cache-dir -r requirements/codebases.txt | |
python -m pip install --no-cache-dir -U pycuda numpy clip numba transformers albumentations | |
python -m pip list | |
- name: Build and install | |
run: | | |
rm -rf .eggs && python -m pip install -e . | |
python tools/check_env.py | |
- name: Run unittests and generate coverage report | |
run: | | |
coverage run --branch --source mmdeploy -m pytest -rsE tests | |
coverage xml | |
coverage report -m | |
- name: create badge | |
if: always() | |
uses: RubbaBoy/BYOB@v1.2.1 | |
with: | |
NAME: build_cuda113 | |
LABEL: 'build' | |
STATUS: ${{ steps.badge_status.conclusion == 'success' && 'passing' || 'failing' }} | |
COLOR: ${{ steps.badge_status.conclusion == 'success' && 'green' || 'red' }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
build_cuda118_linux: | |
needs: [build_cpu_model_convert, build_cpu_sdk, build_cuda117] | |
runs-on: [self-hosted, linux-3090] | |
container: | |
image: openmmlab/mmdeploy:ubuntu20.04-cuda11.8 | |
options: "--gpus=all --ipc=host" | |
volumes: | |
- /data2/pip-cache:/root/.cache/pip | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Install dependencies | |
run: | | |
apt update && apt install unzip | |
python3 -V | |
python3 -m pip install opencv-python==4.5.4.60 opencv-python-headless==4.5.4.60 opencv-contrib-python==4.5.4.60 | |
python3 -m pip install openmim numpy pycuda clip transformers | |
python3 -m pip install -r requirements.txt | |
python3 -m mim install $(cat requirements/codebases.txt | grep mmpretrain) | |
python3 -m pip list | |
- name: Build SDK | |
run: | | |
export Torch_DIR=$(python3 -c "import torch;print(torch.utils.cmake_prefix_path + '/Torch')") | |
bash .github/scripts/linux/build.sh "cpu;cuda" "ort;trt;ncnn;torchscript" \ | |
-Dpplcv_DIR=${pplcv_DIR} \ | |
-DTENSORRT_DIR=${TENSORRT_DIR} \ | |
-DONNXRUNTIME_DIR=${ONNXRUNTIME_DIR} \ | |
-Dncnn_DIR=${ncnn_DIR} \ | |
-DTorch_DIR=${Torch_DIR} | |
ls build/lib | |
- name: Install converter | |
run: | | |
rm -rf .eggs && python3 -m pip install -e . | |
export LD_LIBRARY_PATH="/root/workspace/mmdeploy/build/lib:${LD_LIBRARY_PATH}" | |
python3 tools/check_env.py | |
- name: Test TensorRT pipeline | |
id: badge_status | |
run: | | |
export LD_LIBRARY_PATH="/root/workspace/mmdeploy/build/lib:${LD_LIBRARY_PATH}" | |
export LD_LIBRARY_PATH="/root/workspace/mmdeploy/mmdeploy/lib:${LD_LIBRARY_PATH}" | |
bash .github/scripts/linux/test_full_pipeline.sh trt cuda | |
- name: create badge | |
if: always() | |
uses: RubbaBoy/BYOB@v1.2.1 | |
with: | |
NAME: build_cuda118_linux | |
LABEL: 'build' | |
STATUS: ${{ steps.badge_status.conclusion == 'success' && 'passing' || 'failing' }} | |
COLOR: ${{ steps.badge_status.conclusion == 'success' && 'green' || 'red' }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
build_cuda118_windows: | |
needs: [build_cpu_model_convert, build_cpu_sdk, build_cuda117] | |
runs-on: [self-hosted, win10-3080] | |
env: | |
BASE_ENV: mmdeploy-cuda11.8-torch2.0-py38 | |
defaults: | |
run: | |
shell: powershell | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Setup Python Environment | |
run: | | |
echo "============================== Info ==============================" | |
echo "env:path= $env:path" | |
echo "============================== Info ==============================" | |
conda info | |
conda info -e | |
$env:TEMP_ENV = "$pwd/../temp_envs/$env:GITHUB_RUN_ID" | |
New-Item -Path "$env:TEMP_ENV" -ItemType Directory -Force | |
echo "TEMP_ENV=$env:TEMP_ENV" >> $env:GITHUB_ENV | |
conda create -p $env:TEMP_ENV --clone $env:BASE_ENV -y | |
conda activate $env:TEMP_ENV | |
python -V | |
python -m pip install openmim | |
python -m pip install -r requirements.txt | |
python -m pip install -r requirements/backends.txt | |
python -m mim install "mmpretrain>=1.0.0rc7" | |
python -m pip list | |
- name: Build mmdeploy | |
run: | | |
conda activate $env:TEMP_ENV | |
python -V | |
mkdir build | |
cd build | |
cmake .. -A x64 -T v142,cuda=$env:CUDA_PATH ` | |
-DMMDEPLOY_BUILD_TEST=ON ` | |
-DMMDEPLOY_BUILD_SDK_CSHARP_API=ON ` | |
-DMMDEPLOY_BUILD_SDK_PYTHON_API=ON ` | |
-DMMDEPLOY_BUILD_SDK=ON ` | |
-DMMDEPLOY_TARGET_DEVICES='cuda' ` | |
-DMMDEPLOY_TARGET_BACKENDS='ort;trt' ` | |
-DMMDEPLOY_CODEBASES='all' ` | |
-Dpplcv_DIR="$env:pplcv_DIR" ` | |
-DOpenCV_DIR="$env:OpenCV_DIR" ` | |
-DTENSORRT_DIR="$env:TENSORRT_DIR" ` | |
-DONNXRUNTIME_DIR="$env:ONNXRUNTIME_GPU_DIR" ` | |
-DMMDEPLOY_BUILD_EXAMPLES=ON ` | |
-DCUDNN_DIR="$env:CUDNN_DIR" | |
cmake --build . --config Release -- /m | |
cmake --install . --config Release | |
ls $pwd\bin\Release | |
- name: Install mmdeploy converter | |
run: | | |
conda activate $env:TEMP_ENV | |
python -m pip install -e . | |
python .\tools\check_env.py | |
- name: Test trt full pipeline | |
run: | | |
conda activate $env:TEMP_ENV | |
$env:path = "$pwd\build\bin\Release;" + $env:path | |
$env:path = "$env:ONNXRUNTIME_GPU_DIR\lib;" + $env:path | |
echo $env:path | |
.github\scripts\windows\test_full_pipeline.ps1 -Backend trt -Device cuda | |
- name: Clear temp env | |
if: always() | |
run: | | |
conda env remove --prefix "$env:TEMP_ENV" | |
badge_build_cuda118_windows: | |
needs: build_cuda118_windows | |
if: always() | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: create badge | |
uses: RubbaBoy/BYOB@v1.2.1 | |
with: | |
NAME: build_cuda118_windows | |
LABEL: 'build' | |
STATUS: ${{ needs.build_cuda113_windows.result == 'success' && 'passing' || needs.build_cuda113_windows.result }} | |
COLOR: ${{ needs.build_cuda113_windows.result == 'success' && 'green' || 'red' }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |