人工智能

应用机器学习和深度学习

使用MATLAB和NVIDIA NGC加速深度学习训练

这篇文章来自NVIDIA高级产品营销经理Akhil Docca和MathWorks人工智能合作伙伴经理Andy The

介绍

数据科学家、研究人员和开发人员需要合适的软件工具来轻松构建、优化和测试他们的人工智能应用程序,而不必担心复杂的环境。相互依赖,以及运行应用程序所需的驱动程序。此外,他们需要扩展和向外扩展的能力,以减少网络训练时间,实现快速迭代,并增加在本地或云中运行工作负载的灵活性。

为了简化整个过程,MATLAB与NVIDIA NGC合作,将其最新软件容器化并交付给启用gpu加速的AI工作流程。

容器和NVIDIA NGC

容器是一个可移植的软件单元,它将应用程序及其所有依赖项组合到一个单独的包中。它与底层主机操作系统无关,从而消除了构建复杂环境的需要,并简化了从应用程序开发到部署的过程。

NVIDIA NGC目录是一个gpu优化的AI和HPC软件中心,包括容器、预训练模型、sdk和Helm图表,旨在简化和加速AI工作流程。NGC上的容器扫描常见漏洞和暴露(cve),并在Docker和Singularity运行时进行测试。它们在单gpu到多gpu到多节点系统上进行性能测试。此外,容器非常便携,因为它们可以在本地、云上或边缘运行。

利用MATLAB NGC容器训练计算机视觉模型

本指南将帮助您在Amazon EC2®P3实例的云中运行MATLAB桌面。但是,您可以在您选择的CSP或您的内部部署系统上运行容器。

MATLAB深度学习容器可在NVIDIA NGC目录

请注意MATLAB R2021a支持最金宝app新的NVIDIA安培gpu,并将很快在NVIDIA NGC目录中提供。

需求

  • Amazon®Web服务帐户
  • 对MATLAB深度学习容器中的产品有效的MATLAB许可证。下载188bet金宝搏有关MathWorks容器许可的详细信息,请参见为MathWorks容器配置许可证(云平台授权)。

在AWS上创建EC2实例

登录你的AWS管理控制台并在“计算服务”下选择“EC2”。

图1:AWS管理控制台和服务列表

使用Amazon EC2控制台创建密钥对。确保您可以访问您的私钥,以便您可以登录到您的实例。

图2:EC2仪表板和密钥对的位置

图3:用于创建密钥对的对话框

请注意:在创建对时,请确保下载并记录私钥的位置,因为这是作为管理员连接到实例的唯一方法。

启动Docker主机实例

登录到您的Amazon Web Services控制台。从Services菜单中选择EC2。单击Launch Instance按钮。

图4:从EC2指示板启动EC2实例

在“选择AMI”页面上,导航到AWS市场并搜索NVIDIA深度学习AMI。选择NVIDIA深度学习AMI,该AMI专为NVIDIA NGC容器和最新的gpu(包括NVIDIA Ampere gpu)而设计。

图5:在AWS市场中找到NVIDIA深度学习AMI

图6:选择启用NVIDIA GPU的实例

请注意并非所有可用区都提供P3实例。可用区是在创建VPC时定义的。

在“配置实例”、“添加存储”和“添加标签”页面上,根据需要配置实例。如果需要,请在配置安全组页面上为您的实例选择或创建适当的安全组。

配置完成后,选择适当的密钥对选项并启动实例。确保您可以访问您的私钥,以便您可以登录到您的实例。

图7:为EC2实例选择公钥对

单击View Instances并在完成初始化后选择正在运行的实例。通过单击复制图标复制公共IPv4 DNS地址。

图8:从EC2指示板定位和复制公共IPc4 DNS

使用“PuTTY”连接EC2实例

SSH隧道在客户机和容器会话之间创建一个加密通道,以便所有通信都是安全的。您必须这样做才能访问在EC2实例中运行的容器的桌面。

使用PuTTY连接到您的Docker主机实例,进入“类别:会话>主机名(或IP地址)”并输入“ubuntu@”[您的公共IPv4 DNS地址]

图9:配置的主机名腻子终端

转到Category: Connections > SSH > Auth,并导航到EC2实例的私钥所在的位置。

图10:为PuTTY终端选择私钥对

如果要通过web浏览器连接,请建立到集装箱端口6080的隧道。

  • 在Source port字段中,输入客户端机器上的空闲端口,例如6080。
  • 在“目的”字段中输入连接的6080集装箱端口对应的主机端口运行容器例如,输入“localhost:6080”。注意,必须使用localhost,而不是主机实例的名称。

要通过VNC客户端进行连接,需要建立到容器端口5901的隧道。

  • 在Source port字段中,输入从5900开始的客户机上的空闲端口,例如5901。
  • 在“Destination”字段中输入在“Run the container”中所连接的5901端口对应的主机端口,例如“localhost:5901”。注意,必须使用localhost,而不是主机实例的名称。

图11:设置PuTTY终端的源端口和目的端口

如果在客户机机器上使用多个容器或运行VNC服务器,则必须增加客户机机器上的源端口,直到找到空闲端口,例如5902或6081。

单击“打开”,然后单击“是”,弹出“PuTTY安全警报”,因为它只是确认您想要连接到该主机。

从NGC目录中拉出并运行MATLAB容器

文件中复制容器映像发布的pull命令MATLAB登陆页在NVIDIA NGC目录。在Tags部分中,找到要运行的容器映像版本。在“Pull”列中,单击图标复制docker Pull命令。命令的形式是:

docker拉nvcr.io/partners/matlab:r20XYz

标签在哪里r20XYz必须替换为特定的MATLAB发布名称,例如r2021a。确保拉命令的最后一部分与您想要使用的MATLAB版本匹配。

图12:从MATLAB NGC目录页面复制docker pull命令

粘贴码头工人拉命令输入SSH客户端,并在EC2实例上运行该命令。您不需要登录NVIDIA容器注册表来拉取容器映像。

图13:在PuTTY终端中粘贴docker pull命令

运行码头工人拉命令将MATLAB容器映像(~9GB)下载到主机EC2机器上。下载和提取大型容器映像可能需要一些时间。每个EC2实例只需要拉一次容器。

运行MATLAB深度学习容器,从MATLAB NGC着陆页面

图14:来自MATLAB NGC目录页面的docker运行命令

确保运行命令的最后一部分与您想要使用的MATLAB版本匹配。

选项-p hostport:containerport将容器内部的端口映射到Docker主机上的端口,以便您可以连接到容器桌面。容器使用的端口为5901(用于VNC连接)和6080(用于web浏览器连接)。如果在同一个主机实例上部署多个容器,则必须增加主机端口,直到找到空闲端口为止。例如:

-p 5902:5901 -p 6081:6080

将docker pull命令粘贴到PuTTY中,并在EC2实例上运行该命令。您不需要登录NVIDIA容器注册表来拉取容器映像。

图15:在PuTTY终端中粘贴docker pull命令

MATLAB深度学习容器现在在您的EC2机器上运行。

有三种方法可以访问容器中的MATLAB,但我们将在本例中使用web浏览器。请参考文档如果您想使用命令行接口或VNC客户端访问MATLAB容器。

要使用web浏览器连接,请使用以下URL:

http://localhost:6080

注意,必须使用localhost,而不是主机实例的名称。

如果您增加了客户端端口安全地连接,请使用相应的主机端口号,例如6081。

您将看到一个noVNC的登录屏幕。单击连接。当系统提示您输入登录桌面的密码时,请使用以下密码:

matlab

登录你的MathWorks.com账号

通过使用桌面图标运行MATLAB,并使用MathWorks帐户登录。

图16:在web浏览器中从桌面上启动MATLAB

如果您无法使用MathWorks帐户登录,请检查您的帐户是否连接到为云使用配置的许可证。如欲查询,请浏览授权中心

图17:在提示符下输入您的MathWorks帐户凭证

图18:web浏览器中的MATLAB桌面

运行一个MATLAB深度学习的例子

要测试容器,可以运行为分类创建简单的深度学习网络(深度学习工具箱)示例。要尝试此示例,请双击该文件MNISTExample.mlx在MATLAB启动文件夹的当前文件夹窗格中。

图19:运行MNIST示例以测试深度学习设置

MATLAB支金宝app持使用多个gpu并行训练单个网络。要在MATLAB深度学习容器中启用多gpu训练,请使用trainingOptions设置的函数ExecutionEnvironment“to”multi-gpu”。有关使用多个GPU的更多训练选项,请参阅在多个gpu上使用MATLAB进行深度学习

在实时图中观察网络的训练进度,以及验证精度、损失和时间消耗。

图20:MNIST示例的训练进度图

恭喜你!您已准备好继续使用MATLAB, NGC, AWS和NVIDIA gpu进行更复杂的AI示例。

访问MATLAB文档找到许多深度学习的例子,并访问预训练的模型,继续你的人工智能之旅。

请注意您可以按照以下步骤在您选择的CSP实例以及您的内部部署系统上运行容器。

接下来是什么

开始下载MATLAB容器从NGC目录页

看到MATLAB容器文档对于其他主题,例如:

  • 在NVIDIA DGX系统上运行MATLAB NGC容器
  • 将数据导入和导出到AWS S3
  • MATLAB许可选项
  • 在MATLAB NGC容器中安装工具箱和附加组件
  • 使用VNC客户端连接到MATLAB

还有一个新的MATLAB R2021a NGC容器将很快支持NVIDIA Ampere以及最新的CUD金宝appA 11.0和TensorRT 7.2。X库,敬请关注。

|

댓글

■■■■■■■■링크大黄蜂:大黄蜂:大黄蜂:大黄蜂:大黄蜂