GPU 网络概览

AI Hypercomputer 使用由您选择的 GPU 机器类型决定的特定网络服务。了解这些服务后,您可以优化性能和有效吞吐量(机器学习训练任务的有效进度)。

按基础设施划分的网络

部署的网络架构取决于您选择的基础设施:通用 GPU 或集群化 GPU。

适用于通用 GPU 的标准 VPC 网络

通用 GPU 使用标准 Google CloudVPC 网络。

  • 架构:依赖于标准的多租户 VPC 设计,用于推理、模型部署和探索性研究。
  • 协议:通过 Google 虚拟 NIC (gVNIC) 使用 TCP/IP。

适用于集群化 GPU 的高性能网络

AI Hypercomputer 可帮助您部署使用分层导轨对齐网络架构的 GPU 机器。这种设计具有可预测的高性能连接性,可最大限度地减少通信开销,从而让 GPU 将更多时间用于计算而不是等待数据,从而直接提高有效吞吐量。

集群化 GPU 的导轨对齐排列包含三个组件:

  • 子区块:指一组物理上位于同一区块上的主机。 架顶式 (ToR) 交换机连接这些主机,从而在子区块内的任意两个 GPU 之间实现极其高效的单跃点通信。RDMA over Converged Ethernet (RoCE) 可实现这种直接通信。针对 Google 的导轨对齐拓扑进行了优化的增强型 NCCL 库可处理 GPU 通信集合。
  • 区块:通过非阻塞高速网络互连的子区块集合,可提供高带宽。区块内的任何 GPU 都可在最多两次网络跃点内访问。系统会公开块和子块元数据,以实现最佳作业布置。
  • 集群:由多个相互连接的区块组成,可扩展至数千块 GPU,满足大规模训练需求。不同区块之间的通信仅增加一个额外的跃点,即使在大规模部署的情况下,也能保持高性能和可预测性。为了实现智能的大规模作业布置,编排程序还可以使用集群级元数据。

GPU 间通信技术

GPU 机器结合使用多种技术,可为工作负载提供高性能、高吞吐量和低延迟。这些技术包括基于融合以太网的 RDMA (RoCE)、NVIDIA NIC,以及 Google 的数据中心级导轨对齐网络拓扑。

NVIDIA 的 NVLink 技术可在每台机器上的 NVIDIA NIC 之间创建超高速的直接数据路径。此外,RoCE 还支持在不同机器上的 GPU 之间实现高效的 RDMA。

GPU 网络栈

网络栈是软件协议、驱动程序和层的集合,它们协同工作以实现 GPU 间通信。不同的 GPU 机器类型使用不同的网络栈。下表定义了网络栈及其关联的机器类型:

网络栈 说明 GPU 机器类型
GPUDirect RDMA 在 GPU 与其他设备之间建立直接的数据交换路径。对于 A5X、A4X Max 和 A4X 实例,此网络栈使用 RoCE。如需了解详情,请参阅使用 GPUDirect RDMA 的集群配置选项。
GPUDirect-TCPXO 通过分流 TCP 协议,改进了 GPUDirect-TCPX。与 A3 High 相比,A3 Mega 机器类型使用 GPUDirect-TCPXO,网络带宽增加了一倍。如需了解如何在使用 GPUDirect-TCPXO 的 GKE 集群上最大限度地提高网络带宽,请参阅在标准模式集群中最大限度地提高 GPU 网络带宽,然后选择 GPUDirect-TCPXO 标签页。
GPUDirect-TCPX 通过允许数据包载荷直接从 GPU 内存传输到网络接口,提高网络性能。如需了解如何在采用 GPUDirect-TCPX 的 GKE 集群上最大限度地提高网络带宽,请参阅在 Standard 模式集群中最大限度地提高 GPU 网络带宽,然后选择“GPUDirect-TCPX”标签页。
标准 TCP/IP 适用于常规(标准)工作负载的基准网络协议。它提供高可靠性,并与标准 VPC 服务广泛兼容。
  • A2 (A100)
  • G4 (RTX PRO 6000)
  • G2 (L4)
  • N1(T4 或 V100)

主机和存储数据平面网络

多 GPU 实例需要不同的网络配置,以便与计算实例进行通信,以及进行 GPU 间的信息处理。

一个单独的网络路径(有时也称为南北网络或前端网络)负责处理与计算实例的所有通信。此类流量包括磁盘访问、虚拟机内部通信、互联网访问、Cloud Storage 访问、主机级管理操作,以及与其他 Google Cloud服务的通信。

为了管理此类流量,GPU 机器类型会使用 Google 虚拟 NIC (gVNIC);对于 A5X 和 A4X Max 裸金属实例,则会通过 Google Titanium NIC 使用 Intel Infrastructure 数据路径 Function (IDPF) 网络接口。Titanium NIC 可将网络处理任务从 CPU 分流,使 CPU 能够专注于处理工作负载。这种分离有助于确保通用主机流量和专用 GPU 间流量使用不同的物理接口,从而防止它们争用相同的系统资源。

多 VPC 环境

所有工作负载都在 Google Cloud的虚拟私有云 (VPC) 中运行。

高性能加速器机器采用专门的硬件设计,使用多个物理网络接口来处理不同类型的流量。为适配专门的硬件设计,无论您使用 Slurm、GKE 还是 Compute Engine 来运行工作负载,都必须部署在多 VPC 环境中。

具体的多 VPC 配置取决于 GPU 机器类型及其网络栈:

  • 采用 GPUDirect RDMA 的 A5X、A4X Max、A4X、A4 和 A3 Ultra:这些机器由两种类型的物理网卡提供支持:一种支持通用流量,另一种支持 RDMA 流量。映射到通用物理 NIC(nic0 接口和额外的网络接口)的网络接口会连接到常规 VPC 网络。映射到支持 RDMA 的物理 NIC 的 RDMA 网络接口会连接到具有 RDMA 网络配置文件的单独 VPC 网络,以使用 GPUDirect RDMA。这些机器类型总共最多使用三个 VPC 网络。对于单个子块内的 A5X、A4X Max 和 A4X 部署,多节点 NVLink 结构会处理 GPU 间通信,因此 RDMA VPC 网络是可选的。如需了解如何设置此网络基础设施,请参阅创建 VPC 和子网。

  • 采用 GPUDirect-TCPXO 的 A3 Mega:这些机器需要八个单独的 VPC 来连接 GPU NIC,这些 NIC 专用于高带宽通信。如需了解如何完成此配置的详细步骤,请参阅创建 VPC 和子网。

  • 采用 GPUDirect-TCPX 的 A3 High:这些机器需要四个单独的 VPC 来连接 GPU NIC,这些 NIC 专用于高带宽通信。如需了解如何完成此配置的详细步骤,请参阅创建 VPC 和子网。

这种多 VPC 配置有助于确保存储操作和其他系统任务不会与关键的 GPU 到 GPU 通信争用带宽。

您需要设置的多 VPC 网络配置因 GPU 机器类型而异。如需查看有关所有受支持 GPU 机器类型的网络排列、带宽速度和 NIC 的详细指南,请参阅网络和 GPU 机器。

下图展示了集群化 GPU 机器的网络架构,重点展示了通用流量和专用 GPU 到 GPU 流量在不同网络平面上的分离。

AI Hypercomputer GPU 机器的网络架构。如上图所示,这些 GPU 机器会针对不同类型的流量使用专用网络路径。通用流量(包括管理和存储访问)通过连接到 VPC 的 Google Titanium NIC 流动。高性能 GPU 间通信使用单独的网络接口和 VPC,并通过 RDMA 等技术进行优化,有助于确保 AI 和机器学习工作负载的高带宽和低延迟。

网络库和组件

为了最大限度地提高网络带宽和性能,以下网络库和组件可让您将 GPU 与 Google 的网络栈搭配使用:

  • gVNIC:Google 虚拟 NIC (gVNIC) 是专为 Compute Engine 设计的虚拟网络接口。gVNIC 可提升性能、提高一致性,并有助于减少邻居干扰问题。建议在所有机器系列中使用 gVNIC,并且它是主机间通信的推荐 vNIC。如需了解详情,请参阅使用 Google 虚拟 NIC。
  • NCCL:NVIDIA Collective Communications Library (NCCL) 为集体通信操作提供经过优化的原语。NCCL 专为使用 NVIDIA GPU 和网络的多 GPU 和多节点环境而设计。运行 NCCL 测试,以评估已部署集群的性能。如需了解详情,请参阅测试网络性能。
  • GKE 多网络:Pod 的多网络支持使您可以在 GKE 集群中的节点和 Pod 上启用多个接口。如需详细了解如何在 GPUDirect 环境中设置多网络,请参阅在 Standard 模式集群中最大限度地提高 GPU 网络带宽和使用 GPUDirect RDMA 的集群配置选项。

如需详细了解可用的软件栈,请参阅操作系统和 Docker 映像。

后续步骤