TensorRT (基于8.2.3)
- 1.简介
- 1.export
- 1.1 使用tensorrt API 搭建
- 1.2 使用parser
- 1.3 使用框架内 tensorrt 接口
- 1.4 注意事项
- 2.开发辅助工具
- 2.1 trtexec
- 2.2 Netron
- 2.3 onnx-graphsurgeon
- 2.4 polygraphy
- 2.5 Nsight Systems
- 3. plugin
- 3.1 plugin
- 3.2 使用
- 3.3 类型
- 3.4 结合使用parser 和 plugin
- 4. 高级话题
- 4.1 Dynamic shape 在min-max 跨度较大时性能下降
- 4.2 重叠计算和数据拷贝时间,增加GPU利用率
- 4.3 一个engine供多个线程使用
- 仅用于个人视频笔记
1.简介
通过推理优化器(构建)和运行环境(运行)实现高效实现推理过程
更高吞吐量
更低延迟
C++/Python
构建期
模型解析/搭建
计算图优化
节点消除
精度
优选kernel / format
自定义plugin
显存优化
运行期
对象管理,内存管理,异常处理
序列化 / 反序列化
1.export
1.1 使用tensorrt API 搭建
1.2 使用parser
1.3 使用框架内 tensorrt 接口
某些框架的新版本已经把trt加入在子模块,比如tensorflow,pytorch,个人不用不太了解
1.4 注意事项
2.开发辅助工具
2.1 trtexec
工具转换
性能测试
2.2 Netron
网络结构可视化
2.3 onnx-graphsurgeon
功能:
修改计算图: 图属性,节点,张量,节点和张量的连接,权重
修改子图:添加,删除,替换,隔离
优化计算图:常量折叠,拓扑排序,去除无用层
目的:
手工修改网络
去除冗余节点
修改阻碍tensorrt融合的节点组
手工模块化节点组
2.4 polygraphy
2.5 Nsight Systems
3. plugin
3.1 plugin
3.2 使用
plugin不参与层融合