MathWorks阿维纳什•尼希米
阿米特·高尔,英伟达
深度学习正在改变各种工程和科学域,包括计算机视觉,视频分析,机器人,自动驾驶等。深入学习可以实现最先进的准确性,以便使用传统机器学习考虑的许多任务。在这个演示中,真实的例子用于说明如何在各种应用程序中实现深度学习。演示说明了Matlab的方式®和英伟达®gpu使这些创新成为可能。
涵盖的主题包括通过NVIDIA Jetson平台在边缘计算AI计算的进步,以及自动生成高性能CUDA的能力®代码的NVIDIA图形处理器从深度学习模型在MATLAB。
我是Amit Goel。我是英伟达智能机器的产品经理。你一定听说过很多关于深度学习和人工智能的事情。我会给你们更广泛的概述一下人工智能的发展方向,特别是自动机器,以及英伟达和MATLAB在这方面发挥的作用。
因此,我们看到了我们今天计算方式的根本转变。微处理器的时代正在逐渐消失,尽管技术在进步,但还是饱和了。但GPU计算的新计算模型正在以我们从未见过的速度加速数据处理。
结合深度学习的进步,来自移动互联网的数据,以及gpu提供的处理能力,我们现在能够解决以前认为无法解决的问题。而英伟达是整个人工智能革命和新计算模式的核心。我们的产品范围从s manbetx 845数据中心一直到边缘,并用于推理和人工智能培训。
让我们来概述一下人工智能正在解决的一些高级问题,这些问题以前甚至没有人尝试用传统算法来解决它们。以下是我想强调的几个方面。第一个是NVIDIA的产品,我们使用人工智能和深度学习来渲染图像,这在过去是通过光线追踪来完成的。如果你用过光线追踪,你会知道用光线追踪的每个像素来绘制图像,试图识别每个光子的轨迹需要很长时间。使用深度学习,你现在可以只渲染几个像素,让深度学习算法填充剩下的像素。第二种与我们所说的唇读相反。所以你给它文本,现在使用一个深度学习算法已经训练过视频,它能够产生运动-你的面部表情,你将需要阐明的特定文本。
所以这对于像游戏引擎这样的东西来说是非常重要的,因为你必须拥有大量的文本和角色动画。第三个来自一个叫wrnch的伙伴,它在2D视频中训练过,现在可以在3D世界中估计人体姿势。你可以想象这对VR和机器人有多重要,你可以在2D世界中与机器人互动,它可以估计你的姿势并教机器人。
第四个是爱丁堡大学的一个项目,在那里他们教这个角色动画自己,以导航障碍。所以无论你在现场设置什么障碍,它都接受过视频训练,它知道如果边缘很窄,它需要踮起脚尖——如果是高块,它需要抬起腿。所有这些都是通过深度学习训练完成的。
最后一个是机器人的例子在伯克利,教授们进入虚拟现实教机器人如何堆砌立方体。通过模仿学习,只需要很少的训练,他们就能训练这个机器人,让它像人类一样堆叠立方体。所有这些都是非常非常困难的问题,如果你没有使用人工智能和深度学习,这些问题是不可能解决的。
特别是在智能机器方面,在使用人工智能和深度学习方面,我们面前有一个巨大的、巨大的机会,我将在这里强调其中几个。工厂自动化——在工厂自动化领域,只有10%的工作是由机器人完成的。想象一下,如果我们能创造出能理解世界,能像我们一样理解任务的协作机器人。
我们可以极大地提高这一贡献,并达到我们从未见过的生产力水平。今天,人工智能和深度学习有巨大的机会进入万博1manbetx并增加大量价值的领域,包括最后一英里配送、支持养老院中的人类、农业检验和医疗操作。因此,为了解决这些问题,你需要一个有能力、性能和形状的解决方案,你可以将它部署在边缘。
为此,我们创建了Jetson TX2,这是一个信用卡大小的模块,它有所有边缘设备需要的东西。它的计算能力超过两款酷睿i7,并且可以在不到10瓦的时间内完成。正如你所看到的,它的形状是一个信用卡大小的模块。
所以你可以真的 - 它释放出很多机会,你可以为你的自治机器做些什么。该模块附带集成的GPU,CPU。它具有用于视频编码 - 解码,相机的内存,连接,硬件加速器,以及最重要的是表单因素,这是50到87,这是一个信用卡大小的模块。
所以我们有你听说过自驾车,但我们看到了我们在行业的各个方面看到了AI和深度学习,无论是制造,农业,建设,库存管理,社会,交货,安全。所有这些都是通过AI和深度学习看到巨大价值的应用。为了表明,让我在这里玩下一个视频。
所以在你看到的时候,Jetson正在部署为自治机器的许多不同的应用程序。从财富500强公司的一路才能启动,他们都能够使用这个平台。而不仅仅是为行业。Jetson还允许学术和研究挖掘这些应用程序。
这里有一些最近的例子研究人员和学生使用了《杰森一家》。亚马逊机器人挑战赛的目标是仓库自动化的应用程序,特别针对的是提货地点。排名前十的每一个团队都在使用GPU加速深度学习的解决方案,当然,获胜者也在使用它。一直到高中,第一次机器人比赛,都有团队在他们的机器人上使用Jetson板来实现第一次机器人比赛的目标。
丰田已经创造了这款人类支持机器人,提供了两个不同的研究大学,万博1manbetx以解决需要从机器人提供支持的旧人群的问题。在Robocup中,有几个球队使用人形 - 今年,他们改变了球,并且使用传统解决方案的人无法真正弄清楚。万博 尤文图斯但是使用深度学习的人们能够迅速培训他们的算法并将其部署在其机器人上。
因此,从财富500强企业到高中生,每个人都可以利用这个平台。而使之成为可能的是我们的软件堆栈。从底部的GPU加速的Jetson平台开始,我们已经构建了这个广泛的堆栈,它可以支持你在自动机器上需要的所有各种应用程序。万博1manbetx
它运行相同的CUDA架构,CUDA和深度学习库,你可以在你的离散GPU上运行。同样的库运行在小尺寸的Jetson板上。我们还有深度学习、计算机视觉、图形和媒体的图书馆。
除此之外,我们还内置了用于开发的多媒体api和工具。所以整个堆栈都是可用的,而且是开源的。我们让每个人都可以使用它,这使得大大小小的公司和研究人员能够挖掘这个平台的潜力并开发解决方案。万博 尤文图斯
今天,我们将讨论如何使用所有这些从在MATLAB中,由于GPU编码器的项目,你可以直接与所有通信,用整个软件栈,我们建立在杰森,和给你访问所有MATLAB。为了更深入地讨论这个问题,我将邀请阿维。
谢谢,阿米特。你们可能会问,我们如何定位Amit提到的这种神奇的硬件?接下来,我想介绍一款新产品,它是我们在9月份发布的17b版本,可以生成用于NVIDIA GPU的CUDA代码。它的工作方式是你使用MATLAB算法,你使用GPU编码器,这个新产品,它会给你CUDA代码。
它不仅提供了CUDA代码,还提供了粘合的C和c++代码来将其拼接在一起。它以并行的形式部署在不同的CUDA内核上到你的GPU内核上以及C和c++代码实际上运行在这些soc的ARM Cortex部分上。那么为什么要使用GPU编码器呢?如果你正在进行深度学习,GPU Coder的性能比TensorFlow等艺术库快7倍。
如果你在做计算机视觉算法,传统的计算机视觉,我们认为只用常规的MATLAB或C代码就能达到700x的速度。对于信号处理应用,我们看到高达20倍的加速。所以,一句话,为什么要使用GPU编码器?的性能。
GPU编码器有多快?所以我们做了一些内部基准测试,我们对一些标准的计算机视觉算法进行了基准测试,比如SURF特征提取,立体视差等等。我们发现,与优化的C代码相比,速度提高了几个数量级。
那么让所有这些工作的工作流程是什么呢?你从MATLAB算法开始。这通常是一个函数引用。这是你最好的参考。你用MATLAB设计你的算法。我在之前的演讲中给你们展示了很多。
现在,一旦你想部署或测试部署,你总是可以在桌面GPU上测试部署。在这种情况下,它是特斯拉一代的GPU核心。你可以使用GPU编码器来创建独立的CUDA代码,然后在MATLAB中测试它通过调用它作为一个MEX,我马上会给你们演示这个。
然后,您实际上可以将CUDA代码与MATLAB分开,将其集成在C ++应用程序中,并进行部署集成测试。当您对此感到满意时,您实际上可以采取该代码并将其部署到Jetson平台上,实际上在GPU上运行它。那么这个工作流程是什么样的?
所以鉴于深度学习是真正推动gpu背后的利益,我将向您展示深度学习的Hello World应用程序,这是做一个叫做AlexNet 1000类图像分类使用网络,这是一个受欢迎的研究网络,成立于2012年。让我放一下那个视频。
你可以看到我们在用相机拍照。我们正在以适合的方式调整它的大小——这将与AlexNet一起工作。我们正在对它的运行速度进行基准测试。现在,这是在桌面GPU上运行的。你可以看到它以200 FPS的速度运行,相当快了。
但如果我们想生成代码,我们到应用程序库,我们选择GPU编码器应用程序。我们告诉它我们想从哪个函数生成代码-这是AlexNet预测函数。既然MATLAB是松散类型的,我们实际上必须告诉它输入大小,因为c++和CUDA不是松散类型的。
我们说,好的,这是一个单一的,它是一个227 × 227的,它是一个RGB图像,所以我们有三个通道。完成之后,我们点击Next。再次点击下一步。要求它生成一个MEX文件,这样我们就可以在MATLAB中测试它。t表示生成的c++代码。完成之后,你会得到这个很好的报告你可以将你的跟踪代码与MATLAB代码进行比较。你可以看到你有一个C代码的混合,然后调用CUDA,所以你可以看到生成CUDA代码的CU文件。
所有这些都遵循相同的代码生成工作流,如果你用过MATLAB Coder,它遵循相同的工作流。GPU编码器是建立在MATLAB编码器的基础上,生成C和c++代码。你可以看到这是我们刚生成的MEX文件。
现在让我们看看它运行得有多快。因此,我们将predict函数替换为MEX生产函数,让我们运行整个脚本。现在你可以看到它明显快了很多。现在它可以上升了,我想它的峰值达到了500帧每秒,这显然是我们在桌面GPU上运行速度的两倍当连接到MATLAB时。
我之前展示的例子都是在桌面GPU上运行的,但是如果你想要瞄准Amit提到的Jetson,你需要做什么呢?所以你需要做两个很小的改变。您需要将构建类型从MEX更改为静态库,并使用Jetson工具链进行交叉编译。这些都是Amit提到的优化库。
当你完成之后,你可以看到这实际上是将它部署到Jetson上的工作流。你可以看到它在低功耗的嵌入式Jetson板上以30 FPS的速度运行。同样的,也是在Jetson董事会上运行的AlexNet网络。
我知道早些时候,我做了一些广泛的声明,你使用GPU编码器,你使用MATLAB来提高性能,让我给你们展示一些基准。所以只是为了确定你正在看的东西。你在x轴上看到的是批量大小。这就是我们通过深层网络的图像的数量。
在y轴上,这是吞吐量,这是每秒的帧数,这是网络每秒能够处理的图像数量。如果你仔细看,我想指出几件事。首先,仅仅是MATLAB桌面,也就是绿色条,运行速度明显快于其他库,如Caffe和TensorFlow,特别是在批处理规模较大的情况下。
然而,GPU编码器的编译代码在任何批处理大小上都比任何其他框架都要快。我们得到了同样的性能提升。现在,因为我们在嵌入板上运行,我们无法在Jetson上运行所有其他库。
然而,c++版本的Caffe占用的空间相当小——我们可以在Jetson上运行它。如果你看看基准,当批大小为1时,性能接近,但随着批大小的增加,你通过网络传递更多的图像,GPU编码器明显比c++ Caffe更快。
需要注意的是,当我们进行基准测试时,它们都调用相同的库。他们在呼叫相同版本的cuDNN等等,在董事会上。所以你可能会怀疑,你可能会问,为什么它比那些有很多开发人员的开源深度学习框架更快?
所以有一些原因。首先,开源深度学习框架,他们做了很多不同的事情。他们做培训,他们有支持可视化,不同的数据类型等等。万博1manbetx他们也有Python的开销。如果您使用的话,请说明TensorFlow,您将拥有也运行的Python开销。
在这个例子中,MATLAB Coder或GPU Coder生成的代码只是部署特定深度神经网络的数学运算,使用非常特定的数据类型。所以这真的减少了开销,提高了效率,这就是我们得到的性能。另一个我们得到性能的原因是我们链接到所有最高效的库,而不仅仅是Amit提到的软件堆栈。除了用于深度学习的cuDNN,我们还链接到fft的优化库,求解器,用于数学运算的BLAS等。
现在GPU编码器是一个新产品,所以如果你之前没有用过,那么有很多例子可以帮助您了解如何使用GPU编码器进行基准测试,我们刚刚向Simulink集成到了,并执行了许多万博1manbetx不同的图像处理和计算机视觉应用程序。最后,在我们打开这个问题之前,我们希望你带走的是,在17B的GPU编码器中,随着我们用AMIT的团队完成的工作,你可以很容易地瞄准Jetson来自matlab的Tx2。而且,对于嵌入式部署,将为您提供深入学习的最佳表现。
现在我们在深度学习展台有一些演示。如果您想就如何整合这个工作流进行更多讨论,以及如何将MATLAB代码转换为CUDA代码,我们很乐意回答任何问题。英伟达的员工也同意给任何注册Jetson TX2的人打五折。所以如果你看到有人在展位,就告诉他们你在找TX2的折扣码,然后我们会发给你。这是最后一行。我想我们还有时间提问。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。