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