TensorRT全方位概览笔记

news2025/2/4 5:59:29

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不参与层融合

3.3 类型

在这里插入图片描述

3.4 结合使用parser 和 plugin

在这里插入图片描述

4. 高级话题

4.1 Dynamic shape 在min-max 跨度较大时性能下降

在这里插入图片描述

4.2 重叠计算和数据拷贝时间,增加GPU利用率

在这里插入图片描述

4.3 一个engine供多个线程使用

在这里插入图片描述

仅用于个人视频笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/103536.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

就离谱!使用机器学习预测2022世界杯:小组赛挺准,但冠亚季军都错了 ⛵

💡 作者:韩信子ShowMeAI 📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40 📘 机器学习实战系列:https://www.showmeai.tech/tutorials/41 📘 本文地址:https://www.sho…

C2. Potions (Hard Version)(可以后悔的选取 + 一种新奇的优先队列用法)

Problem - 1526C2 - Codeforces 这是该问题的困难版本。唯一不同的是,在这个版本中,n≤200000。只有当两个版本的问题都解决了,你才能进行黑客攻击。 有n个药水排成一行,最左边是药水1,最右边是药水n。每种药水在喝下…

Eclipse安装和环境的基本配置

Eclipse安装 安装包 链接:https://pan.baidu.com/s/13LXiyGmgdAQ2MYXhim1WMg 提取码:WADS 不会安装的可以参考这篇文章 链接: 安装教程文章 eclipse怎么更改存储位置 1.1 file-> Switch Workspace ->Other 打开后可以看到保存文件的路径也可以…

疫情之下连锁餐饮行业积极求变,集团采购协同管理系统重构企业采购数字化

2019年底至今,新冠肺炎疫情已进入了第三个年头。作为接触性、聚集性行业,国内餐饮业持续承压,经历了一系列的波折。尤其2022年以来,国内多地出现了此起彼伏的疫情,给餐企带来了较大冲击,餐饮行业整体营收收…

【推荐】安全访问服务边缘(SASE)资料汇总合集24篇

Secure Access Service Edge (SASE) 是Gartner推出的一个新的技术理念。SASE将 SD-WAN和网络安全解决方案(FWaaS、CASB、SWG 和ZTNA)融合到统一的云原生服务中。SASE是Gartner最新提出的一个技术理念,SASE用于从分布式云服务交付聚合的企业网…

Web前端105天-day49-jQuery

jQuery02 目录 前言 一、复习 二、标签内容 三、get请求 四、新增子元素 五、委托 六、克隆 七、加载HTML 八、准备就绪 九、Node.js 十、js中提示jQuery的方案 十一、location 十二、根据地址栏参数加载页面 十三、全局样式变量 总结 前言 jQuery02学习开始 一…

vi\vim编辑器的使用及命令、快捷键

vi\vim编辑器 1、vi\vim编辑器介绍 vi\vim是visual interface的简称,是Linux中最经典的文本编辑器。 同图形化界面中的文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。 vim是vi的加强版本,兼容vi的所有指令,不仅能…

信息化时代,相比于人工服务客户更喜欢自助式服务

对于SaaS产品,为客户提供自助式服务,帮助客户能够自行完成任务和解决问题,给到客户更好的使用体验,对于SaaS产品,搭建一个自助式知识库门户和产品知识库尤为重要。在选购产品后,如果没有获得很好的客户服务…

TraceView使用

TraceView 是什么? TraceView 是 Android SDK 中内置的一个工具,用于加载 trace 文件,用图形的形式展示代码的执行时间、调用次数及调用栈,便于我们分析。 如何生成 trace 文件? 使用代码生成 Debug.startMethodTra…

新零售时代下,物流行业迎来新机遇

电商,一个异军突起的新行业,将改变传统商业旧模式。根据相关数据显示,2010-2019年,我国电商交易规模从4.5万亿元增长到34.8万亿元,年均复合增速达25%。在电商飞速发展的态势下,物流行业也迎来了蓬勃发展。 …

【华为OD机试真题2023 JAVA】去除多余空格

华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 去除多余空格 知识点字符串数组队列 时间限制:2s 空间限制:256MB 限定语言:不限 题目描述: 去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和…

Python3和Django的单元测试示例

1. unittest unittest是python自带的单元测试框架,unittest框架是受到 JUnit 的启发,与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化,配置共享和关机代码测试。支持将测试样例聚合到测试集中,并将测试与报告框…

性能测试(二)—— JMeter元件作用域和执行顺序、JMeter示例、JMeter参数化

目录 一、JMeter元件作用域和执行顺序 1. 元件的基本介绍 2. 元件作用域 3. 元件执行顺序 二、JMeter使用示例 1. JMeter第一个案例 2. 重点组件 2.1 线程组 2.2 HTTP请求 2.3 查看结果树 三、JMeter参数化 1. JMeter参数化常用方式 2. 用户定义的变量 2.1 场景 …

详解OpenCV的线段绘制函数line()

函数line()用于在图像上绘制圆形。 函数line()利用两点确定一条直线的原理在图像中绘制出一条线段。 C原型如下: void cv::line(InputOutputArray img,Point pt1,Point pt2,const Scalar & color,int thickness 1,int lineType LINE_8,int shift 0)Python原…

智能优化算法:人工蜂鸟算法 - 附代码

智能优化算法:人工蜂鸟算法 摘要:人工蜂鸟算法( AHA )是 ZHAO 等 于 2021 年提出的一种新型元启发式优化算法 . 该算法模拟了自然界中蜂鸟轴向飞行、对角飞行、全方位飞行 3 种特殊飞行技能和引导觅食、区域觅食、迁移觅食 3 种智能觅食策略,并通过引入…

【大数据入门核心技术-Spark】(三)Spark 本地模式安装

目录 一、Spark集群三种部署模式 1、 Local模式 2、Spark Standalone模式 3、Spark on YARN模式 二、准备工作 1、Hadoop环境安装 2、下载spark 三、安装spark 1、解压 2、配置环境变量 3、修改配置文件 4、测试安装是否成功 四、运行测试spark 1、读取本地文件 …

【Java|golang】1760. 袋子里最少数目的球---逆向二分法

给你一个整数数组 nums ,其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。 你可以进行如下操作至多 maxOperations 次: 选择任意一个袋子,并将袋子里的球分到 2 个新的袋子中,每个袋子里都有 正整数…

buildroot 升级软件包

因为软件漏洞问题,需要升级软件包,如 ncurses、libpwquality 等; 我目前采用的方法如下: 环境: 下载一个 buildroot 的最新版本: git clone git://git.buildroot.net/buildroot.git 我使用的 linux 环…

深入底层,spring mvc父子容器初始化过程解析

spring mvc父子容器初始化过程解析1、为什么要学习spring mvc底层?2、Java Web应该学什么?1、Tomcat2、servlet3、filter4、listener3、spring mvc容器初始化过程1、以WebApplicationInitializer.onStartup()方法作为入口2、registerDispatcherServlet()…

Java真的不难(五十二)Stream流的深入理解与流式编程

Stream流的深入理解与流式编程: 在今年年初小应学长也写过Stream与Lambda的两篇文章,今天先将两者结合起来进行流式编程 一、关于这两者 Stream与Lambda都是Java8引入的新概念,lambda在Java编程中对于函数式编程的支持,有助于代…