主要内容

本页采用了机器翻译。点击此处可查看英文原文。

NVIDIA GPU Cloud 上适用于 NVIDIA DGX 的 MATLAB 深度学习容器

注意

从 MATLAB® 2024b 版本开始,MATLAB 深度学习容器不再受支持于 NVIDIA® 容器注册表。请改用 MATLAB 深度学习容器在 Docker Hub 上

通过在 MATLAB 深度学习容器中训练神经网络,加速您的深度学习应用程序。该容器专为充分利用高性能 NVIDIA GPU 而设计。您可以通过 Web 浏览器或 VNC 连接远程访问 MATLAB 深度学习容器。

MATLAB 深度学习容器镜像包含 MATLAB 及一系列 MATLAB 工具箱,这些工具箱是深度学习的理想选择(详见其他信息)。

本指南将指导您在 NVIDIA DGX 平台上运行云端 MATLAB 桌面环境。MATLAB 深度学习容器镜像简化了这一流程,该镜像是一个托管于 NVIDIA GPU Cloud 的 Docker® 容器镜像。该容器镜像可在 NVIDIA GPU Cloud 容器目录中获取。

要求

要使用 MATLAB 深度学习容器镜像,您需要:

  • 部署安装了 Docker 和 NVIDIA Docker 的 DGX 系统。有关如何配置您的 DGX 系统的更多信息,请参阅准备 DGX 系统

  • 满足以下条件的 MATLAB 许可证:

    • 适用于容器中安装的所有 MathWorks® 产品。您可通过 MATLAB 云端深度学习试用版获取 MATLAB 深度学习容器中产品的试用许可。

    • 关联到一个 MathWorks 帐户

    • 已配置为在云端使用。个人许可证和全校许可证已完成配置。其他许可证类型,请联系您的许可证管理员。您可以通过查看您的 MathWorks 帐户来识别您的许可证类型和管理员。管理员可咨询管理网络许可证

  • 若您使用的是并发许可证类型,则在运行容器时必须提供网络许可证管理器的端口号和 DNS 地址。在启动容器时,向 docker run 命令添加以下形式的选项:

    -e MLM_LICENSE_FILE=27000@MyLicenseServer

拉取容器镜像

拉取容器镜像会将该镜像下载到 Docker 主机上,即运行容器的机器。您只需拉取容器镜像一次。

您可以从 NVIDIA GPU Cloud Container Catalog 中复制容器镜像发布的拉取命令。在“标签”部分中,找到您要运行的容器镜像版本。在“提取”列中,点击图标复制 docker pull 命令。该命令的格式为:

docker pull nvcr.io/partners/matlab:r20XYz
其中标签 r20XYz 必须替换为具体的 MATLAB 版本名称,例如 r2020a。请确保 pull 命令的最后部分与您要使用的 MATLAB 版本相匹配。

使用 PuTTY 或其他 SSH 客户端,从您的客户端计算机通过 SSH 连接到 Docker 主机。将 docker pull 命令粘贴到您的 SSH 客户端中,并在 Docker 主机上运行该命令。您无需登录 NVIDIA 容器目录即可拉取容器镜像。

运行 docker pull 命令将把 MATLAB 容器镜像下载到主机上。下载并提取大型容器镜像可能需要一些时间。

运行容器

使用以下命令运行 MATLAB 深度学习容器:

nvidia-docker run -it --rm -p 5901:5901 -p 6080:6080 --shm-size=512M nvcr.io/partners/matlab:r20XYz

请确保 run 命令的最后部分与您要使用的 MATLAB 版本相匹配。

选项 -p hostport:containerport 将容器内部端口映射到 Docker 主机上的端口,以便您能够连接到容器桌面。容器中使用的端口为 5901(用于 VNC 连接)和 6080(用于 Web 浏览器连接)。若要在同一主机上部署多个容器,必须递增主机端口直至找到可用端口。例如:

-p 5902:5901 -p 6081:6080

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

在容器中运行 MATLAB

访问容器中的 MATLAB 有三种方式:

  • 使用 Web 浏览器连接到容器桌面并运行 MATLAB 桌面

  • 使用 VNC 连接到容器桌面并运行 MATLAB 桌面

  • 使用命令行界面运行 MATLAB

如果您的主机受防火墙保护,或无法通过 Web 浏览器或 VNC 访问容器桌面,可设置 SSH 隧道连接至容器(参阅创建与远程应用程序和容器的加密连接)。

通过 Web 浏览器连接

通过 Web 浏览器连接时,容器使用端口 6080。要连接,请使用以下 URL:

http://hostname:6080

hostname 是运行该容器的 MyCompanyDGX1 主机名称,例如 Docker。

您将看到 noVNC 的登录界面。点击连接。当系统提示输入密码访问桌面时,请使用密码:

matlab 

您可以通过桌面图标运行 MATLAB。使用您的 MathWorks 帐户登录。

若您无法使用 MathWorks 帐户登录,请确认您的帐户已关联到配置为云端使用的许可证。要查看,请访问许可证中心

通过 VNC 连接

通过 VNC 连接时,容器使用端口 5901。VNC 连接到主机端口映射至容器端口 5901 的主机显示器;例如,主机端口 5901 对应显示器 1

要连接,请使用您的 VNC 客户端连接至:

hostname:1

hostname 是运行该容器的 MyCompanyDGX1 主机名称,例如 Docker。

要登录并连接到容器桌面,请使用密码:

matlab 

您可以通过桌面图标运行 MATLAB。使用您的 MathWorks 帐户登录。

若您无法使用 MathWorks 帐户登录,请确认您的帐户已关联到配置为云端使用的许可证。要查看,请访问许可证中心

通过命令行界面运行 MATLAB

您可以使用以下命令在终端中通过命令行界面运行 MATLAB:

matlab 

请注意,此情况下不存在图形化桌面环境。

若您无法使用 MathWorks 帐户登录,请确认您的帐户已关联到配置为云端使用的许可证。要查看,请访问许可证中心

使用深度学习测试容器示例

MATLAB 支持使用多个 GPU 并行训练单个神经网络。要在 MATLAB 深度学习容器中启用多 GPU 训练,请使用 trainingOptions 函数将 'ExecutionEnvironment' 设置为 'multi-gpu'

使用 trainnet 函数训练您的网络。MATLAB 会在所有可用 GPU 上打开并行工作单元池。若需仅选择特定 GPU 进行训练,可使用 gpuDevice。有关详细信息,请参阅Select Particular GPUs to Use for Training (Deep Learning Toolbox)

要测试您的容器,可以运行 创建简单的深度学习神经网络以用于分类 (Deep Learning Toolbox) 示例。要尝试此示例,请双击 MATLAB 启动文件夹中的当前文件夹窗格中的文件 MNISTExample.mlx。要在所有可用 GPU 上运行此示例,请在 trainingOptions 函数中将 'ExecutionEnvironment' 设置为 'multi-gpu'

关闭容器会话

要关闭容器会话,请在容器终端中输入 exit。Docker 容器已停止并移除。关闭容器时,默认不会保存任何进程或数据,除非您已通过装载主机存储将数据保存至主机,具体操作请参阅与容器共享数据

其他信息

如何配置 MATLAB 深度学习容器?

您可以通过设置特定环境变量来配置和自定义 MathWorks 容器的行为。有关详细信息,请参阅配置容器

什么是 NVIDIA GPU Cloud?

NVIDIA GPU Cloud 是一个 Docker 容器镜像存储库,其镜像专为在高性能 NVIDIA GPU 上运行应用程序而设计。

MATLAB 深度学习容器中包含什么?

MATLAB 深度学习容器包含 MATLAB 及其他若干工具箱,这些工具箱在深度学习应用中颇具实用价值。

  • Computer Vision Toolbox™

  • GPU Coder™

  • Image Processing Toolbox™

  • MATLAB Coder™

  • Deep Learning Toolbox™

  • Parallel Computing Toolbox™

  • Signal Processing Toolbox™

  • Statistics and Machine Learning Toolbox™

  • Text Analytics Toolbox™

要在 MATLAB 深度学习容器中使用 GPU 进行深度学习,您必须持有适用于 MATLAB、Deep Learning Toolbox 和 Parallel Computing Toolbox 的有效许可证。访问容器的全部功能需要持有该容器中其他产品的有效许可证。

  • 若您未持有适用于 Deep Learning Toolbox 或 Parallel Computing Toolbox 的有效许可证,MATLAB 在启动时将显示警告,表明您无法使用这些产品。

  • 若您未持有适用于 MATLAB 深度学习容器中其他产品的有效许可证,MATLAB 将在启动时显示一条消息,告知您无法使用这些产品。

您可通过 MATLAB 云端深度学习试用版获取 MATLAB 深度学习容器中产品的试用许可。

此外,该容器还包含若干个预训练的深度神经网络 (Deep Learning Toolbox)

您可以将来自 TensorFlow™-Keras 和 Caffe 的网络及架构导入容器,可选择是否包含层权重。您还可以将训练好的网络转换为开放神经网络交换(ONNX)模型格式。

MATLAB 深度学习容器还包含:

通过将该软件部署在容器中,您可以避免安装和配置这些产品所需的设置时间。您可以同时运行多个容器,在同一时间或不同地点训练多个神经网络,并获得可重复的结果。

另请参阅

主题