在 Batch 池中使用 RDMA 或 GPU 实例
注意
本文引用了 CentOS,这是一个接近生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指导。
若要运行某些 Batch 作业,可以利用专为大规模计算设计的 Azure VM 大小。 例如:
要运行多实例 MPI 工作负荷,请为远程直接内存访问 (RDMA) 选择具备网络接口的 HB、HC、NC 或 ND 系列或者其他大小。 这些大小均连接到用于节点间通信的 InfiniBand 网络,可加快 MPI 应用程序的速度。
对于 CUDA 应用程序,可选择包含 NVIDIA Tesla 图形处理单元 (GPU) 卡的 N 系列大小。
本文介绍了在 Batch 池中使用 Azure 的某些专用大小的指南和示例。 有关规格和背景的信息,请参阅:
注意
某些 VM 大小在创建批处理帐户的区域中可能无法使用。 若要检查大小是否可用,请参阅可用产品(按区域)以及选择 Batch 池的 VM 大小。
依赖项
Batch 中计算密集型大小的 RDMA 或 GPU 功能仅在某些操作系统中支持。 这些 VM 大小支持的操作系统只是可用于虚拟机创建的操作系统的其中一部分。 根据创建 Batch 池的方式,可能需要在节点上安装或配置额外的驱动程序或软件。 下表总结了这些依存关系。 有关详细信息,请参阅链接的文章。 有关配置 Batch 池的选项,请参阅本文后面部分。
Linux 池 - 虚拟机配置
大小 | 功能 | 操作系统 | 所需软件 | 池设置 |
---|---|---|---|---|
NC24rs_v3 * | RDMA | Ubuntu 22.04 LTS 或 基于 CentO 的 HPC (Azure 市场) |
Intel MPI 5 Linux RDMA 驱动程序 |
启用节点间通信,禁用并发任务执行 |
NCv3 系列 | NVIDIA Tesla GPU(因系列而异) | Ubuntu 22.04 LTS 或 CentOS 7.3 或 7.4 (Azure 市场) |
NVIDIA CUDA 或 CUDA Toolkit 驱动程序 | 空值 |
*支持 RDMA 的 N 系列大小还包含 NVIDIA Tesla GPU
Windows 池 - 虚拟机配置
大小 | 功能 | 操作系统 | 所需软件 | 池设置 |
---|---|---|---|---|
NC24rs_v3 * | RDMA | Windows Server 2016、2012 R2 或 2012(Azure 市场) |
Microsoft MPI 2012 R2 或更高版本,或 Intel MPI 5 Windows RDMA 驱动程序 |
启用节点间通信,禁用并发任务执行 |
NCv3 系列 | NVIDIA Tesla GPU(因系列而异) | Windows Server 2016 或 2012 R2(Azure 市场) |
NVIDIA CUDA 或 CUDA Toolkit 驱动程序 | 空值 |
*支持 RDMA 的 N 系列大小还包含 NVIDIA Tesla GPU
池配置选项
在为 Batch 池配置专用 VM 大小时,有若干选项来安装所需软件或驱动程序:
对于虚拟机配置中的池,请选择预先配置的 Azure 市场 VM 映像,其中包含预安装的驱动程序和软件。 示例:
适用于 Linux 或 Windows 的 Data Science Virtual Machine - 包括 NVIDIA CUDA 驱动程序
适用于 Batch 容器工作负载的 Linux 映像,还包括 GPU 和 RDMA 驱动程序:
创建自定义 Windows 或 Linux VM 映像,其上安装了 VM 大小所需的驱动程序、软件或其他设置。
从压缩的驱动程序或应用程序安装程序创建 Batch 应用程序包。 然后,配置 Batch 以将此包部署到池节点并在创建每个节点时安装一次。 例如,如果应用程序包是安装程序,请创建一个启动任务命令行,以在所有池节点上静默安装该应用。 若工作负载取决于特定的驱动程序版本,请考虑使用应用程序包和池启动任务。
注意
启动任务必须使用提升的(管理员)权限运行,且必须待其运行成功。 长时间运行的任务将增加配置 Batch 池的时间。
示例:Windows NC VM 池上的 NVIDIA GPU 驱动程序
若要在 Windows NC 节点的池上运行 CUDA 应用程序,需要安装 NVDIA GPU 驱动程序。 以下示例步骤使用应用程序包来安装 NVIDIA GPU 驱动程序。 如果工作负载取决于特定的 GPU 驱动程序版本,则可以选择此选项。
- 从 NVIDIA 网站下载 Windows Server 2016 上的 GPU 驱动程序的安装程序包 - 例如,版本 411.82。 使用短名称(如 GPUDriverSetup.exe)在本地保存文件。
- 为程序包创建 zip 文件。
- 将程序包上载到 Batch 帐户。 有关详细步骤,请参阅应用程序包指南。 指定应用程序 ID(如 GPUDriver)和版本(如 411.82) 。
- 通过 Batch API 或 Azure 门户,在虚拟机配置中创建具有所需节点数和规模的池。 下表显示了使用启动任务静默安装 NVIDIA GPU 驱动程序的示例设置:
设置 | 值 |
---|---|
映像类型 | 市场 (Linux/Windows) |
发布者 | MicrosoftWindowsServer |
产品 | WindowsServer |
Sku | 2016-Datacenter |
节点大小 | NC6 标准 |
应用程序包引用 | GPUDriver,版本 411.82 |
启用了启动任务 | True 命令行 - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s" 用户标识 - 池自动用户、管理员 等待成功 - True |
示例:Linux NC VM 池上的 NVIDIA GPU 驱动程序
若要在 Linux NC 节点的池上运行 CUDA 应用程序,需要从 CUDA Toolkit 安装必要的 NVIDIA Tesla GPU 驱动程序。 以下示例步骤使用 GPU 驱动程序创建和部署自定义 Ubuntu 22.04 LTS 映像:
部署运行 Ubuntu 22.04 LTS 的 Azure NC 系列 VM。 例如:在美国中南部区域创建 VM。
使用 Azure 门户、连接到 Azure 订阅的客户端计算机或 Azure 本地 Shell 将 NVIDIA GPU 驱动程序扩展添加到 VM。 或者,按照以下步骤连接到 VM 并手动安装 CUDA 驱动程序。
按照步骤为 Batch 创建 Azure Compute Gallery 图像。
在支持 NC VM 的区域中创建 Batch 帐户。
通过 Batch API 或 Azure 门户,使用自定义映像创建具有所需节点数和规模的池。 下表列出了映像的示例池设置:
设置 | 值 |
---|---|
映像类型 | 自定义映像 |
自定义映像 | 映像名称 |
节点代理 SKU | batch.node.ubuntu 22.04 |
节点大小 | NC6 标准 |