欢迎来到池州三陆五信息科技有限公司- 未来科技

微信
手机版
网站地图

NVIDIA何琨:AI视频处理加速引擎TensorRT和Deepstream的介绍-量子比特

2023-04-14 08:55:46 栏目 : 科技 围观 : 0次

最近,爱奇艺技术沙龙“多模态动画人物识别的关键技术和应用程序”成功举办,英伟达开发者社区经理何琨出席并进行了精彩的共享。以下是共享实录:

今天,我们将介绍两种工具:DeepStream和TensorRT。我想介绍这两种工具并不是因为它们专门针对特定的产品和场景,而是因为这两种工具实际上有助于在视觉领域加快任务和应用程序的速度。

DeepStream

尽管深度学习可用于多种领域,如视觉、语音和NLP,但深度学习框架的基础支持多种硬件和软件库,如cuDNN、DeepStream、TensorRT和cuBLAS。这些库是提高程序速度的基本生态工具。

DeepStream是一种基于“NVIDIA”的工具,主要用于解决整个视觉流程。与其他视觉库(如OpenCV)不同的是,它提供了完整的端到端支持。从视频编解码器到背景图像的因子,到显示的画面的完整部分,都能帮助你完成所有的细节。包括参数设置。

在这个过程中,你只需要加上自己的话。如果是视频检索的话,train制作模型识别检测脸,在那里追加模型就可以了。视频源的完整设置可以在DeepStream中进行。包括记录的视频、服务器上的多视频等。

在这个过程中DeepStream是怎么做的呢?我们可以看到,从第一个视频编解码器到整个流程完成,这个过程中两个东西是最重要的。一个是Gstreamer编解码器工具,另一个是TensorRT工具。AI是GPU高速化的推理引擎。在DeepStream中,视频编解码器依赖于Gstreamer,而内容的基础流程在TensorRT中实现。

你可以看到每个模块都是用什嚒样的硬件运行的。一些可能使用CPU,但使用GPU加速。特别是在计算能力有限的设备(如小型GPU设备、无人机和自动驾驶汽车)需要加快完整过程时,DeepStream也有助于这样做。

虽然DeepStream目前支持“NVIDIA”的Xavier系列、Tegra系列、最新的Nano系列等,但如果在此过程中调度了几个GPU,则可以比传统库更快。

举两个例子,Tegra产品上的Yolo v3电脑芯片只有手掌大小的一半,我做了一个目标检测任务,如果Batch Size为2或4,不使用DeepStream就跑不动。不输出内存

我们来看看左上角。未使用DeepStream和TensorRT对其进行优化。一帧一秒的过程。右下角使用TensorRT和DeepStream进行了优化。大概是四点多的范围。

也就是说,即使是同样的算法,将Batch Size设为1时的高速化比也会增加约4倍,但在这种情况下,不需要进行优化,不需要变更网络模型,也不需要变更大小,只要将模型配置在DeepStream或TensorRT中,就可以制作高速化比。

GitHub是一个非常好的开源示例,它使用DeepStream在GPU上进行访问。https://github.com/vat-NVIDIA/deepstream-plugins。

DeepStream还支持一些新功能。例如,一个服务器将连接多个相机,在这种情况下,将连接多个Pipeline。例如,对于汽车,在停车时必须启用后端相机。在这种情况下,需要创建新的Pipeline。在自动行驶中,为了避免碰撞,需要注意汽车两侧相机的精度,但DeepStream会自动管理或删除Pipeline。当然,也有连接自动驾驶提供的360度照相机的全景,必要的时候包含库这样的简单。

TensorRT

说到深度流,除了视频编解码器之外,深度学习实际上是将模型部署到产品中非常重要的推理工具。DeepStream的基本推论任务基于“TensorRT”,核心任务是GPU推论引擎。这是一个高性能的深度学习推论优化器和运行时加速库,在调用时直接包含,可以优化神经网络模型和其他功能。

这些图表是“TensorRT”当前性能的优化程度。这是4.0版,最新的数字更高。即使什么都不做,只要使用该工具对模型进行镶嵌就可以达到OK的高度。

随着最新的TensorRT5.0的发布,python的支持、NLP、RNN等基于时间序列的模型的支持也非常好。尤其是基于移动的平台更像无人机、无人驾驶等。

TensorRT有一个标准工作流,给出一个训练有素的网络模型(包括网络结构、权重参数),它自动进行优化,并在该优化完成后生成一个可行的推理引擎。但是,还需要直接推论图像、声音信息、文本等数据的实例。你可以加速模型推论

模型推理需要自动完成五件事

第一种是权重参数类型的优化。例如,当前的半精度和8位整形推论,在数据大小和比特宽度减小后,结合数据传输、计算和最新的Tensor核心等硬件结构进行推论,可以大幅提高整体速度。

接下来是动态的“Tensor Memory”。我想大家都接触过GPU,GPU有很多级内存、全局内存、共享内存等,可以把数据从低速带变成高精度内存。

下一步是执行多流程。GPU的最大特点是并行计算。并行计算是一个新的级别,除了不同的线程、块之外,还有不同的流。例如,如果将一大块数据放入GPU中并进行内建,则所有计算核心都将在数据传输过程中等待,从而浪费等待时间,或降低GPU利用率。

此时,将大数据细分计算。当传输第一个数据时,所有后续任务都处于等待状态,当传输第一个数据时,第二个数据开始传输。同时,如果开始计算第一块数据,就可以在计算时间内隐藏发送时间。

如果大家要做一个基于视觉的应用程序,必须在一个服务器上同时创建N个实例。例如V100、16G内存、resnet-50需要1.3GB的GPU内存。在这种情况下,可以在一个GPU上同时打开12个实例,每个实例都有一定的相机支持,因此可以用于管理这些GPU资源。

也有内核调用每个产品的内核多和内核少、内核大小不同或寄存器数量自动优化到每个内核。

最后是网络层的融合。TensorRT虽然不会更改或剪切网络层,但可以进行一些优化。

上图为众所周知的GoogleNet Inception结构。首先有几个网络层。底层代码,如Caffe和TensorFlow。调用网络层时,将顶级Tensor数据传输到此函数。将该数据放入GPU中进行计算,GPU计算结束后返回CPU。每个网络层都是相同的过程

或者,将整个网络层的所有数据加载到GPU中,GPU将其放入全局内存中,并在使用时将其调整为每个Kernel或SM多流处理器。在这个过程中,每一层都是“写-算-读”。你可以融合三个网络层。CBR是Convolution、Bias和ReLU的缩写。

这样有什么好处?在当前内存充分加载数据之后,如果将这三个网络层合并,则可以节省四次访问次数。随着网络层的加深,网络层的读写次数减少,加速时间增加。

除了上面的融合,我们还可以融合3个1#215,1CBR进行同样的操作。同时也可以省去自动缝合。在GPU中计算后立即运行,因此可以直接减少。

最后可以看出,在这个过程中,这两条线互不相关,数据之间没有相互的沟通。我们单独启动两个Stream,每个都可以走这两条线。

同时计算第三个数据,同时计算左边的两个数据。也就是说,将耗时的部分隐藏在另一部分的时间里。当然,这都是TensorRT做的。

在整个过程中支持网络层,并且如果使用TensorRT,则需要向工具提供训练的数据或网络模型。通过ONNX的操作,TensorRT基本上支持现在市面上销售的网络框架中训练的模型、Caffe、TensorFlow、ONNX、DarkNet的数据。

最后英伟达开发者社区:https://developer.NVIDIA介绍-china.com。如果你有什嚒问题,请在上面提问。非常感谢。

展开剩余内容

分享到:

猜你喜欢

  • b2b网站策划书_b2b策划案

    b2b网站策划书_b2b策划案大家好,今天我来给大家讲解一下关于b2b网站策划书的问题。为了让大家更好地理解这个问题,我将相关资料进行了整理,现在就让我们一起来看看吧。文章目录...

    2024-10-22 企业 网站
  • 浙江高端网站_浙江高端网站有哪些

    浙江高端网站_浙江高端网站有哪些好久不见了,今天我想和大家探讨一下关于“浙江高端网站”的话题。如果你对这个领域还不太了解,那么这篇文章就是为你准备的,让我们一看看吧。文章目录列...

    2024-10-22 网站 浙江
  • 做酒的网站_做酒的网站有哪些

    做酒的网站_做酒的网站有哪些希望我能够回答您有关做酒的网站的问题。我将根据我的知识库和研究成果回答您的问题。文章目录列表:1.酒仙网CEO郝鸿峰的电商百亿梦想2.有没有关于介绍...

    2024-10-22 中国 酒类 酒仙 网站
  • 索尼手机软件_索尼手机软件商店

    索尼手机软件_索尼手机软件商店下面,我将为大家展开关于索尼手机软件的讨论,希望我的回答能够解决大家的疑问。现在,让我们开始聊一聊索尼手机软件的问题。文章目录列表:1.索尼的手机...

    2024-10-22 手机 索尼
热门标签