利用MATLAB和NVIDIA NGC加速深度学习训练
介绍
科学家、研究人员和开发人员需要正确的软件工具来轻松构建、优化和测试他们的人工智能应用程序,而不必担心复杂的环境,相互依赖,以及运行应用程序所需的驱动程序。此外,他们需要扩展和扩展的能力,以减少网络培训时间,以支持快速迭代,并增加在本地或云中运行工作负载的灵活性。 为了简化整个过程,MATLAB与NVIDIA NGC合作,将其最新的软件集成并交付给gpu加速的人工智能工作流。 |
容器和NVIDIA NGC
容器是一个可移植的软件单元,它将应用程序及其所有依赖项组合到一个包中。它与底层主机操作系统无关,因此无需构建复杂的环境,并简化了应用程序开发到部署的过程。
的英伟达NGC目录是一个gpu优化的AI和HPC软件枢纽,包括集装箱、预训练模型、sdk和Helm图表,旨在简化和加速AI工作流程。对NGC上的容器进行常见漏洞和暴露(cve)扫描,并对Docker和Singularity运行时进行测试。它们在单gpu到多gpu到多节点系统上进行了性能测试。此外,这些容器非常便携,因为它们可以在本地、云上或边缘上运行。
使用MATLAB NGC容器训练计算机视觉模型
本指南将帮助您在Amazon EC2®P3实例的云中运行MATLAB桌面。但是,您可以在自己选择的CSP或本地系统上运行容器。
MATLAB深度学习容器可在英伟达NGC目录.
请注意MATLAB R2021a支持最金宝app新的NVIDIA安培图形处理器,并将很快在NVIDIA NGC目录中可用。 |
需求
- 亚马逊®Web服务帐户
- 对MATLAB深度学习容器中的产品有效的MATLAB许可证。下载188bet金宝搏有关MathWorks容器许可的详细信息,请参见配置MathWorks容器的许可证(云平台许可)。
- 您可以通过以下链接获得MATLAB深度学习容器中的产品的试用许可证下载188bet金宝搏云上深度学习的MATLAB试验.
在AWS上创建EC2实例
登录您的AWS管理控制台在“计算服务”下选择“EC2”。
图1:AWS管理控制台和服务列表
使用Amazon EC2控制台创建密钥对。确保您可以访问您的私钥,以便您可以登录到您的实例。
图2:EC2仪表板和键对的位置
图3:创建密钥对的对话框
请注意:在创建一对私钥时,请确保下载并注意私钥的位置,因为这是作为管理员连接到实例的唯一方法。 |
启动Docker主机实例
登录到您的Amazon Web服务控制台。从Services菜单中选择EC2。单击Launch Instance按钮。
图4:从EC2仪表板启动一个EC2实例
在“选择AMI”页面,导航到AWS Marketplace并搜索NVIDIA深度学习AMI。选择NVIDIA深度学习AMI,它是为使用NVIDIA NGC容器和最新的gpu而设计的,包括NVIDIA安培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主机实例,路径为Category: Session >主机名(或IP地址),并输入“ubuntu@”[您的公共IPv4 DNS地址]”
图9:为腻子终端
转到Category: Connections > SSH > Auth并导航到EC2实例的私钥位置。
图10:为PuTTY终端选择私钥对
要通过web浏览器进行连接,请设置一条到集装箱端口6080的隧道。
- 在Source port字段中,输入客户端机器上的空闲端口,例如6080。
- 在“Destination”字段中输入与容器端口6080连接的主机端口运行的容器,例如localhost:6080。注意,必须使用localhost而不是主机实例的名称。
要通过VNC客户机进行连接,请设置一条到集装箱端口5901的隧道。
- 在Source端口字段中,在客户机机器上输入一个从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命令。该命令的形式如下:
码头工人拉nvcr.io /合作伙伴/ matlab: r20XYz
的标签r20XYz必须用特定的MATLAB版本名称替换,例如r2021a.确保pull命令的最后一部分与您想要使用的MATLAB版本匹配。
图12:从MATLAB NGC目录页面复制docker pull命令
粘贴码头工人拉命令导入SSH客户机,并在EC2实例上运行该命令。您不需要登录到NVIDIA容器注册表来拉出容器映像。
图13:在PuTTY终端粘贴docker pull命令
运行码头工人拉命令将MATLAB容器映像(~9GB)下载到主机EC2机器上。下载和提取大型容器映像可能需要一些时间。每个EC2实例只需要提取一次容器。
运行MATLAB深度学习容器通过复制它从MATLAB NGC登陆页面:
图14:来自MATLAB NGC目录页面的docker运行命令
确保run命令的最后一部分与您想要使用的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 Account凭据
图18:web浏览器中的MATLAB桌面
运行一个MATLAB深度学习的例子
要测试容器,可以运行创建简单的深度学习网络分类(深度学习工具箱)的例子。要尝试此示例,请双击该文件MNISTExample.mlx在MATLAB启动文件夹的当前文件夹窗格中。
图19:运行MNIST示例来测试深度学习设置
MATLAB支金宝app持使用多个gpu并行训练单个网络。要在MATLAB深度学习容器中启用多gpu训练,请使用trainingOptions函数设置'ExecutionEnvironment”到“multi-gpu”。更多使用多个GPU的训练选项,请参阅基于MATLAB的多gpu深度学习.
观察实时图中网络的训练进度,以及验证的准确性、损失和时间。
图20:MNIST示例的培训进度图
恭喜你!您已经准备好使用MATLAB、NGC、AWS和NVIDIA gpu来学习更复杂的人工智能示例。
MATLAB访问文档找到许多深度学习的例子,并获得预先训练过的模型,以继续你的人工智能之旅。
请注意:您可以按照以下步骤在您选择的CSP实例以及本地系统上运行容器。 |
接下来是什么
开始下载MATLAB容器从NGC目录页.
看到MATLAB容器文档其他主题,如:
- 在NVIDIA DGX系统上运行MATLAB NGC容器
- 导入和导出数据到AWS S3
- MATLAB许可选项
- 在MATLAB NGC容器中安装工具箱和附加组件
- 使用VNC客户端连接到MATLAB
同时,一个新的MATLAB R2021a NGC容器将很快支持NVIDIA amere以及最新的CUDA金宝app 11.0和TensorRT 7.2。X库,请继续关注。
- 类别:
- 深度学习
评论
要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。