参考官方文档:Linux-x86_64 下构建方式 — mmdeploy 1.2.0 文档
基础环境版本:
torch:1.12.1
cuda:11.3
cmake:3.16.3
g++:9.4.0
pycuda:2022.2.2
1.安装cmkae>=3.14.0
wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-linux-x86_64.tar.gz
- tar -xzvf cmake-3.20.0-linux-x86_64.tar.gz
sudo ln -sf $(pwd)/cmake-3.20.0-linux-x86_64/bin/* /usr/bin/
2.安装g++ ,gcc
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-7 sudo apt-get install g++-7
3.安装mmcv
#所有export操作通过gedit ~/.bashrc ,在文本中添加,pwd为当前路径(获取当前路径后pwd改为获取的路径)
- export cu_version=cu113 # cuda 11.3对应113,版本根据自己cuda版本选择
- export torch_version=torch1.21 #torch版本同理
- pip install -U openmim
- mim install mmengine
- mim install "mmcv>=2.0.0rc2"
4.安装open-cv>=3.0
sudo apt-get install libopencv-dev
#ubuntu>=18.04,若小于18.04参考OpenCV: Installation in Linu
5.安装pplcv #用到cuda需要安装
#注直接下载zip解压进行如下操作可能会报错,git clone测试通过
- git clone https://github.com/openppl-public/ppl.cv.git
- cd ppl.cv
- export PPLCV_DIR=$(pwd)
- git checkout tags/v0.7.0 -b v0.7.0
- ./build.sh cuda
6.安装onnxruntime>=1.8.1
- pip install onnxruntime==1.8.1
- 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
- cd onnxruntime-linux-x64-1.8.1
- export ONNXRUNTIME_DIR=$(pwd)
- export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$LD_LIBRARY_PATH
7.TensorRT安装
#以8.2.3.0为例
- cd /the/path/of/tensorrt/tar/gz/file
- tar -zxvf TensorRT-8.2.3.0.Linux.x86_64-gnu.cuda-11.4.cudnn8.2.tar.gz
#选择cp37,cp38,cp39对应python版本
- pip install TensorRT-8.2.3.0/python/tensorrt-8.2.3.0-cp38-none-linux_x86_64.whl
- export TENSORRT_DIR=$(pwd)/TensorRT-8.2.3.0
- export LD_LIBRARY_PATH=$TENSORRT_DIR/lib:$LD_LIBRARY_PATH
- pip install pycuda
8.cuDNN
#以cudnn11.3为例
- cd /the/path/of/cudnn/tgz/file
- tar -zxvf cudnn-11.3-linux-x64-v8.2.1.32.tgz
- export CUDNN_DIR=$(pwd)/cuda
- export LD_LIBRARY_PATH=$CUDNN_DIR/lib64:$LD_LIBRARY_PATH
- source ~/.bashrc
9.下载编译MMdeploy
- git clone -b main https://github.com/open-mmlab/mmdeploy.git MMDeploy
- cd MMDeploy
#不执行此步骤会编译报错
- git submodule update --init --recursive
- export MMDEPLOY_DIR=$(pwd)
mkdir -p build && cd build
#根据需求编译,如下指令为tensorrt与onnx,需更改-Dpplcv_DIR为自己路径
- cmake .. -DCMAKE_CXX_COMPILER=g++-7 -DMMDEPLOY_BUILD_SDK=ON -DMMDEPLOY_BUILD_EXAMPLES=ON -DMMDEPLOY_BUILD_SDK_PYTHON_API=ON -DMMDEPLOY_TARGET_DEVICES="cuda;cpu" -DMMDEPLOY_TARGET_BACKENDS="ort;trt" -Dpplcv_DIR=/home/gongsheng/motan/ppl.cv/cuda-build/install/lib/cmake/ppl -DTENSORRT_DIR=${TENSORRT_DIR} -DCUDNN_DIR=${CUDNN_DIR} -DONNXRUNTIME_DIR=${ONNXRUNTIME_DIR} -DMMDEPLOY_CODEBASES=all
- make -j$(nproc) && make install
- cd path-to-mmdeploy
- pip install -v -e .
pip list查看mmdeploy是否安装成功