TensorRT 简单介绍

一、TensorRT

对于算法工程师来说,相信大家已经对TensorRT耳熟能详了,那么这个TensorRT是什么呢?

其实,TensorRT是一个可以在NVIDIA各种GPU硬件平台下运行的推理引擎,同时也是一个高性能的深度学习推理优化器,可以为深度学习的落地应用起到低延迟高吞吐的作用。

TensorRT是由C++、CUDA、Python三种语言编写成的一个库,其中核心代码的语言为C++和CUDA,当然,它也有Python的API接口。

二、应用场景

算法工程师的日常工作当然是训练,我们在进行模型训练的时候可能会选用Pytorch、Tensorflow、Caffe等不同的深度学习框架,并且训练的时候可以使用很充裕的GPU算力。但是在实际部署的时候,为了节省成本,所以在推理时并不会使用过多的GPU资源,甚至是使用CPU来进行模型的推理。鉴于低GPU算力的原因,在嵌入式平台或自动驾驶平台就会使用TensorRT进行推理加速

在这里插入图片描述
在实际项目中,我们可能需要将目标检测、实例分割、OCR等模型部署到一块,这里可能会遇到一种情况:A模型使用了Tensorflow框架,B模型使用了Pytorch框架,C模型使用了Caffe框架。那这样会导致一个问题:代码运行环境的适配就成了大问题。

所以我们希望有一个通用的框架来运行以上的模型。

TensorRT就是用来解决这些问题,它可以将不同框架下训练好的模型统一转为TensorRT引擎再运行,同时会对模型进行优化,从而节省模型在推理时所使用的GPU资源和运行时间。TensorRT与NVIDIA的GPU结合后,几乎可以在所有的深度学习框架中高效部署。

在这里插入图片描述

三、TensorRT的加速效果如何?

TensorRT主要通过融合层优化内核的选择量化等方式来加速网络的推理速度,从而改善推理的延迟和内存消耗。

在这里插入图片描述
当然,具体的加速效果取决于模型的类型与它的大小,也取决于我们所使用的显卡类型。对于GPU来说,它底层硬件的设计更适合并行计算,它也更喜欢密集型的计算。因此,对于通道数较多的卷积层和转置卷积层,TensorRT的加速效果比较明显;而对于比较繁琐而细小的OP操作,如reshape、gather、split这些操作就没有那么显而易见。

在调研中发现,不同模型在TensorRT下的加速效果如下:

  • 在Caffe框架下训练出来的的SSD检测模型可以加速3倍;
  • 在Caffe框架下训练出来的的SSD检测模型可以加速3倍;
  • Pytorch下的大模型,如GAN网络,加速比较明显,能有7到20倍;
  • Tensorflow下的LSTM、Transformer模型则只能起到0.5倍到1倍的加速效果;
  • 在Keras下,ResNet能加速3倍左右;

四、TensorRT支持那些生态

首先需要你的设备有NVIDIA的显卡或者能够支持NVIDIA的显卡,并且算力在5.0以上。像A100、2080Ti、1080Ti这一些都是可以的。据说TX2、Nano这些载有嵌入式端显卡的设备也是支持的。

TensorRT目前支持的语言有C++和Python。对于大多炼丹师来说,使用的语言应该都是Python,上述也提到,对于Tensorflow、Pytorch这一些我们平常用于训练模型的深度学习框架来说,TensorRT也都是支持的。

所以对于大多数深度学习工作者来说,都是可以轻松上手的。这样对于大多数AI开发者来说就十分友好!

在这里插入图片描述

五、TensorRT 缺点

万事万物都有两面性,TensorRT也是如此。虽然TensorRT很强大,但是它也是有缺点的。

  • 高版本的TensorRT依赖于高版本的CUDA,低版本的CUDA是无法支持的。而高版本的CUDA依赖于高版本的驱动。所以如果你想从低版本的TensorRT升级到高版本的TensorRT,就必须更换环境。

  • TensorRT并没有完全开源。TensorRT的推理优化部分并没有完全开源出来,因此在实际使用的时候,我们就好像在使用一个黑盒子,没有办法知道里面具体发生了哪一些过程。

  • 经过推理优化后的Engine引擎与特定的GPU型号绑定,不同的GPU型号无法进行共享。例如在3090上生成的引擎不能在A100上使用。

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

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

相关文章

你知道跨站脚本攻击吗?一篇带你了解什么叫做XSS

1.XSS简介 (1)XSS简介 XSS作为OWASP TOP 10之一。 XSS中文叫做跨站脚本攻击(Cross-site scripting),本名应该缩写为CSS,但是由于CSS(Cascading Style Sheets,层叠样式脚本&#x…

css 美化滚动条

当div内容溢出容器定义的高度时,滚动条显示,并美化默认的滚动条样式 div 容器 <divclass"content">内容 </div>css 样式 /* 问话区域 滚动条 */ .content {overflow: auto;height: 662px;padding: 25px;scrollbar-width: thin; /* 设置滚动条宽度 */bo…

25.JSP标准标签库

JSTL概述 JSTL 全名为 JavaServer Pages Standard TagLibrary,即jsp标准标签库。JSTL 是由 JCP &#xff08;Java Community Process&#xff09;所指定的标准规格&#xff0c;它主要提供给 Java Web 开发人员一个标准通用的标签函数库。 Web 程序开发人员能够利用 J STL 和 E…

rouyi-vue-pro+vue3+vite4+Element Plus项目中使用生成Vue2+Element UI标准模板

运行一个pro-vue3的前端项目&#xff0c;以及后端服务 在基础设施-代码生成模块中选择某张数据库表导入&#xff0c;并编辑生成信息&#xff0c;前端类型&#xff1a;Vue2Element UI标准模板 在vue3项目中创建一个vue文件 <template> </template><script>…

如何进一步优化Ubuntu服务器的性能

导读&#xff1a; 要进一步优化Ubuntu服务器的性能&#xff0c;您可以考虑以下几个方面&#xff1a;优化软件包管理&#xff1a; Ubuntu使用APT&#xff08;Advanced Package Tool&#xff09;作为其软件包管理工具。为了提高性能&#xff0c;您可以采取以下措施 要进一步优化U…

教师教育研究的意义有哪些

教师教育研究对于提高教育质量、推动教育改革的重要性。也有许多网友对教师教育研究的意义进行了深入探讨。 一、提高教师专业素养 教师是教育的核心力量&#xff0c;教师的专业素养直接影响到教育质量。教师教育研究通过对教育理论、教学方法、教育技术等方面的研究&#xff…

数据分析:继loopy、卡皮巴拉后,小红书下个可爱“顶流”是?

导语 温柔胆小又爱哭的吉伊、乐观开朗会说人话的哈奇&#xff0c;还有自由奔放整天发癫的兔子乌萨奇&#xff0c;三只小可爱共同组成了《吉伊卡哇》&#xff08;ちいかわ&#xff0c;Chiikawa&#xff09;的主角三人组&#xff0c;持续引领当代年轻人的社交话题。 据千瓜数据…

网络编程day5

作业 1> 使用select完成TCP客户端程序 //client #include<myhead.h> #define CLINET_IP "192.168.125.79" #define CLINET_PORT 9999 #define SERVE_IP "192.168.125.79" #define SERVE_PORT 8888 int main(int argc, const char *argv[]) {/…

类和对象(中篇)

类的六个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数&#xff1a; 用户没有显式实现&#xff0c;编译器会…

网易面试:亿级用户,如何做微服务底层架构?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业网易、美团、字节、如阿里、滴滴、极兔、有赞、希音、百度、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 微服务改造&#xff0c;你是怎么做的&#xff1…

【PIE-Engine 数据资源】全球2.5分分辨率累积降水量数据集

文章目录 一、 简介二、描述三、波段四、示例代码参考资料 一、 简介 数据名称全球2.5分分辨率累积降水量数据集时间范围1961年- 2018年空间范围全球数据来源worldclim代码片段var images pie.lmageCollection(WORLDCLIME/GLOBAL_PREC_MONTH") 二、描述 全球2.5分分率果…

【Python炫酷系列】祝考研的友友们金榜题名吖(完整代码)

文章目录 环境需求完整代码详细分析系列文章环境需求 python3.11.4及以上版本PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~)【注】 python环境搭建请见:https://want595.…

10、Qt:对数据进行加密、解密

一、说明 在Qt项目中简单的对数据进行加密解密&#xff0c;有如下两种方式 1、QCryptographicHash Qt提供了用于加密的类QCryptographicHash&#xff0c;但是QCryptographicHash类只有加密功能&#xff0c;没有解密功能 2、Qt-AES 使用第三方AES库&#xff0c;对数据进行加密解…

【动态规划】08路径问题_下降路径最小和_C++(medium)

题目链接&#xff1a;leetcode下降路径最小和 目录 题目解析&#xff1a; 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析&#xff1a; 题目让我们求通过 matrix 的下降路径 的 最小和 由题可得&#xff1a; 在下一行选择的元…

用户管理第2节课-idea 2023.2 后端--删除表,从零开始

一、鱼皮清空model文件夹下 二、鱼皮清空mapper文件夹下 三、删除 test 测试类下的部分代码 3.1删除SampleTest 3.2删除部分代码 UserCenterApplicationTests

【SQL】根据年份,查询每个月的数据量

根据年份&#xff0c;查询每个月的数据量 一种 WITH Months AS (SELECT 1 AS Month UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION…

Axure中如何使用交互样式交互事件交互动作情形

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 目录 一、Axure中交互样式 1、什么是交互样式&#xff1f; 2、交互样式的作用&#xff1f; 3、Axure中如何…

DRF从入门到精通二(Request源码分析、DRF之序列化组件)

文章目录 一、Request对象源码分析区分原生request和新生request新的request还能像原来的reqeust一样使用吗源码片段分析总结&#xff1a; 二、DRF之序列化组件序列化介绍序列化步骤序列化组件的基本使用反序列化基本使用反序列化的新增反序列化的新增删除单条 反序列化的校验 …

mangokit:golang web项目管理工具,使用proto定义http路由和错误

文章目录 前言1、mangokit介绍1.1 根据proto文件生成http路由1.2 根据proto文件生成响应码1.3 使用wire来管理依赖注入 2、mangokit实现2.1 protobuf插件开发2.2 mangokit工具 3、使用示例3.1 创建新项目3.2 添加新的proto文件3.3 代码生成 前言 在使用gin框架开发web应用时&a…

Linux学习(1)——初识Linux

目录 一、Linux的哲学思想 1.1 基础知识 1.2 根目录下的文件夹 二、Shell 1、Shell的定义 2、Shell的作用 三、Linux命令行 1、Linux通用命令行使用格式 四、Linux命令的分类 1、内部命令和外部命令的理解 2、内部命令和外部命令的区别 3、命令的执行过程 五、编辑…