包虫病

首页 » 常识 » 诊断 » 实现TensorRT自定义插件plug
TUhjnbcbe - 2021/2/25 12:34:00
早期白癜风能根治吗 http://m.39.net/pf/a_4778971.html

本系列为新TensorRT的第一篇,为什么叫新,因为之前已经写了两篇关于TensorRT的文章,是关于TensorRT-5.0版本的。好久没写关于TensorRT的文章了,所幸就以新来开头吧。

接下来将要讲解的TensorRT,将会是基于7.0版本。

7版本开头的TensorRT变化还是挺大的,增加了很多新特性,但是TensorRT的核心运作方式还是没有什么变化的,关于TensorRT的介绍可以看之前写的这两篇:

利用TensorRT对深度学习进行加速利用TensorRT实现神经网络提速(读取ONNX模型并运行)

本文的内容呢,主要是讲解:

TensorRT自定义插件的使用方式如何添加自己的自定义算子

看完本篇可以让你少踩巨多坑。

前言

随着tensorRT的不断发展(v5-v6-v7),TensorRT的插件的使用方式也在不断更新。插件接口也在不断地变化,由v5版本的IPluginV2Ext,到v6版本的IPluginV2IOExt和IPluginV2DynamicExt。未来不知道会不会出来新的API,不过这也不是咱要考虑的问题,因为TensorRT的后兼容性做的很好,根本不用担心你写的旧版本插件在新版本上无法运行。

目前的plugin-API:

TensorRT插件

TensorRT插件的存在目的,主要是为了让我们实现TensorRT目前还不支持的算子,毕竟众口难调嘛,我们在转换过程中肯定会有op不支持的情况。这个时候就需要使用TensorRT的plugin去实现我们的自己的op。此时我们需要通过TensorRT提供的接口去实现自己的op,因此这个plugin的生命周期也需要遵循TensorRT的规则。

一个简单的了解

那么plugin到底长啥样,可以先看看TensorRT的官方plugin库长啥样,截止写这篇文章时,master分支是7.2版本的plugin:

1
查看完整版本: 实现TensorRT自定义插件plug