二、深入学习TensorRT,Developer Guide篇(一)

这篇具有很好参考价值的文章主要介绍了二、深入学习TensorRT,Developer Guide篇(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

哦呦,刚发了那篇文章,好多老哥们点赞收藏,受宠若惊,但是也给我再来写一篇提供了动力,毕竟谁不喜欢被别人认可呢,哈哈,谢谢各位老哥们的点赞和收藏,一起继续学习。
上一篇文章是讲了getting started,参考了官方文档怎么进行快速的验证,主要就是通过一些操作带着我们去熟悉一下TensorRT整体的工作流程和一些高频使用的API。后面我们要深入一点,继续研究TensorRT后面的内容,我这里参考的仍然是官方文档:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#overview
本文是我基于官方文档结合自己理解的产物,不一定非常准确,仅供各位老哥参考。

1. 一些前置知识

1.1 samples

官方提供了非常多的样例程序(samples),瞄了一眼,感觉非常有用,后面我们一起再回头研究一下: NVIDIA TensorRT Sample Support Guide,还有一些嵌入式的样例,主要是jetson系列,我也建议大家有空的时候去研究一下:jetson-inference

1.2 MIG

MIG是具有NVIDIA安培架构或更高架构的NVIDIA GPU的一项功能,可以将单个GPU定向地划分为多个更小的GPU。物理分区提供具有QoS的专用计算和内存片,并在GPU的部分上独立执行并行工作负载。对于GPU利用率较低的TensorRT应用程序,MIG可以在对延迟影响很小或没有影响的情况下产生更高的吞吐量。最佳分区方案是特定于应用程序的。这个我也是第一次接触,之前没见过,感觉就是对于GPU支持单独划分使用?而且这个划分是真正的物理层面的划分,硬件资源都是真正的划分,这样理解不知道对不对,感兴趣的请参考: Multi-Instance GPU

1.3 配套软件

  1. NVIDIA Triton™:是一个服务端的高性能推理库,感兴趣的可以自己研究一下。
  2. NVIDIA DALI® :NVIDIA Data Loading Library (DALI)是一个gpu加速库,用于数据加载和预处理,以加速深度学习应用程序。它提供了一组高度优化的构建块,用于加载和处理图像、视频和音频数据。在流行的深度学习框架中,它可以作为内置数据加载器和数据迭代器的便携替代品。TensorRT推理可以被当做一个用户操作继承到DALI的pipeline中,一个将TensorRT集成到DALI中的一个部分的样例可以参考:https://github.com/NVIDIA/DL4AGX
  3. TensorFlow-TensorRT (TF-TRT):针对TensorFlow的TensorRT工具,它选择TensorFlow图的子图来由TensorRT加速,而将图的其余部分留给TensorFlow本地执行。结果仍然是一个TensorFlow图,你可以像往常一样来执行它,更多的请参考: Examples for TensorRT in TensorFlow
  4. Torch-TensorRT (Torch-TRT):是一个PyTorch-TensorRT编译器,将PyTorch模块转换成TensorRT engines。在内部,PyTorch模块首先根据所选的中间表示(IR)转换为TorchScript/FX模块。编译器选择PyTorch图的子图通过TensorRT进行加速,而让图的其余部分由Torch本地执行。结果仍然是一个可以像往常一样执行的PyTorch模块,更多请参考:Examples for Torch-TRT
  5. TensorFlow-Quantization Toolkit:提供了训练和部署基于Tensorflow 2的Keras模型的工具,精度较低。该工具包用于根据操作符名称、类和模式匹配对图中的不同层进行量化。量化后的图可以转换为ONNX,然后再转换为TensorRT engine,更多请参考:model zoo
  6. PyTorch Quantization Toolkit:提供以低精度训练PyTorch模型的工具,然后可以导出以在TensorRT中进行优化。

此外,PyTorch Automatic SParsity (ASP)工具为训练具有结构化稀疏性的模型提供了工具,然后可以导出并允许TensorRT在NVIDIA安培架构gpu上使用更快的稀疏策略。
TensorRT集成了一些性能分析工具,如NVIDIA Nsight™ Systems和NVIDIA Deep Learning Profiler (DLProf)(这些CUDA编程也是需要的,大家心里要有个数,说不定我们后面还会遇见,如果再次遇见我们就一起研究一下,消灭它)

1.4 ONNX

TensorRT从框架导入训练模型的主要方法是通过ONNX格式。TensorRT附带了一个ONNX解析器来帮助导入模型,一般情况下解析器向后兼容至opset 7。如果你遇到啥问题,ONNX Model Opset Version Converter可以帮助你解决不兼容问题。

GitHub版本可能支持更新的opsets,我们建议你在使用TensorRT进行部署的时候,使用最新的ONNX opset,TensorRT的ONNX算子支持列表可以从这里找到。

另外,PyTorch对ONNX有原生的支持,对于TensorFlow,建议参考tf2onnx方式

将模型导出到ONNX后的第一步是使用Polygraphy运行constant folding。这通常可以解决ONNX解析器中的TensorRT转换问题,还可以简化工作流程。具体操作请参考这里。在某些情况下,可能需要进一步修改ONNX模型,例如,用插件替换子图,或者根据其他操作重新实现不支持的算子。为了使这个过程更容易,你可以使用ONNX-GraphSurgeon。(这个后面我们会单独进行介绍)

对于在TensorRT中使用valgrind和clang sanitizer工具(这两个工具是用来内存检查和优化的),参考这里,我们后面也会讲解,因为感觉挺有用的,sanitizer工具我在开发过程中也有使用。文章来源地址https://www.toymoban.com/news/detail-827466.html

到了这里,关于二、深入学习TensorRT,Developer Guide篇(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《CUDA C++ Programming Guide》第一章 CUDA介绍

    使用GPUs的好处 在相同的价格和功耗范围内,图形处理器 GPU 比 CPU 提供了更高的指令吞吐量和内存带宽, 许多应用程序利用这些更高的功能在 GPU 上比在 CPU 上运行得更快。相比较其他计算设备,如 FPGA,也是非常节能的,但其提供了比 GPU 少得多的编程灵活性。 GPU 和 CPU 之间

    2024年02月15日
    浏览(32)
  • CUDA与TensorRT(5)之TensorRT介绍

    TensorRT基本介绍 TensorRT是可以在NVIDIA各种GPU硬件平台下运行的一个C++推理框架。我们利用Pytorch、TF或者其他框架训练好的模型,可以转化为TensorRT的格式,然后利用TensorRT推理引擎去运行我们这个模型,从而提升这个模型在英伟达GPU上运行的速度。速度提升的比例是比较可观的

    2024年02月16日
    浏览(31)
  • Windows11(CUDA11.7)下安装TensorRT

    TensorRT有多厉害就不多说了,因为确实很好用。 作为在英伟达自家GPU上的推理库,这些年来一直被大力推广,更新也非常频繁,issue反馈也挺及时,社区的负责人员也很积极,简直不要太NICE。 那么我们应该如何入门呢 我们应该先安装好TensorRT 在博主研究了两天观摩了很多大

    2024年02月09日
    浏览(54)
  • ModuleNotFoundError: No module named ‘cuda‘、‘tensorrt‘

    先安装两个TensorRT的依赖库 点我进入TensorRT官方下载地址, win下载后得到zip文件 TensorRT-8.6.0.12.Windows10.x86_64.cuda-11.8.zip 点我进入官方TensorRT组件的版本管理   确认本机是否成功安装CUDA Toolkit, win + R 打开\\\"运行\\\",输入 cmd 终端。 输入指令: 找到本机安装CUDA的文件路径: 默认安装通常

    2024年02月16日
    浏览(33)
  • ChatGPT引领的AI面试攻略系列:cuda和tensorRT

    cuda和tensorRT(本文) AI全栈工程师 随着人工智能技术的飞速发展,该领域的就业机会也随之增多。无论是刚刚踏入这一领域的新手,还是经验丰富的专业人士,都可能面临着各种面试挑战。为了帮助广大求职者更好地准备人工智能相关的面试,本系列博客旨在提供一系列精选

    2024年03月15日
    浏览(46)
  • pytorch搭建squeezenet网络的整套工程,及其转tensorrt进行cuda加速

    本来,前辈们用caffe搭建了一个squeezenet的工程,用起来也还行,但考虑到caffe的停更后续转trt应用在工程上时可能会有版本的问题所以搭建了一个pytorch版本的。 以下的环境搭建不再细说,主要就是pyorch,其余的需要什么pip install什么。 squeezenet的网络结构及其具体的参数如下

    2024年02月09日
    浏览(39)
  • Orin 安装CUDA CUDNN TensorRT Opencv和输入法的环境配置

    有两种方法可以安装CUDA环境 在刷机完成的Orin,执行如下命令: 注释–如果在执行第三行命令,报错的话,先查看nvidia-l4t-apt-source.list 将其修改为 修改完后,重新执行上面那三行命令 CUDA 检查是否安装成功 运行命令 输出结果 如果报错,需要把nvcc添加到环境变量,方法如下

    2024年02月10日
    浏览(39)
  • yolov7的 TensorRT c++推理,win10, cuda11.4.3 ,cudnn8.2.4.15,tensorrt8.2.1.8。

    yolov7的 tensorrt8 推理, c++ 版本 环境 win10 vs2019 opencv4.5.5 cuda_11.4.3_472.50_win10.exe cudnn-11.4-windows-x64-v8.2.4.15 TensorRT-8.2.1.8.Windows10.x86_64.cuda-11.4.cudnn8.2.zip RTX2060推理yolov7, FP32 耗时 28ms  ,FP16 耗时 8ms,单帧对应总耗时30ms 和 10ms。 推理yolov7-tiny,FP32 耗时 8ms  ,FP16 耗时 2ms。 tensorr

    2024年02月15日
    浏览(45)
  • ubuntu20.04显卡驱动cuda cudnn conda TensorRT安装及配置

    如果要使用 TensorRT ,请注意CUDA 支持的最高算力要大于等于GPU本身的算力, 可以先看3小节 conda和pip换源直接看2.3小节 本人已在ubuntu20.04下安装成功。其他版本步骤应该差不多 如果帖子有帮助,感谢一键三连, ^_^ 部署有问题的小伙伴欢迎留言和加 Q 裙- 472648720 BEV各算法环境部

    2024年01月22日
    浏览(55)
  • Win11基于WSL2安装CUDA、cuDNN和TensorRT(2023-03-01)

    如果有小伙伴看了2023-03-05更新,发现设置环境变量后运行cuda代码在链接过程中仍然会有报错问题啥的,那我这里建议,先别管2023-03-05更新的内容了,还是按照我博客里的安装步骤一步一步往下安装,用 sudo apt install nvidia-cuda-toolkit 命令去安装nvcc,也不需要配置环境变量了。

    2024年02月02日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包