Sarat Lingamarla, MathWorks
在本视频中,您将了解部署生成的CUDA的一般工作流程®代码取自MATLAB中的一个深度学习示例®到云上。
MATLAB提供了工程师和科学家去探索,试制,并内置有更高级别的应用程序和库部署一个熟悉的开发环境深度学习算法的完整集成的工作流。
使用GPU Coder™,您可以为完整的深度学习应用程序生成CUDA代码,该应用程序包括围绕经过训练的网络的预处理和后处理逻辑,并可部署到任何云平台(如AWS)®,微软Azure®等。
你好,我的名字是Sarat今天我将展示你如何生成使用GPU CUDA编码器的代码,将其部署到Amazon Web服务,并与生成的代码一个简单的Web应用程序进行交互。
在我进入实际实施,这里的演示的结果。
一个简单的web应用程序,运行在CUDA可执行程序上,该程序使用GPU编码器创建,允许用户上传图像,并使用预先训练的深度学习网络:alexnet对其进行分类。
我可以用这张图显示了从我们的文档页面辣椒,把它上传到服务器,并单击预测摆脱Alexnet输出的分类。
以下是演示的概述。我们正在生成使用GPU CUDA编码器的代码。然后,我们正在上传所生成的源代码,以亚马逊S3桶和将其部署到使用Amazon Codedeploy EC2实例或虚拟机。
一旦我们对EC2实例的源代码,我们可以建立一个使用NVIDIA CUDA编译器的可执行文件。
我会在几分钟内解释了其中的每个步骤更详细。
首先,我们将使用一个MATLAB函数来生成CUDA代码。
这是一个MATLAB函数,我写了修改一个深入学习的例子从我们的GPU编码器的文件。你可以在下面找到这个页面的链接。
在这个函数中,我们使用文件名输入读取图像,对图像进行预处理并将其输入到预先训练好的网络“alexnet”中,然后返回分类输出。
一旦我们创建了MATLAB函数,就可以使用单独的脚本生成静态库、动态库或可执行文件。在本例中,我们将生成一个静态库。
此外,我们还使用了packNGo功能打包的依赖关系为“imread”功能。
在这种情况下运行codegen命令将会给您一个包含所有依赖项的zip文件夹和一个包含生成代码的codegen文件夹。
解压并将zip文件夹中的所有文件复制到codegen目录。生成的代码将包含一个模板main。cu文件和相应的头文件。
我们需要修改这些文件,以接受一个文件名作为输入。使得所需的更改主文件后,我们就可以部署生成的代码到云中。
如果需要,还可以使用这个主文件将这个应用程序与现有代码集成。
接下来进入AWS部分的工作流程:
在这个演示中,我使用了来自Amazon Marketplace的AMI,因为它提供了在GPU上运行生成的代码所需的所有CUDA库。
我们也有更详细地描述了一些步骤的文件交换职位。
按照这里的步骤,您可以配置演示所需的所有AWS组件。
一旦你已经创建了一个EC2实例和S3桶,我们已经准备好了代码生成目录上传到S3桶。
我们还需要一个YAML文件来指定源代码的源和目标路径。
然后,我们将使用AWS命令行界面上传的文件。
我们已经成功地将文件上传到Amazon S3。
现在,我们将使用codedeploy到我们的源代码部署到一个EC2实例。
使用带有codedeploy的S3将允许我们维护源代码的版本或修订,并拥有一个持续的部署管道。
假设您已经配置了Codedeploy,我们将在Codedeploy中为应用程序创建一个部署。
在这里我们会选择S3,进入到S3存储的路径,然后单击创建部署。
现在,我们对我们的新创建的EC2实例代码生成一个目录,在Codedeploy YAML文件中提及的路径。
我们将使用已部署的源代码来构建可执行文件。
为了做到这一点,我们将更新make文件中源代码的路径并运行它。
然后,我们将使用NVIDIA CUDA编译器从这个静态库构建一个可执行文件。
现在你有了一个CUDA可执行文件,它在云计算的GPU上运行,允许你使用alexnet对图片进行分类。
你可以沿着访问以下文件交换链接在此视频中列出的步骤如下。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站表现。其他MathWorks国家站点不适合来自您所在位置的访问。
本网站使用Cookies来改善您的用户体验,个性化的内容和广告,并分析网站流量。通过继续使用本网站,您同意我们使用Cookie。请参阅我们的隐私政策要了解更多关于cookie和如何更改设置。