使用自定义插件安装 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 实现方法

如何优化用于 TensorRT 推理的 grid_sample 的自定义双线性采样替代方案?

vscode自定义插件安装位置

如何在本地安装 Kong 中安装自定义插件

ionic cordova build ios 使用 xcode swift 3 框架安装自定义插件失败