Sarat Lingamarla,MathWorks公司
在这部影片中,你将通过一个常规工作流走了部署生成CUDA®从MATLAB深刻学习示例代码®到云中。
MATLAB提供了一个完整的集成工作流,供工程师和科学家在熟悉的开发环境中利用内置的高级应用程序和库探索、原型和部署深度学习算法。
使用GPU编码器™,可以生成CUDA代码的完整深度学习的应用程序,它包括围绕一个训练有素的网络并部署前处理和后处理逻辑任何云平台像AWS®,微软Azure®等等。
你好,我的名字是Sarat,今天我将向你展示如何使用GPU编码器生成CUDA代码,部署到亚马逊网络服务,并有一个简单的网络应用程序与生成的代码交互。
在我进入实际实现之前,这里是演示的结果。
一个简单的Web应用程序,在CUDA可执行文件运行使用GPU编码器,并允许用户创建上传图片,并使用预训练的深度学习网络对其进行分类:alexnet。
我可以使用这张从我们的文档页面显示pepper的图片,将它上传到服务器上,然后点击predict从Alexnet获得分类输出。
下面是演示的概述。我们正在使用GPU编码器生成CUDA代码。然后,我们将生成的源代码上载到Amazon S3 bucket,并使用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 bucket,我们就可以将codegen目录上传到S3 bucket了。
我们还需要指定的源代码的源和目标路径的YAML文件。
然后,我们将使用AWS命令行接口上传文件。
我们已经成功上传文件到Amazon S3。
现在我们将使用codedeploy将源代码部署到EC2实例中。
使用S3与codedeploy将使我们能够保持版本或我们的源代码版本,并有持续部署流水线。
假设你已经配置Codedeploy,我们将创建在codedeploy应用部署。
我们将在这里选择S3,输入S3存储桶的路径,然后单击create deployment。
现在,在新创建的EC2实例上有一个codegen目录,位于Codedeploy YAML文件中提到的路径中。
我们将使用部署的源代码来生成可执行文件。
为此,我们将在make文件中更新源代码的路径并运行它。
然后,我们将使用NVIDIA CUDA编译器从这个静态库生成可执行文件。
您现在有一个CUDA可执行文件在云中的GPU上运行,并允许您使用分类图像alexnet。
通过访问下面的文件交换链接,您可以按照本视频中介绍的步骤进行操作。
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。
本网站使用cookies改善您的用户体验,个性化内容和广告,并分析网站流量。如您继续使用本网站,即表示您同意我们使用cookies。请参阅我们的隐私政策以了解更多有关cookies及如何更改您的设置。