全文 - IMEX 第01节 -IMEX overview

概述

当今主流 AI 模型包含数十亿参数,这对模型训练和部署提出了巨大的计算、内存存储和系统连接需求。摩尔定律已无法跟上这些指数级增长的计算需求。为了克服摩尔定律的限制,企业采用 NVIDIA 方式的 AI,即通过 NVIDIA GPU 计算能力纵向扩展和横向扩展其多样化的 AI 和数据分析应用。每台 NVIDIA® DGX™ 和 NVIDIA HGX™ 系统的核心都是 NVIDIA NVLink™ 互联的 GPU,它们以 NVLink 速度相互访问内存。

多年来,NVLink 已成为单节点多 GPU 系统中事实上的高速、直接 GPU 到 GPU 互联标准。现在,许多这样的系统通过 InfiniBand 等高速网络互联,形成超级计算机。借助 NVLink 网络(也称为 NVLink 多节点),这些超级计算机系统通过 NVLink 互联,就像一个拥有共享内存的巨型加速器。


定义、首字母缩略语和缩写

缩写

定义

术语 定义
Node 或 Compute Node(节点或计算节点) 至少包含一个 GPU 的操作系统实例。
NVLink Domain 或 cluster(NVLink 域或集群) 可以通过 NVLink 通信的一组节点。
L1 NVSwitch Tray(L1 NVSwitch 托盘) NVIDIA NVSwitch™ 的第一级,例如 GPU NVLink 所连接的 NVSwitch。
NVLink Domain(NVLink 域) 可以通过 NVLink 通信的一组节点
FM(Fabric Manager) 结构管理器。NVLink 网络控制平面服务由 FM 服务提供
GFM(Global Fabric Manager) 全局结构管理器。启用了特定功能集的 FM 实例。每个 NVLink 域(集群)有一个 GFM。
LFM(Local Fabric Manager) 本地结构管理器。启用了特定功能集的 FM 实例,运行在每个 L1 NVSwitch 托盘或计算托盘上。
NVLSM(NVLink Subnet Manager) NVLink 子网管理器。源自 NVIDIA InfiniBand 交换机的一项服务,经过必要修改以有效管理 NVSwitch。
Access NVLink(接入 NVLink) GPU 与 NVSwitch 之间的 NVLink。
Trunk NVLink(主干 NVLink) NVSwitch 之间的 NVLink。
NVOS(NVIDIA Networking OS) NVIDIA 网络操作系统,以前称为 MLNX-OS。NVOS 用作 L1 NVSwitch 托盘的交换机操作系统。
NVLink ALI(Autonomous Link Initialization) 自主链路初始化。NVL4 中引入的一项功能,使 NVLink 训练可以由链路两侧异步执行,而无需增加软件栈协调。
IMEX Domain(IMEX 域) 通过 NVLink 连接的一组计算节点,这些节点上已安装并配置 nvidia-imex 服务,使其通过 nodes_config.cfg 相互通信

NVLink 多节点架构将多 GPU NVLink 点对点(P2P)编程模型从计算节点(或 OS 域)扩展到包含多个计算节点,其中每个节点运行独立的操作系统。NVLink P2P 允许多个系统直接通过 NVLink 访问彼此的 GPU 内存。在最一般的形式中,目标是使用一组独立的 L1 NVSwitch 交换机托盘连接多个计算节点。

图 1-1. 仅 L1 NVSwitch 域的 NVLink 网络

计算托盘

计算节点(或计算托盘)至少有一个 NVIDIA 数据中心 GPU,连接到 NVIDIA Grace™ CPU 或 x86 CPU。GPU NVLink 将连接到一组 L1 NVSwitch 交换机托盘,NVIDIA CUDA® 软件栈和 NVIDIA 节点间内存交换/管理服务(IMEX)运行在计算节点上。创建 NVLink 分区后,计算节点可以以裸机模式或虚拟化模式运行。

L1 NVSwitch 交换机托盘是一个独立的、基于 NVSwitch 的单元,旨在构建更广泛的 NVLink 网络拓扑。根据 NVLink 网络配置需求,该单元提供各种版本,每个版本具有特定数量的端口规格。例如,在专用于单级 L1 NVLink 连接的网络域中,所有 NVLink 端口都专门用于 GPU NVLink 连接。另一方面,在结合两个机架(背靠背)且带有 L1 到 L1 连接的 NVLink 网络域中,一半的可用端口用于 GPU NVLink 连接,另一半专用于与另一机架上的 L1 NVSwitch 托盘连接。

NVLink 机架交换机还包括以下功能:

  • 配备管理 CPU。
  • 使用 NVIDIA 交换机操作系统(NVOS)。
  • 提供传统的网络设备式接口,例如命令行界面(CLI)、JSON、RESTful 等,以方便生命周期管理和配置任务。

本节提供有关 NVLink 控制平面服务的信息。

使用第四代之前 NVSwitch 的系统

对于使用 NVIDIA 第三代 NVSwitch 的系统,NVLink 网络控制平面(SDN)服务由 Fabric Manager(FM)服务提供。在此模型中,FM 服务分为全局结构管理器(GFM)和本地结构管理器(LFM)角色。其中一个 L1 NVSwitch 交换机托盘运行 GFM 实例,其余 L1 NVSwitch 交换机托盘运行 LFM 实例。

使用第四代 NVSwitch 的系统

借助第四代 NVSwitch,NVIDIA 实现了跨 NVLink、InfiniBand 和以太网交换机的统一架构。由于这种集成,引入了一个名为 NVLink 子网管理器(NVLSM)的新控制平面实体,与 Fabric Manager(FM)一起工作。NVLSM 服务源自 NVIDIA IB 交换机,并经过必要修改以有效管理 NVSwitch。

在更高层次上,NVLSM 服务配置 NVSwitch 路由表,FM 处理 GPU 端路由、NVLink 配置,并提供分区管理 API。NVLSM 和 FM 之间的交互通过进程间通信(IPC)接口实现。

全局结构管理器

FM 配置 NVSwitch 内存结构,以在所有参与的 GPU 之间形成一个内存结构,并监控支持该结构的 NVLink。在高层,FM 具有以下职责:

  • 配置 NVSwitch 端口之间的路由(第四代 NVSwitch 之前)。
  • 设置 GPU 端路由/端口映射(如适用)。
  • 与 GPU 驱动程序协调以初始化 GPU。
  • 管理和分配地址空间给 GPU 以进行内存共享。
  • 监控结构中 NVLink 和 NVSwitch 的错误。

对于第四代 NVSwitch 之前的系统,GFM 获取所有本地结构管理器(LFM)节点的 IP 地址信息,并与每个 LFM 实例建立 TCP/IP 网络连接。GFM 使用此带外套接字连接将路由信息推送到每个 LFM 实例。

本地结构管理器

对于第四代 NVSwitch 之前的系统,LFM 实例运行在每个 L1 NVSwitch 托盘上。LFM 实例通过 NVSwitch 驱动程序与底层 NVSwitch ASIC 交互,并根据 GFM 的指示对交换机地址映射和路由信息进行编程。在运行时,LFM 根据 GFM 创建的 NVLink 分区维护访问控制位,读取 NVLink 和 NVSwitch 错误信息,并将这些信息中继给 GFM。

NVLink 子网管理器(NVLSM)源自 IB 网络,并添加了额外的逻辑来编程 NVSwitch 和 NVLink。在高层,在基于 NVSwitch 的系统中,NVLSM 提供以下功能:

  • 发现 NVLink 网络拓扑。
  • 为所有 GPU 和 NVSwitch NVLink 端口分配本地标识符(LID)。
  • 计算并编程交换机转发表。
  • 为 NVLink 分区编程分区密钥(PKEY)。
  • 监控 NVLink 结构的变化。

NVIDIA 交换机操作系统

L1 NVSwitch 交换机托盘附带 NVOS,配备可通过 SSH 或 Telnet 会话访问的行业标准 CLI。

在使用第四代之前 NVSwitch 的 L1 NVSwitch 交换机托盘上,NVOS 映像包括 LFM、GFM 服务和 NVSwitch 驱动程序来管理交换机。

在使用第四代 NVSwitch 的 L1 NVSwitch 交换机托盘上,NVOS 映像包括 NMX-Controller(NMX-C),这是一个用于管理交换机的结构 SDN 控制器应用程序。此 NMX-C 映像包括 GFM 和 NVSM 服务。作为机架上线过程的一部分,管理员必须启用并配置 NMX-C,使其仅在同一 NVLink 结构中的一个 L1 NVSwitch 交换机托盘上运行,以管理该结构中的所有交换机托盘。


本节提供有关 NVLink 网络服务器的信息。

NVIDIA GB200 NVL72

NVIDIA GB200 NVL72 机架规模架构是一个开放计算项目(OCP)开放机架 v3(ORv3)机架,有两种配置,最多支持 72 个 GPU。NVIDIA 参考设计提供单机架 36 个 GPU、双机架 72 个 GPU 或单机架 72 个 GPU 的选项。

一个 36-GPU 机架包含以下内容:

  • 9 个 2RU 计算托盘,每个托盘配备 2 个 Grace CPU 和 4 个 Blackwell GPU。
  • 9 个 1RU NVLink 交换机托盘,带有 18 个 OSFP 前面板接口。
  • 用于管理的 TOR 交换机。
  • 为所有托盘和交换机供电的电源架。

图 1-2 显示了单机架 36-GPU 配置和双机架 72-GPU 配置。

图 1-2. GB200 NVLink 机架配置

一个 72-GPU 机架包含以下内容:

  • 18 个 1RU 计算托盘,每个托盘配备两个 Grace CPU 和四个 Blackwell GPU。
  • 9 个 1RU NVLink 交换机托盘(无 OSFP 前面板接口)。
  • 用于管理的 TOR 交换机。
  • 为所有托盘和交换机供电的电源架。

图 1-4 显示了单机架 72-GPU 配置。

图 1-4. 单机架 72-GPU 配置


用于节点间内存共享的 NVIDIA 导入/导出服务

IMEX 服务支持在 NVLink 多节点部署中跨 OS 域进行 GPU 内存导出和导入(NVLink P2P)以及共享内存操作。

多节点内存共享模型

本节提供有关多节点内存共享模型的信息。

图 -. 多节点内存共享模型

在高层,这项工作涉及协调在每个计算节点自己的 OS 域中运行的 CUDA 进程。在一个节点上,CUDA 进程分配 GPU 内存并获取相应的可共享内存句柄。此分配和句柄创建会触发在导出节点上建立虚拟地址(VA)到物理地址(PA)到结构地址(FA)的映射。以下是该过程的概述:

  1. 对于导入,该进程使用 MPI/NCCL 与其他节点上的协调进程共享内存句柄。
  2. 在这些节点上,CUDA 进程提示 GPU 驱动程序使用接收到的句柄导入相关内存。
  3. 导入节点上的 GPU 驱动程序创建必要的内存对象并建立 VA 到 FA 的映射。
  4. 当导入进程访问 VA 地址空间时,导入节点上的 GPU 内存系统通过利用外部 GPU 识别相应的物理页表,并生成 NVLink 数据包以访问相关内存。

为了便于导入节点建立 VA 到 FA 的映射,需要一个能够在 OS/节点域之间通信的特权实体来从导出节点检索必要的内存映射信息。在更高层次上,IMEX 服务通过充当跨计算节点的内存导出和导入的编排器来发挥此功能。

以下是 IMEX 服务的一些关键特性:

  • 促进计算节点之间的内存共享。
  • 管理共享内存的生命周期。
  • 向 GPU 驱动程序注册内存导入/取消导入事件。
  • 不直接与 CUDA 或用户应用程序通信。
  • 使用计算节点的网络通过 TCP/IP 和 gRPC 连接跨节点通信。
  • 仅在计算节点上运行。

本指南概述了各种 IMEX 功能,面向多节点系统管理员。

注意: 在 NVLink 多节点集群中,在启动作业之前,请启动 IMEX 服务。如果 IMEX 服务未正确初始化,NVLink 多节点作业将失败。

相关推荐
浩浩测试一下1 小时前
Linux 底层知识点 1
linux·运维·服务器
物联网软硬件开发-轨物科技2 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
Escalating_xu2 小时前
【Linux 网络编程】TCP 跨平台实战:用 Windows 客户端访问 Linux 服务器
linux·服务器·网络
发量惊人的中年网工2 小时前
分公司访问总部ERP慢怎么办?SD-WAN组网的排查与验收要点
服务器·开发语言·php
海宇数据2 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化
翼龙云_cloud2 小时前
亚马逊云服务器服务代理商:Bedrock 实践经验 Serverless 架构下的 AI 自动化落地
服务器·架构·serverless·云计算·aws
忆挽篱笙歌3 小时前
环境变量,本地变量
linux·运维·服务器
是真的小外套3 小时前
2024年软考中级信息安全工程师|选择题考点+案例分析真题解析(含答案)
android·网络
码间留白4 小时前
手把手把 GitHub 推上阿里云 ECS:Actions CI/CD 全链路避坑实录(折腾好几天,到 2 分钟见绿)
运维·阿里云·ci/cd·docker·devops·github actions