AI 集群该用 RoCEv2 还是 Infiniband
(本文首发于 知乎)
各大互联网公司基本上都在部署 RDMA 技术,目前主要的场景就是存储和 AI/HPC,主要分为两个技术路线,RoCEv2 和 Infiniband。
RoCEv2 是 RDMA over Ethernet,就是在传统的数据中心以太网络上面跑 RDMA 协议。Infiniband(IB)的历史就更长了,上世纪 80 年代的 HPC 高性能计算集群用的都是 IB。
RDMA 网卡目前的老大是 NVIDIA 收购的 Mellanox。可以说,RoCEv2 是社区版 RDMA,Infiniband 是企业版 RDMA。社区版的优势在于开放,可配置的东西多,但这也是它的缺点,只有网络专家才能玩得转。而且大规模 RoCEv2 集群还不是一个网络专家就能玩得转的,需要一个团队来搞定 PFC 风暴问题和网卡交换机各种奇奇怪怪的问题。当然,如果只有几台机器和一个交换机,网卡都是同一型号的,这种小规模集群用 RoCEv2 基本上也不会遇到什么问题。
RDMA 这个圈子很小,基本上都有一定的学术背景,如果对上述问题都没听说过,那还是老老实实用 IB 吧,稍微多花点钱,简单省事。我听说有的 AI 公司觉得只要买 A100/H100 就够了,连 SXM 版和 PCIe 版都分不清,也不知道需要买 IB 网卡和交换机才能实现大规模训练,以为用普通 10G 网络连起来就行,这种最好找一个卖 AI 集群解决方案的给配好 IB 网卡、交换机和网络拓扑,千万别自己逞能,别为了省钱去碰 RoCEv2。
OpenAI 的 GPU 集群目前用的大多数是 Infiniband,现在一些中小型 AI 公司用的也是 IB。大多数大型公司的新建 GPU 集群用的是 RoCEv2,因为这些大厂要支持万卡以上的规模,IB 在这种规模上 scale 不上去,而且这种规模的公司成本很重要。有些大厂都已经开始自研网卡了。另外一个原因就是大厂有专业的网络团队,IB 这么封闭的东西很难调优,这让这些网络专家们怎么调性能写 PPT 呀。
RoCEv2 和 Infiniband 两种技术具体对比如下:
RoCEv2 | Infiniband | |
---|---|---|
带宽 | 目前最高 200 Gbps | 目前最高 400 Gbps |
直连时延(RTT) | 1.6 us | 1.6 us |
单跳交换机时延(单向) | 500 ns | 100-150 ns |
经过 3 跳交换机的端到端时延(RTT) | 4.6 us | 2.5 us |
设备 top 厂商 | NVIDIA(Mellanox) | NVIDIA(Mellanox) |
设备成本 | 较低 | 较高 |
是否可以与以太网共用硬件 | 是 | 否 |
规模 | 可达整个数据中心数十万台服务器 | 最大万台左右服务器 |
流量控制 | 一般需要 PFC(需要管理员配置 PFC threshold) | Credit-based flow control(基本上不需要配置) |
拥塞控制 | DCQCN(注:老的 RoCE 卡拥塞控制很差) | 与 DCQCN 类似的 ECN-based 协议 |
多路径路由 | 根据源端口号 ECMP 随机选路,每条流仅走一条路 | 正常情况下与 RoCEv2 相同,故障情况下支持 adaptive routing 自动换路 |
丢包重传 | Go-back-N(注:很老的 RoCE 卡是 Go-back-0,很差) | Go-back-N |
运维难度 | 高,需要自己配置 PFC 阈值,解决故障的卡和交换机导致的 PFC 风暴问题,如果不是同一型号的网卡还需要解决互联互通问题 | 低,基本上免运维 |
适用场景 | 大规模互联网公司,大规模 AI/HPC 集群 | 中小规模 AI/HPC 集群 |
RDMA 的部署
RDMA 在大厂的部署非常多,有大量的学术论文。目前主要的场景就是存储和 AI/HPC。
微软
走的比较靠前的是微软,微软数据中心所有的服务器上都部署了 RDMA 网卡,组成 RoCEv2 网络,主要用于访问云存储,甚至同一 region 跨 AZ 的 100km 级别跨数据中心通信都用了 RDMA。目前 RDMA 流量已经超过传统以太网流量,占到整个数据中心流量的 70%。
微软的 RDMA 部署可参考白巍等几十位作者联名发表的 NSDI 2023 论文,在论文评审中得到所有评审专家的满分评价
APNet 2023 上的演讲 PPT
(包含了 NSDI 2023 的论文内容和微软一些其他的 RDMA 大规模部署研究,以及一些有待研究的未来方向)
微软在 RoCEv2 技术上有很多基础研究,包括:
2015 年的 DCQCN,如今成为 NVIDIA(Mellanox)网卡的标准拥塞控制协议:Congestion Control for Large-Scale RDMA Deployments
2016 年的 RDMA 大规模部署和 PFC 死锁等问题:RDMA over Commodity Ethernet at Scale
2016 年基于 FPGA 和 RDMA 芯片的自研网卡,组成数据中心加速平面:A Cloud-Scale Acceleration Architecture
可以说,目前国内大多数互联网公司做 RDMA 的都跟微软有千丝万缕的联系。
阿里
阿里在 RDMA 部署方面也有大量积累,发表了很多顶会论文。
比如阿里云存储部署 RDMA:When Cloud Storage Meets RDMA
阿里云存储的整体架构:From Luna to Solar: The Evolutions of the Compute-to-Storage Networks in Alibaba Cloud
拥塞控制:HPCC: High Precision Congestion Control
阿里还有个 eRDMA 产品,是云上弹性 RDMA,底层复用 VPC 网络:什么是eRDMA_云服务器 ECS-阿里云帮助中心
华为
华为在 RDMA 部署方面也有大量积累,有自研的 RDMA 智能网卡,在学术界也有很多成果:
比如 MasQ,基于 Mellanox 网卡做 RDMA 虚拟化
字节
字节在 RDMA 部署方面也有大量积累,最近也发了大量论文:
SRNIC: A Scalable Architecture for RDMA NIC
Collie: Finding Performance Anomalies in RDMA Subsystems
Hostping: Diagnosing Intra-host Network Bottlenecks in RDMA Servers
FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds