『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT]

这篇具有很好参考价值的文章主要介绍了『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT]

一. 神经网络部署

1.1. 程序语言运行时(Runtime)

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

1.2. C++运行时(Runtime) 与 C++ 标准

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

1.3. 神经网络运行时(Runtime)

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

1.4. 神经网络表示

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

1.5. 神经网络部署&例子

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

二. TensorRT教程

  • 辅助文档-本教程配套代码,以及更多范例和文档:https://github.com/NVIDIA/trt-samples-for-hackathon-cn/tree/master/cookbook
  • Polygraphy:深度学习推理原型设计和调试工具包

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

2.1. 前置条件-计算机指令执行过程

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

2.2. 前置条件-计算机处理器架构

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速
『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

  • 介绍个工具Torch.Profiler,使用它来确定你的性能瓶颈Introduction of torch.profiler

2.3. TensorRT简介

  • TensorRT文档:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html
  • C++ API 文档:https://docs.nvidia.com/deeplearning/tensorrt/api/c_api/
  • python API 文档:https://docs.nvidia.com/deeplearning/tensorrt/api/python_api/
  • TensorRT下载:https://developer.nvidia.com/tensorrt-download
  • 辅助文档-本教程配套代码,以及更多范例和文档:https://github.com/NVIDIA/trt-samples-for-hackathon-cn/tree/master/cookbook

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

TensorRT究竟使用了哪些技术使得我们的深度学习模型得以在GPU上加速运行呢?

  • 一方面模型构建期(推理优化器) 模型从网络结构变成可执行程序的过程,在这个过程中TensorRT的推理优化器主要帮我们完成了下面的工作:
  • ①模型解析/建立:TensorRT可以加载 Onnx 等其他格式的模型或在其中使用原生 API 搭建模型
  • ②计算图优化:包括横向层融合( Conv )、纵向层融合( Conv+add+ReLU)等
  • ③节点消除:去除计算层中的一些无用层,并进行常数融合以及一些节点变换( Pad , Slice , Concat , Shuffle)等,这些变换有利于真正计算时的内存拷贝等操作。
  • ④多精度支持:TensorRT支持FP32/FP16/INT8/TF32等多种数据类型的混合计算,以便加快计算速度,但是单价是有可能插入额外的reformat节点,用于数据类型的转换。
  • ⑤之后TensorRT会帮我们优选 kernel / format 硬件有关优化这个是因为对于计算图中的一个节点,我们在GPU上可能有多重实现,具体到我们要运行TensorRT的GPU上得时候,究竟哪一种实现最快呢?这一步需要TensorRT帮我们选择的。[在TensorRT中,kernel是指用于执行特定层计算的 CUDA核函数]
  • ⑥导入 plugin:实现自定义操作,有时候计算图中会遇到TensorRT原生不支持的操作,这个时候需要外部导入一些cuda c++编写的plugin,来使用这些plugin帮我们完成计算。
  • ⑦显存优化:TensorRT运行的时候,会帮我们维护一个显存池,我们计算过程中所有用到的显存,都可以使用显存池复用,避免重复的内存申请和释放,帮我们节约时间和空间。
  • 另一方面模型运行期(运行时环境) 也就是模型的可执行文件真正接收了输入的数据,并运行的阶段,在这个阶段主要完成了运行时环境、序列化/反序列化两方面的工作。
  • TensorRT文档有详细介绍,比如说计算图优化部分,具体到哪些layer之间可以发生融合,都有逐一的列举
  • https://developer.nvidia.com/blog/production-deep-learning-nvidia-gpu-inference-engine/

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

  • NVIDIA GPU Inference Engine(GIE)具体解释见上面的链接 对神经网络图进行了一些重要的转换和优化。首先,消除未使用输出的层以避免不必要的计算。接下来,在可能的情况下,融合卷积层、偏置层和 ReLU 层以形成单层。图 2显示了图 1 中原始网络的垂直层融合结果(融合层在图 4 中标记为 CBR)。层融合提高了在 GPU 上运行 GIE 优化网络的效率。

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

  • 另一种转换是水平层融合或层聚合,以及所需的聚合层到各自输出的划分,如图3所示。水平层融合通过组合采用相同源张量并应用相似参数的相同操作的层来提高性能,从而形成一个更大的层以提高计算效率。图3中的示例显示了图 2 中 3 个 1×1 CBR 层的组合,这些层将相同的输入放入单个较大的 1×1 CBR 层中。请注意,必须分解该层的输出,以将原始输入图输入到不同的后续层中。

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

  • 图3如下,卷积神经网络上水平层融合的示例。在这里,图 4 中的多个 1×1 CBR 层“水平”融合,或者跨越图中共享相同输入的相似层。

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速

  • 下面摘选自2021年nvidia的一些讲座中,TensorRT优化的成果: 第1行2张图对比了多种图像分类和目标识别模型,在Tensorflow框架内,以及使用Tensorflow自带的TRT接口下的性能。左下角这张图对比了BERT模型在Tensorflow和TensorRT中的延迟,右下角这张图对比了ONNX Runtime中使用cuda和TensorRT两种后端的性能。总体来看对于计算密集型任务,比如矩阵乘法和卷积,TensorRT选用了高效的算子,提升计算效率。对于访存密集型的任务,TensorRT会采用算子融合减少访问和数据的拷贝量以提高访问的效率,此外TensorRT可以使用低精度的类型,在精度损失可以允许的情况下,同时减少计算时间和内存显存的使用量,以加快计算速度

『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT],模型部署,深度学习,模型部署,TensorRT,模型加速文章来源地址https://www.toymoban.com/news/detail-679186.html

参考文献

  • 模型量化以及部署B站链接:PPQ-神经网络量化框架
  • 模型量化以及部署B站链接:神经网络-量化与部署

到了这里,关于『模型部署』神经网络模型部署[运行时|指令执行|处理器架构|TensorRT]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【神经网络第三期】RBF神经网络基本原理和模型应用

    目录 1. RBF神经网络基本概 2. RBF神经网络结构模型 3.RBF神经网络的学习算法 4. 相关模型应用 径向基函数( Radical Basis Function, RBF)是多维空间插值的传统技术,由Powell 于1985 年提出。1988 年, Broomhead 和Lowe 根据生物神经元具有局部响应这一特点,将RBF 引人神经网络设计中,产

    2024年02月14日
    浏览(36)
  • openmv云端训练神经网络自动生成openmv的神经网络模型

    打开openmv工具栏如图所示,点击新数据集  弹出如下界面,这里我选择的是我自己新建的new date文件夹,你们选择自己新建的文件夹即可  接下来我们点击左边红框框起来的地方,可得到中间那个界面,可自己创建名称  左上角就是我创建好的两个,接下来我们点击下面红框

    2024年02月12日
    浏览(39)
  • 深度学习笔记之循环神经网络(十)基于循环神经网络模型的简单示例

    本节我们将前面介绍的几种 循环神经网络 —— RNN,LSTM,GRU text{RNN,LSTM,GRU} RNN,LSTM,GRU 关于实例中的一个演示,但重点并不仅在于这些模型,这里以 示例 的形式对 One-hot text{One-hot} One-hot 向量 重新进行认知 。 自然语言 ( Natural Language ) (text{Natural Language}) ( Natural Language ) 是人类

    2024年02月07日
    浏览(52)
  • MobileViT神经网络模型

    官方源码(Pytorch实现) : https://github.com/apple/ml-cvnets  原文链接:https://blog.csdn.net/qq_37541097/article/details/126715733 霹雳吧啦Wz从ml-evnets仓库中剥离的代码: deep-learning-for-image-processing/pytorch_classification/MobileViT at master · WZMIAOMIAO/deep-learning-for-image-processing · GitHub MobileViT对应博文: Mobi

    2024年02月04日
    浏览(33)
  • 神经网络模型设计

    AlexNet是由Alex Krizhevsky等人在2012年提出的卷积神经网络模型,它在ImageNet图像分类挑战赛中取得了突破性的成果。以下是AlexNet的网络结构和各个层的作用: 输入层(Input Layer):接收输入图像数据。 卷积层1(Convolutional Layer 1):使用96个11x11的卷积核(2份48个11x11区块),步长

    2024年02月15日
    浏览(36)
  • 回归预测模型:MATLAB神经网络回归模型

    1.神经网络回归模型的基本原理 神经网络是一种由节点(或称为“神经元”)和边组成的网络结构,用于模拟人脑分析和处理信息的方式。在回归问题中,神经网络旨在预测一个连续值的输出,基于给定的一组输入特征。 一个基本的神经网络包括输入层、隐藏层(一个或多个

    2024年02月21日
    浏览(42)
  • Matlab预测模型-BP神经网络模型

    训练集(Training set) —— 用于模型拟合的数据样本。 验证集(Validation set) —— 是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。在神经网络中,我们用验证数据集去寻找最优的网络深度,或者决定反向传播算法的停止

    2024年02月11日
    浏览(44)
  • 神经网络模型--数学建模

    目录 1.神经网络模型简介 2.神经网络在数学建模中用途 3.神经网络在数学建模中应用案例 3.1交通流量预测 3.2 股票价格预测 3.3图像识别 3.4自然语言处理 3.5智能控制   神经网络是一种人工智能算法,它受到了生物神经网络的启发。类似于生物神经网络,神经网络也由许多相互

    2024年02月01日
    浏览(49)
  • 大模型基础之神经网络

    【神经网络的构成】 神经元 激活函数 层 feedforward computation前向计算:从输入开始依次计算每一层的结果。 隐层:在输入之上添加的多层通常被称为隐层。 激活函数:非线性的激活函数,拟合非线性关系,进行非线性变换。 叠加若干隐层,提升网络的表达能力。 输出层:来

    2024年02月11日
    浏览(33)
  • 神经网络与深度学习模型

    目录 引言 1 神经网络的理论基础 神经网络的工作原理 深度学习的发展历程和主要模型

    2024年02月13日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包