第 4 章
AI 网络、存储与 DPU
第 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 有三种实现:
| 实现 | 跑在什么上 | 说明 |
|---|---|---|
| InfiniBand | InfiniBand 专用网络 | 原生支持 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 核,能跑完整操作系统,承担整套基础设施服务 |
| SuperNIC | BlueField-3 的一个版本,专为 AI 计算网络的 GPU 间通信优化(Spectrum-X 用的就是它),主要负责东西向 |
简单区分:BlueField-3 DPU 管基础设施和南北向流量,BlueField-3 SuperNIC 管 GPU 之间的东西向流量。
速查
| 词 | 一句话 |
|---|---|
| 东西向 / 南北向 | 集群内部通信 / 外部进出流量,训练以东西向为主 |
| 四张网 | 计算、存储、带内管理、带外管理,物理隔离 |
| RDMA | 网卡直接读写远端内存,零拷贝、绕过内核和 CPU |
| RoCE v2 | RDMA 跑在以太网(UDP/IP)上 |
| GPUDirect RDMA / Storage | 网卡、存储直接读写 GPU 显存 |
| InfiniBand | 天生无损、集中管理、低延迟,训练集群主力 |
| PFC / ECN | 以太网实现无损的流控 / 拥塞通知 |
| Spectrum-X | NVIDIA 为 AI 优化的以太网平台 |
| SHARP | InfiniBand 交换机里做归约计算 |
| Leaf-Spine | 任意两点最多三跳的两层拓扑 |
| 轨道优化 | 各机第 N 张卡接第 N 台 leaf,同号 GPU 一跳可达 |
| 并行文件系统 | 条带化分散存储、元数据分离,高并发共享 |
| DPU / BlueField | 带 Arm 核的网卡,卸载、加速、隔离基础设施工作 |
| DOCA | BlueField 的开发框架,相当于 DPU 的 CUDA |