日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

TensorRT之mmdeploy使用

作者:Clark_小花貓 更新時間: 2022-07-21 編程語言

服務器配置

GPU:2080Ti
CUDA版本:cuda:11.3
driver version:450.57

1、部署環境配置:

(1)拉取鏡像并進入

docker pull adenialzz/mmdeploy

docker run --gpus all --name [鏡像名稱] -itd -p 物理機端口:容器端口 -v 本地地址:容器映射地址 --privileged=true --ipc=host  [容器id] /bin/bash

docker exec -it [容器id] /bin/bash

(2)下載對應cuda版本的mmcv-full\torch\torchvision 并安裝

CUDA版本:11.3

mmcv-full: mmcv_full-1.4.8-cp38-cp38-manylinux1_x86_64.whl

TensorRT:TensorRT-8.4.1.5.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz

torch:torch-1.10.0+cu113-cp38-cp38-linux_x86_64.whl

torchvision:torchvision-0.11.1+cu113-cp38-cp38-linux_x86_64.whl
pip install torch-1.10.0+cu113-cp38-cp38-linux_x86_64.whl
pip install torchvision-0.11.1+cu113-cp38-cp38-linux_x86_64.whl
pip install mmcv_full-1.4.8-cp38-cp38-manylinux1_x86_64.whl

其余需要資源:

ppl.cv/onnxruntime-linux-x64-1.8.1.tgz/third_party/pybind11/ cmake>=3.14/mmdeploy-0.4.0/mmdetection-2.22.0/TensorRT

(3)安裝和配置

安裝mmdetection

pip install 
cd mmdetection-2.22.0
pip install -v -e .

安裝TensorRT

tar -xvf TensorRT-8.4.1.5.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz
pip install TensorRT-8.4.1.5/python/tensorrt-8.4.1.5-cp38-none-linux_x86_64.whl 
pip install TensorRT-8.4.1.5/onnx_graphsurgeon/onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl
pip install TensorRT-8.4.1.5/graphsurgeon/graphsurgeon-0.4.6-py2.py3-none-any.whl
pip install TensorRT-8.4.1.5/uff/uff-0.6.9-py2.py3-none-any.whl
并在bashrc中完成變量添加:
export TENSORRT_DIR=/root/workspace/TensorRT-8.4.1.5:$TENSORRT_DIR
export LD_LIBRARY_PATH=/root/workspace/TensorRT-8.4.1.5/lib/:$LD_LIBRARY_PATH

編譯mmdeploy-0.4.0

  • TensorRT 自定義算子

    cd ${MMDEPLOY_DIR}
    mkdir -p build && cd build
    cmake -DCMAKE_CXX_COMPILER=g++-9 -DMMDEPLOY_TARGET_BACKENDS=trt -DTENSORRT_DIR=${TENSORRT_DIR} -DCUDNN_DIR=${CUDNN_DIR} ..
    make -j$(nproc)
    
  • 安裝 Model Converter

    cd ${MMDEPLOY_DIR}
    pip install -e .
    
  • cuda + TensorRT編譯

    cd ${MMDEPLOY_DIR}
    mkdir -p build && cd build
    cmake .. \
        -DCMAKE_CXX_COMPILER=g++-9\
        -DMMDEPLOY_BUILD_SDK=ON \
        -DMMDEPLOY_BUILD_SDK_PYTHON_API=ON \
        -DMMDEPLOY_TARGET_DEVICES="cuda;cpu" \
        -DMMDEPLOY_TARGET_BACKENDS=trt \
        -DMMDEPLOY_CODEBASES=all \
        -Dpplcv_DIR=${PPLCV_DIR}/cuda-build/install/lib/cmake/ppl \
        -DTENSORRT_DIR=${TENSORRT_DIR} \
        -DCUDNN_DIR=${CUDNN_DIR}
    
    make -j$(nproc) && make install
    

在這里插入圖片描述
出現上述圖片就是成功的標志

2、推理環境配置和測試

(1)加載mmdet2_5_tensorrt_inference.tar鏡像

(2)重新安裝TensorRT-8.4.1.5.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz

(3)運行測試代碼

測試結果如下所示
FP32:
在這里插入圖片描述
FP16:
在這里插入圖片描述
INT8:
在這里插入圖片描述

mmdet-fp32 trt_fp32 trt_fp16 trt_int8
trt加速 18.67 31.74 61.35 71.80
trt加速+后處理 9-10 15-16 17-19 17-19

3、Trouble Shooting

1、直接運行,報了cuda error ,說是torch版本不兼容

2、更新torch版本為1.7后

ImportError: cannot import name ‘_get_tensor_dim_size’ from ‘torch.onnx.symbolic_helper’ (/opt/conda/lib/python3.8/site-packages/torch/onnx/symbolic_helper.py)

3、更新torch為1.11

ImportError: /opt/conda/lib/python3.8/site-packages/mmcv/_ext.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZNK2at6Tensor7is_cudaEv

1/2/3解決方式:登錄torch官網,找到自己CUDA版本適配的torch/torchvision.
mmcv-full安裝方式也需要去mmcv-full官網查詢與之適配的cuda版本好,以防出錯。

4、ImportError: libnvinfer.so.8: cannot open shared object file: No such file or directory

解決方式:配置TensorRT的環境變量
在這里插入圖片描述

–END–

原文鏈接:https://blog.csdn.net/caobin_cumt/article/details/125882499

欄目分類
最近更新