第 4 章

AI 网络、存储与 DPU

·约 19 分钟

第 3 章讲到,一台机器内部的 GPU 用 NVLink 相连,跨机器就要靠网络,带宽差了一个数量级。这一章讲机器之间怎么连:网络怎么设计才能让 GPU 少等,数据怎么从存储喂进 GPU,以及 DPU 这种"网卡上的计算机"是干什么的。

AI 集群的流量有什么不一样

传统数据中心的流量以南北向为主:用户请求从外部进来,服务器处理完返回。流量由大量彼此独立的小连接组成,偶尔丢个包、慢一点,TCP 重传一下,用户基本感觉不到。

分布式训练完全不同:

  • 东西向为主:流量几乎都在集群内部的 GPU 之间,每一步训练都要做 all-reduce 同步梯度;
  • 同步等待:一步训练要等所有 GPU 的通信都完成才能进入下一步,最慢的那条链路决定整体速度,所以尾延迟比平均延迟更重要;
  • 少数巨大的流:通信集中在少量长时间、高带宽的连接上(大象流)。传统网络靠 ECMP 按哈希把流分散到多条路径,流的数量少时容易哈希冲突,几条大流挤到同一条链路上,其他链路却空着;
  • 带宽需求大:一台 DGX H100 光计算网络就有 8 × 400 Gb/s,合计 3.2 Tb/s。

推理的流量更接近传统模式,以南北向的用户请求为主。但大模型推理一个模型要跨多张卡甚至多台机器,内部同样有东西向通信。

一个集群里的四张网

第 3 章 DGX H100 的规格表里,计算、存储、管理各有各的网卡。DGX SuperPOD 参考架构把集群网络分成四张,物理上互相独立:

网络连接什么流量特点常用技术
计算网络(compute fabric)各节点的 GPU 之间训练时的集合通信,带宽最大、对延迟最敏感InfiniBand 或 RoCE,每卡一张 400 Gb/s 网卡
存储网络(storage fabric)计算节点与共享存储读数据集、写 checkpoint,突发的大块读写InfiniBand 或以太网,常用 RDMA
带内管理网络(in-band)节点、管理服务、外部网络SSH 登录、作业调度、拉镜像、访问外网以太网
带外管理网络(out-of-band)服务器 BMC、交换机管理口开关机、硬件监控、远程控制台1 GbE 以太网,与其他网络隔离

分开的好处:训练的集合通信不会被拉镜像、写 checkpoint 这类流量干扰;服务器操作系统死机、带内网络出故障时,还能通过带外网络远程救机器(第 7 章)。

RDMA:绕过 CPU 搬数据

传统网络的开销

普通的 TCP/IP 通信,数据要从应用的内存拷贝到内核缓冲区,经过内核协议栈处理,再交给网卡;接收端反过来再走一遍。每一步都要 CPU 参与,还有多次内存拷贝和中断。带宽到了几百 Gb/s,CPU 光处理网络就忙不过来,延迟也降不下去。

RDMA 做了什么

RDMA(远程直接内存访问)让网卡直接读写远端机器的内存:

  • 零拷贝:数据直接在两端的应用内存之间传输,不经过内核缓冲区;
  • 内核旁路:应用直接操作网卡,不走操作系统协议栈;
  • CPU 卸载:传输由网卡硬件完成,CPU 可以去干别的。

结果是延迟低到微秒级,CPU 占用几乎为零。

RDMA 有三种实现:

实现跑在什么上说明
InfiniBandInfiniBand 专用网络原生支持 RDMA,从设计上就是为它做的
RoCE以太网RDMA over Converged Ethernet。v1 只能在二层网络内用;v2 封装在 UDP/IP 里,可以跨三层路由,是现在的主流
iWARP以太网上的 TCP用得少,AI 集群里基本见不到

GPUDirect:连 GPU 这一跳也省掉

RDMA 省掉了 CPU,但如果数据在 GPU 显存里,普通做法仍然要先拷到主机内存,再由网卡发出去。NVIDIA 的 GPUDirect 系列技术把这一跳也省了:

  • GPUDirect P2P:同一台机器内,GPU 之间直接读写对方显存(走 NVLink 或 PCIe);
  • GPUDirect RDMA:网卡直接读写 GPU 显存,跨机器的 GPU 通信不经过主机内存;
  • GPUDirect Storage(GDS):存储(本地 NVMe 或远端存储)和 GPU 显存之间直接传数据,不经过 CPU 的中转缓冲区。

这些技术属于第 2 章提到的 Magnum IO。NCCL 在多机通信时会自动用上 GPUDirect RDMA。

InfiniBand 还是以太网

InfiniBand

InfiniBand(IB)是专为高性能计算设计的网络:

  • 天生无损:链路层用基于信用的流控,发送方确认接收方有空间才发,交换机不会因为缓冲区满而丢包;
  • 集中管理:由子网管理器(Subnet Manager)统一计算整个网络的路由,NVIDIA 的管理平台叫 UFM;
  • 自适应路由:拥塞时自动把流量换到空闲路径;
  • SHARP 网内计算:交换机本身能做一部分 all-reduce 的归约计算,数据在网络里就汇总好了,减少传输量。

速率代际:HDR 200 Gb/s → NDR 400 Gb/s → XDR 800 Gb/s,NVIDIA 对应的交换机系列是 Quantum-2(NDR)和 Quantum-X800(XDR)。

以太网与 RoCE

以太网的优势是普及:运维人员熟悉,设备多厂商可选,能和数据中心现有网络统一管理。问题在于标准以太网是有损的,缓冲区满了就丢包。RDMA 对丢包非常敏感,所以用 RoCE 要把以太网配置成无损网络:

  • PFC(基于优先级的流控):接收端缓冲区快满时,给上游发暂停帧,让它先停一停;
  • ECN + DCQCN(拥塞通知与拥塞控制):交换机在拥塞时给数据包打标记,发送端据此主动降速,尽量不触发 PFC。

这套配置调起来复杂,调不好会出现 PFC 暂停在网络里连锁传播、整片网络卡住的情况。

NVIDIA 的以太网方案叫 Spectrum-X:Spectrum-4 交换机配合 BlueField-3 或 ConnectX-8 SuperNIC,由交换机和网卡端到端协同做自适应路由和拥塞控制,目标是让以太网在 AI 场景下接近 InfiniBand 的表现。

对照

InfiniBand以太网(RoCE)
丢包链路层无损,天生不丢需要配 PFC、ECN 实现无损
延迟最低略高
管理子网管理器集中管理分布式,沿用以太网运维体系
生态基本是 NVIDIA 一家多厂商
运维人员需要专门技能普遍熟悉
典型场景大规模训练集群云厂商、希望统一网络的企业、推理集群

数据中心网络协议小结

协议 / 技术一句话
TCP/IP通用网络协议栈,可靠但 CPU 开销大
RDMA网卡直接读写远端内存,绕过 CPU 和内核
RoCE v2把 RDMA 封装在 UDP/IP 里跑在以太网上
PFC / ECN以太网实现无损的流控和拥塞通知
NVMe-oF通过网络访问远端 NVMe 硬盘,像本地盘一样用
VXLAN在三层网络上构建虚拟二层网络,多租户隔离常用,DPU 可以卸载

线缆上,机柜内短距离一般用铜缆(DAC),跨机柜用光模块和光纤。一个大集群的光模块数量以万计,布线本身就是工程量(第 5 章)。

网络拓扑:Leaf-Spine 与轨道优化

Leaf-Spine

现代数据中心的主流拓扑。服务器接叶交换机(leaf),每台 leaf 都连到所有脊交换机(spine):

  • 任意两台服务器之间最多经过 leaf → spine → leaf 三跳,延迟可预测;
  • 要扩容就加 leaf 和 spine,不用推翻重来;
  • leaf 的上行带宽等于下行带宽时,整个网络无阻塞(non-blocking),所有服务器同时满速通信也不会在中间拥塞。AI 计算网络一般按无阻塞设计。

轨道优化(Rail-Optimized)

在 leaf-spine 的基础上,AI 集群还有一个专门的接法:每台服务器的 第 N 张 GPU 的网卡都接到第 N 台 leaf 交换机,这一组叫第 N 条"轨道"(rail)。8 卡服务器就有 8 条轨道。

好处是:分布式训练里,不同服务器上编号相同的 GPU 之间通信最多(NCCL 的通信模式决定的),它们都挂在同一台 leaf 上,一跳就到,不用经过 spine。DGX SuperPOD 的计算网络就是这样设计的。

存储:别让 GPU 等数据

AI 工作负载怎么用存储

场景读写特点
训练读数据大量读,每个 epoch 把数据集读一遍;小文件多时随机读压力大
写 checkpoint定期把模型和优化器状态整体写盘,突发的大块写;大模型一次可达 TB 级
从 checkpoint 恢复训练中断后整体读回,越快恢复越少浪费 GPU 时间
推理加载模型服务启动或扩容时读取模型文件,影响冷启动速度

Checkpoint 对大规模训练尤其重要:几千张卡跑几周,中途难免有硬件故障,没有 checkpoint 就得从头来。写 checkpoint 时 GPU 往往在等,所以存储的写带宽直接影响训练效率。

存储分层

层代表特点用途
本地 NVMe计算节点里的 SSD(DGX H100 有 8 块做 RAID 0)最快,但只有本机能用,容量有限数据集缓存、临时文件
并行文件系统Lustre、IBM Storage Scale(原 GPFS)、WEKA、VAST、DDN高带宽、高并发,所有节点共享训练数据、checkpoint、代码
NFS普通网络文件共享简单,但并发和带宽上限低家目录、小规模集群
对象存储S3 及兼容存储容量大、便宜,按对象访问数据湖、原始数据、归档

并行文件系统是 AI 集群共享存储的主力。它把一个文件切成块,分散存到很多台存储服务器上(条带化),读的时候多台服务器同时出力;元数据(文件名、目录、权限)由单独的元数据服务器管理,不和数据读写抢资源。几百个计算节点同时读同一份数据集,带宽可以随存储服务器数量线性增加。

训练数据一般的流动方式:原始数据在对象存储里,处理好的训练集放在并行文件系统上,训练时再缓存到节点本地 NVMe。

DPU:把基础设施的活从 CPU 上拿走

要解决的问题

服务器 CPU 除了跑业务,还要处理大量"基础设施"工作:网络协议处理、虚拟交换机(云上每台虚拟机的网络都要经过它)、存储协议、加密、防火墙。网速到了几百 Gb/s,这些活会吃掉可观比例的 CPU 核。

在多租户的云环境里还有一个安全问题:这些基础设施软件和租户的程序跑在同一颗 CPU 上,租户一旦攻破操作系统,就可能碰到管理层。

DPU 是什么

DPU(数据处理单元)是一张"带计算机的网卡":高速网卡(ConnectX)+ 一组 Arm CPU 核 + 加密、压缩、存储等硬件加速引擎,自己跑一个独立的操作系统。NVIDIA 的产品是 BlueField,当前主力是 BlueField-3。它常和 CPU、GPU 并列,被称为数据中心的"第三颗处理器"。

DPU 带来的好处可以归成三类:

  • 卸载:网络、存储、安全处理从主机 CPU 挪到 DPU 上,CPU 核全部留给应用;
  • 加速:加密解密、数据包处理由专用硬件完成,比 CPU 软件快;
  • 隔离:基础设施的控制面跑在 DPU 上,和主机形成两个独立的信任域。主机被攻破也改不了 DPU 上的网络和安全策略,这是零信任架构和裸金属多租户的基础。

典型用法:

  • 网络:卸载虚拟交换机(OVS)、VXLAN 封装、负载均衡;
  • 存储:把远端的 NVMe-oF 存储虚拟成主机上的本地盘,主机感觉不到存储在远端;
  • 安全:线速的防火墙、入侵检测、数据加密;
  • 裸金属云:云厂商把整台物理机租给客户,管理和隔离全部由 DPU 负责。

在 DPU 上开发程序用 DOCA,NVIDIA 为 BlueField 提供的软件框架和 SDK,地位相当于 GPU 的 CUDA。

NIC、SmartNIC、DPU、SuperNIC

能做什么
普通网卡(NIC)收发数据包,少量固定的卸载功能(如校验和)
SmartNIC可编程的数据包处理,加速特定网络功能
DPU带通用 CPU 核,能跑完整操作系统,承担整套基础设施服务
SuperNICBlueField-3 的一个版本,专为 AI 计算网络的 GPU 间通信优化(Spectrum-X 用的就是它),主要负责东西向

简单区分:BlueField-3 DPU 管基础设施和南北向流量,BlueField-3 SuperNIC 管 GPU 之间的东西向流量。

速查

词一句话
东西向 / 南北向集群内部通信 / 外部进出流量,训练以东西向为主
四张网计算、存储、带内管理、带外管理,物理隔离
RDMA网卡直接读写远端内存,零拷贝、绕过内核和 CPU
RoCE v2RDMA 跑在以太网(UDP/IP)上
GPUDirect RDMA / Storage网卡、存储直接读写 GPU 显存
InfiniBand天生无损、集中管理、低延迟,训练集群主力
PFC / ECN以太网实现无损的流控 / 拥塞通知
Spectrum-XNVIDIA 为 AI 优化的以太网平台
SHARPInfiniBand 交换机里做归约计算
Leaf-Spine任意两点最多三跳的两层拓扑
轨道优化各机第 N 张卡接第 N 台 leaf,同号 GPU 一跳可达
并行文件系统条带化分散存储、元数据分离,高并发共享
DPU / BlueField带 Arm 核的网卡,卸载、加速、隔离基础设施工作
DOCABlueField 的开发框架,相当于 DPU 的 CUDA