使用自定义插件安装 tensorrt
Posted
技术标签:
【中文标题】使用自定义插件安装 tensorrt【英文标题】:Install tensorrt with custom plugins 【发布时间】:2021-12-30 15:51:36 【问题描述】:我可以从官方 nvidia 指南 (https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#maclearn-net-repo-install) 安装所需版本的 TensorRT
sudo apt-get update && \
apt-get install -y libnvinfer7=7.1.3-1+cuda10.2 libnvonnxparsers7=7.1.3-1+cuda10.2 libnvparsers7=7.1.3-1+cuda10.2 libnvinfer-plugin7=7.1.3-1+cuda10.2 libnvinfer-dev=7.1.3-1+cuda10.2 libnvonnxparsers-dev=7.1.3-1+cuda10.2 libnvparsers-dev=7.1.3-1+cuda10.2 libnvinfer-plugin-dev=7.1.3-1+cuda10.2 python3-libnvinfer=7.1.3-1+cuda10.2 && \
sudo apt-mark hold libnvinfer7 libnvonnxparsers7 libnvparsers7 libnvinfer-plugin7 libnvinfer-dev libnvonnxparsers-dev libnvparsers-dev libnvinfer-plugin-dev python3-libnvinfer
但我需要一些自定义插件。幸运的是我找到了想要的并添加到文件夹插件 https://github.com/NVIDIA/TensorRT/tree/master/plugin 并注册。 现在我不明白如何使用添加的插件构建和安装 tensorrt。 在 github https://github.com/NVIDIA/TensorRT 的官方 repo 上有一条指令,但它描述了使用 tensorrt 构建 docker 映像的步骤。
那么问题是如何使用自定义插件构建 tensorrt 并将其安装在 ubuntu 上?
【问题讨论】:
【参考方案1】:如果您注册了自定义插件,“安装”它是相当容易的。 所以步骤如下:
安装 tensorRT
sudo apt-get update && \
apt-get install -y libnvinfer7=7.1.3-1+cuda10.2 libnvonnxparsers7=7.1.3-1+cuda10.2 libnvparsers7=7.1.3-1+cuda10.2 libnvinfer-plugin7=7.1.3-1+cuda10.2 libnvinfer-dev=7.1.3-1+cuda10.2 libnvonnxparsers-dev=7.1.3-1+cuda10.2 libnvparsers-dev=7.1.3-1+cuda10.2 libnvinfer-plugin-dev=7.1.3-1+cuda10.2 python3-libnvinfer=7.1.3-1+cuda10.2 && \
sudo apt-mark hold libnvinfer7 libnvonnxparsers7 libnvparsers7 libnvinfer-plugin7 libnvinfer-dev libnvonnxparsers-dev libnvparsers-dev libnvinfer-plugin-dev python3-libnvinfer
注意:我安装了 tensorrt 的 v.7.1.3.1 和 cuda 10.2,如果你想安装其他版本,请更改它,但要小心 tensorRT 和 cuda 的版本匹配意味着并非所有版本的 tensorRT 都有库达
按照https://github.com/NVIDIA/TensorRT 中的描述构建库 libnvinfer_plugin.so.x.x.x
注意:x.x.x 是库的版本,在我的例子中是 7.1.3
如果您有 x86 架构,请删除 /usr/lib/x86_64-linux-gnu 中的现有库,或者删除 arm64 的 /usr/lib/aarch64-linux-gnu 中的现有库: libnvinfer_plugin.so.7.1.3 libnvinfer_plugin.so.7 libnvinfer_plugin.so
同样,文件名取决于 tensorRT 版本。
如果你有 x86 架构,则将库 libnvinfer_plugin.so.7.1.3 复制到文件夹 /usr/lib/x86_64-linux-gnu 或 /usr/lib/aarch64-linux-gnu 用于 arm64
为库制作 simlink:
sudo ln -s libnvinfer_plugin.so.7
sudo ln -s libnvinfer_plugin.so.7 libnvinfer_plugin.so
【讨论】:
以上是关于使用自定义插件安装 tensorrt的主要内容,如果未能解决你的问题,请参考以下文章
Yolov3 到 Tensorrt:tf-keras Lambda 层的自定义插件
模型推理TensorRT8 自定义算子 Plugin 实现方法