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的精髓。
我是你们的网络工程师老张,咱们下章见。