1、InfiniBand概述:从HPC到AI算力集群,为什么需要InfiniBand?

各位同学,咱们今天聊聊InfiniBand。说实话,这玩意儿在圈子里火了二十多年了,从最早的超级计算机互联,到现在AI大模型训练集群,它一直是那个「闷声发大财」的角色。

我刚开始接触InfiniBand是在2008年,那时候还在做高性能计算(HPC)的存储系统。当时就觉得,这网络怎么这么「轴」——非要搞一套自己的协议栈,跟以太网完全不一样。后来踩了不少坑,才慢慢理解它设计的精妙之处。

1.1 从HPC说起:算力饥渴的根源

咱们先想想,为什么会有InfiniBand这种东西?

说白了,就是「算力饥渴」逼出来的。早期的科学计算,比如天气预报模拟、基因测序、石油勘探,单台服务器的算力根本不够用。怎么办?把成百上千台服务器连起来,一起算。

但问题来了——你连起来的方式不对,算力就白搭了。

举个例子:你有一千台服务器,每台算力100分。理论上总算力是10万分。但如果你网络延迟高、带宽低,服务器之间互相等数据,实际能用的可能只有5万分。这就是所谓的「并行效率」问题。

我记得在2012年帮一个气象局搭集群,他们原来用千兆以太网跑MPI程序,128个节点跑一个48小时的天气预报模型,结果网络瓶颈导致计算时间拖到了72小时。后来换成InfiniBand QDR(40Gbps),直接降到50小时以内。嗯,这就是差距。

1.2 以太网为什么不行?

你可能会问:以太网不是一直在进步吗?10G、25G、100G、400G,带宽也不差啊。

对,带宽是上去了。但问题不在带宽,在「行为模式」。

以太网是「尽力而为」的传输——数据包发出去,能不能到、什么时候到,全看网络心情。丢包了?重传。拥塞了?排队。这种机制在网页浏览、视频播放场景下没问题,但在HPC和AI训练里,就是灾难。

为什么?因为HPC和AI训练用的是MPI(消息传递接口)或者类似的同步通信模式。所有节点必须「步调一致」——你等我算完,我等你发数据。任何一个节点慢了,整个集群都得等它。

以太网的丢包重传,会导致某个节点突然延迟暴增。其他节点干等着,算力白白浪费。我见过一个极端案例:某互联网公司用RoCE(RDMA over Converged Ethernet)跑AI训练,丢包率只有0.1%,但训练效率直接掉了40%。

你想想看,0.1%的丢包,在传统网络里根本不算事。但在同步通信场景下,就是致命的。

核心观点:InfiniBand不是简单的「更快的网」,而是从设计之初就为「无丢包、低延迟、高带宽」这三个目标服务的专用网络。

1.3 InfiniBand的三大杀手锏

那InfiniBand到底强在哪?我总结三点:

  • 无丢包传输:InfiniBand的链路层流控机制(后面章节会细讲),能保证数据在传输过程中绝不丢包。不是「尽量不丢」,而是「绝对不丢」。这是硬件级别的保证。
  • 极低延迟:InfiniBand的端到端延迟可以做到1微秒以下。以太网即使加上RoCE,通常也在5-10微秒。别小看这几微秒,在百万亿次计算中,每次通信省几微秒,累积起来就是几小时甚至几天。
  • 高效的RDMA:InfiniBand原生支持RDMA(远程直接内存访问)。说白了,就是一台服务器可以直接读写另一台服务器的内存,不需要经过CPU、操作系统、协议栈。数据从网卡直接到应用内存,零拷贝。

我曾经帮一个基因测序公司调优,他们用InfiniBand EDR(100Gbps)跑GATK流程。原来用NFS挂载存储,数据读取要经过文件系统、TCP/IP、内核,延迟在毫秒级。换成InfiniBand RDMA后,延迟降到微秒级,整个流程快了3倍。

1.4 AI算力集群:InfiniBand的新战场

这几年AI大模型火了,InfiniBand又迎来了第二春。

为什么?因为AI训练和HPC本质上是一回事——都是「算力饥渴」+「同步通信」。你训练一个千亿参数的模型,需要成百上千张GPU卡协同工作。每张卡算完一个batch,就要把梯度同步给其他卡。

这个同步过程,就是AllReduce操作。如果网络延迟高、带宽低,GPU就在那里干等。NVIDIA的DGX系列、HGX系列,标配就是InfiniBand。为什么不用以太网?因为算力太贵了,GPU一秒几万块钱,网络不能成为瓶颈。

我记得2023年帮一个互联网大厂搭AI集群,他们一开始想省钱用100G以太网+RoCE。结果跑GPT-3级别的模型,通信开销占了总时间的30%以上。后来换成InfiniBand HDR(200Gbps),通信开销降到5%以下。嗯,省下来的GPU时间,够再训好几个模型了。

个人建议:如果你正在搭建AI训练集群,预算允许的话,直接上InfiniBand。RoCE虽然便宜,但调优成本高,而且在大规模集群下稳定性不如InfiniBand。我见过太多「省钱买以太网,最后花更多钱调优」的案例了。

1.5 InfiniBand的演进路线

InfiniBand从诞生到现在,经历了几个关键阶段:

代际 速率 推出时间 典型应用
SDR 2.5 Gbps 2001年 早期HPC集群
DDR 5 Gbps 2005年 科学计算
QDR 10 Gbps 2008年 气象、石油
FDR 14 Gbps 2012年 大型HPC
EDR 25 Gbps 2015年 AI训练初期
HDR 50 Gbps 2018年 AI大模型训练
NDR 100 Gbps 2021年 超大规模AI集群

注意,这里的速率是单通道的。InfiniBand通常用4x链路,所以实际带宽要乘以4。比如HDR 4x就是200Gbps,NDR 4x就是400Gbps。

我个人觉得,InfiniBand的演进速度其实比以太网快。以太网从10G到100G用了十几年,InfiniBand从QDR到NDR只用了13年。而且每一代都在延迟、可靠性、管理性上做优化。

1.6 为什么不是所有场景都需要InfiniBand?

说了这么多好处,也得泼盆冷水。InfiniBand不是万能的。

它的成本高——交换机、网卡、线缆都比以太网贵不少。而且生态相对封闭,主要靠Mellanox(现在被NVIDIA收购了)一家供应。如果你只是做普通的Web服务、数据库、视频流,以太网完全够用,没必要上InfiniBand。

我曾经帮一个电商公司做技术选型,他们想用InfiniBand做Redis集群的互联。我说别闹了,Redis的延迟敏感度没那么高,千兆以太网都够用,上InfiniBand纯属浪费钱。

避坑指南:不要为了「炫技」而用InfiniBand。它的优势只在「同步通信、大规模并行计算」场景下才能发挥出来。如果你的应用是异步的、容忍丢包的、对延迟不敏感的,以太网是更经济的选择。

1.7 本章小结

好了,咱们捋一下这章的核心:

  • InfiniBand诞生于HPC对「无丢包、低延迟、高带宽」的极致需求
  • 以太网的「尽力而为」机制在同步通信场景下是致命短板
  • InfiniBand的三大优势:无丢包、低延迟、原生RDMA
  • AI大模型训练让InfiniBand焕发第二春,成为GPU集群的标配网络
  • 不是所有场景都需要InfiniBand,选型要结合实际需求

下一章,咱们会深入InfiniBand的链路层流控机制,看看它是怎么做到「绝对不丢包」的。嗯,这部分有点硬核,但理解了它,你就掌握了InfiniBand的精髓。

我是你们的网络工程师老张,咱们下章见。