超节点与AI算力集群:从通信域到工程落地的完整解析
2026/9/14 22:43:27 网站建设 项目流程

在AI算力集群相关的话题里,超节点可能是被误解最多的一个词。我录视频那几天,评论区问得最多的一句就是:超节点和一个AI算力集群到底什么关系?是不是把一堆GPU塞进同一个机柜就叫超节点?这期视频脚本因为时长限制剪掉了很多内容,这篇就把逻辑线补完整。文章适合正在做大模型训练基座、算力平台选型,或者被老板问“我们到底要不要上超节点”的朋友,我会尽量把概念、参数和工程经验放在一起讲,免得大家看完一堆名词还是不知道怎么落地。

先说结论:超节点不是一个简单的硬件“大盒子”,而是把通信、故障和调度三个维度同时收窄到一个范围内的资源域。理解这一点,比记住任何参数都重要。

1. 超节点和AI算力集群:先把这组关系拆干净

1.1 从“一台GPU装不下”说起

大模型训练之所以需要多卡,本质是单卡显存放不下权重和中间激活。比如一个130B稠密模型,BF16权重就超过260GB,单张80GB显存的卡连权重都塞不下,更别提反向传播还要存中间激活。于是大家开始把模型“切”开,放到多张卡上并行计算。可模型一切开,新的问题立刻出现:每张卡算完自己的那部分,必须把结果同步给其他人,否则下一层没法继续算。

这就是通信问题。早期多卡靠PCIe互联,带宽几十GB/s,跨服务器靠万兆网卡,延迟和带宽都远不够用。后来英伟达在机内做了NVLink,跨机用InfiniBand,才算把分布式训练真正跑起来。但随着模型规模从百亿涨到万亿,一种新矛盾出现了:即使有NVLink和IB,跨服务器通信仍然太慢。于是大家开始想,能不能把几十块甚至上百块GPU用极高带宽连接成一个“超级GPU”,让整个训练框架把它当成一台巨型设备来用。这个“超级GPU”,就是超节点的雏形。

需要特别说明的是,超节点不是软件里随便定义一个概念,而是一个真实的硬件与系统组织形态。它的核心特征是:内部通信带宽远高于对外带宽,内部故障会产生大范围连带影响,调度器通常把整个域当作一个整体资源来申请和释放。后面我会逐个展开。

1.2 超节点的三种定义法

我给“超节点”下过三个不同角度的定义,分别对应网络、故障和调度,在实际工程中三者缺一不可。

从通信域看,超节点是Scale-up域,也就是节点内/机柜内的高速互联域。在这个域里,每张GPU之间都有很高带宽的通道,典型如NVLink域。对外则通过少量Scale-out端口连接其它超节点。一个直观例子是英伟达GB200 NVL72机柜,72颗GPU通过NVLink背板全互联,双向聚合带宽约130TB/s,单卡对外NVLink带宽约1.8TB/s,而跨超节点走的是400G甚至800G交换网络,单项带宽只有几十GB/s量级。两者差一个数量级以上,这就是“内部”和“外部”的本质区别。

从故障域看,超节点意味着这些硬件通常共享同一套供电、散热和机柜管理域。说直白点,机柜里某一排供电模块或者某一块背板挂了,整个超节点内的GPU都会同时掉线。这个性质决定了上层软件必须按超节点粒度做故障隔离和任务恢复。

从调度域看,调度系统不会把一个超节点拆成若干个零散GPU随便分给不同任务,而是倾向于把一整个超节点(或其中连续的大块资源)分配给一个大作业。资源粒度变大,调度就变粗,多租户混部也变得更难。这三个定义合在一起,才构成“超节点”的完整画像。

1.3 AI算力集群:超节点的“放大版”

AI算力集群不是简单地把很多服务器堆在一起,而是由多个超节点通过高速Scale-out网络连接起来的整体系统。每个超节点内部负责高通信密度的计算,多个超节点之间负责数据并行、流水线并行或专家并行等通信密度较低的协同。

一个常用的类比是物流园区。超节点像园区里一条高度自动化的分拣线,线上各个工位之间传送带速度极快,零件在工位之间流转几乎没有等待。AI算力集群则是整个园区,分拣线之间用货车和主干路连接,跨线的物流速度肯定比线内慢,但胜在可以无限扩建。

很多人会问:为什么不能把整个集群做成一个超节点?答案是成本和物理约束。要做到任意两张GPU之间高带宽全互联,线缆和交换机的数量会随GPU数量平方级增长。几千卡规模下,全网状拓扑的线缆成本和功耗高到无法接受,所以现实世界只能用“局部高带宽+全局低带宽”的分层结构。超节点和集群不是对立关系,而是两个不同层级的资源组织形态。

2. 拆开AI算力集群:三类网络和一个故障域

2.1 不要把所有“网络”混为一谈

做AI基础设施经常遇到新人把“网络”当成一个笼统概念。实际上,一个AI算力集群里至少有三类网络,职责完全不同。

网络类型典型技术典型带宽延迟量级覆盖范围
Scale-up域NVLink、背板铜缆单GPU 1.8TB/s左右亚微秒级超节点内部
Scale-out域InfiniBand、RoCE单端口400G/800G1-2微秒级超节点之间
存储网络并行文件系统、NVMe over Fabric聚合数百GB/s到数TB/s毫秒级全集群

Scale-up域解决的是“模型切分后的高频同步”,Scale-out域解决的是“多超节点协同”,存储网络解决的是“数据喂给GPU”。这三者的带宽、延迟和成本差异非常巨大。很多集群跑不快,不是因为GPU不够,而是三类网络的性能配比不对,尤其是Scale-out收敛比设计不合理,导致跨节点通信被打满。

2.2 为什么集群拓扑常用胖树而不是全网状

如果学习过传统数据中心网络,会对“胖树”或者Clos拓扑非常熟悉。AI算力集群的Scale-out域绝大多数也采用这类拓扑,而不是把所有交换机做成一整张全网状。

根本原因还是连接数爆炸。N个节点要全互联,需要N(N-1)/2条链路,1000个节点就是接近50万条逻辑连接。即便用大容量交换机构建两层Clos,线缆数量也是惊人的。胖树的思路是:任何两台服务器之间不一定有直达链路,但都可以通过交换网络经过有限跳数完成通信。同时通过ECMP等价多路径或自适应路由,把流量分担到多条上行链路,让聚合带宽尽量接近无收敛。

超节点内部之所以能用“小全网状”,是因为规模被限制在几十到几百颗GPU,且使用背板、铜缆等极短距离互联。一旦跨越到上千卡,拓扑就必须回到树形或网状混合结构。理解这个边界,就能理解为什么超节点的“内部带宽”和集群的“外部带宽”永远不可能做到同一水平。

2.3 故障域:决定运维和软件设计的基本参数

故障域是我在视频里讲得最“用力”的一个点,可还是有人忽略。超节点内共享供电、散热、管理面,这意味着它既是高带宽域,也是高影响域。

举个例子,一个由32个NVL72机柜组成的集群,如果其中一个机柜因为液冷管路故障整体下线,直接影响的是72颗GPU。如果这72颗GPU正好都在同一个大型MoE训练任务里,调度器必须立刻启动弹性恢复或者断点续训,重新分配任务。一次故障可能让上亿参数规模的训练进度回退几十分钟,这在训练周期以月计的工况下是不能接受的。

所以现在的超节点设计都在努力缩小故障粒度。有的把机柜拆成多个独立供电域,有的把背板互连做成冗余双平面,还有的在软件层做机制。故障域决定了上层作业的容错策略,也决定了集群的可用性上限。选型时只看“多少卡”不看故障域,后期运维一定会吃苦头。

3. 算清通信账:超节点为什么是并行策略的最优解

3.1 三种并行策略的通信画像

大模型分布式训练常用的并行策略,按通信特点可以分成几类。数据并行(DP)是每张卡保存完整模型副本,只同步梯度,通信量相对小,但同步频率高。流水线并行(PP)是把模型按层切开,不同卡负责不同层,通信发生在层与层之间,频次较低但每次都要等对方算完。张量并行(TP)是把某一层的权重切到多张卡上,每次前向和反向都要对中间结果做聚合,通信频率极高、数据量也大。专家并行(EP)在MoE模型中非常常见,token要动态路由到不同专家所在的GPU,本质是All-to-All通信,模式更随机。

从通信压力看,TP和EP是高强度通信场景,PP和DP相对温和。超节点存在的核心意义,就是把通信强度最高的那部分并行维度,牢牢限制在高带宽域内。

3.2 一个7B模型的量级感受

光说“通信量大”不够直观,我们算一笔账。假设一个7B模型,hidden size是4096,上下文长度是4096,精度用BF16。在一次前向传播中,某个Transformer层的张量并行all-reduce操作,需要同步的张量大小大约是seq_len×hidden_size,也就是4096×4096个元素,每个元素2字节,约32MB。

一次all-reduce看起来不大,但一层的多个算子都要做,80层Transformer累积起来,每个micro batch的通信量很容易涨到几十GB量级。这里还有个容易忽略的点:all-reduce在不同拓扑下的实际传输开销不同。如果这组TP并行的8张卡都在同一个超节点内,走NVLink的带宽可以达到几百GB/s以上;如果这8张卡被分散到不同超节点,走400G网络和交换机,即使无收敛,实际端到端带宽也就几十GB/s,通信时间可能相差一个数量级。

这就是为什么TP维度绝对不能跨超节点跑的深层原因。模型算法会为了TP的通信强度而把这个维度缩得越来越小,但缩到8卡或16卡时,超节点刚刚好能包住。

3.3 从模型倒推超节点规模

超节点该做多大,不是厂商拍脑袋定的,而是由目标模型的并行策略倒推出来的。实操中的判断顺序是:先确定主流模型用的TP、PP、EP大小,再反推超节点内至少应该容纳多少张GPU。

举个例子,如果主要训练7B到13B稠密模型,业界常用TP=8,那么超节点至少要有8张GPU在同一个高带宽域内。为了给PP和DP留空间,很多集群会选择16卡或32卡作为超节点单元。如果要训练万亿参数MoE,专家并行EP可能达到64或128,那么一个超节点最好能覆盖一个完整的EP组,否则token在跨节点路由时会产生大量All-to-All流量,训练效率大幅下降。

选型时还有一个容易被忽略的点:并行策略不是静态的,同一个集群可能要跑不同大小的模型。超节点规模一旦固定,就只能通过软件调度去迁就。所以现实中“超节点越大越好”的想法并不成立,关键看它能不能覆盖你最重要的通信维度。

4. 主流超节点长什么样:从NVLink域到机柜级系统

4.1 从八卡DGX到七十二卡机柜

超节点这个概念在GPU集群里其实早就存在。早期DGX A100或者DGX H100,一台8卡的服务器通过NVLink全互联,在那个年代就是一个“微型超节点”。8卡NVLink域给TP=8的任务提供了非常理想的通信环境。

后来模型变大,8卡不够装一层巨型权重,大家开始把TP扩展到16、32甚至更多。这就要求高带宽域覆盖更多GPU。英伟达在GB200 NVL72上给出的方案是:72颗GPU做成一个大的NVLink域,内部用背板铜缆全互联,整体对外表现为一台逻辑GPU。单卡1.8TB/s的NVLink带宽,任意两卡之间也有约900GB/s的直接通道,这个数字远高于任何Scale-out网络能提供的带宽。

我整理了常见形态的对比,方便理解:

形态GPU规模内部互联方式典型带宽特征主要问题
单机8卡DGX8卡NVLink+NVSwitch单卡600GB/s(H100)规模太小,大型模型放不下
机柜级NVL7272卡NVLink背板全互联单卡1.8TB/s,全域约130TB/s故障域大,供电散热复杂
云厂商自研超节点64到384卡不等私有协议/PCIe/CXL/光交换单卡数百GB/s到数TB/s生态依赖,软件适配成本高

4.2 NVL72为什么把规模定在72

很多人好奇,为什么NVL72偏偏是72颗GPU,而不是64或者128?从公开信息看,这个数字是供电、散热、背板信号完整性和计算需求综合权衡的结果。

72颗GPU对应一个机柜或两个机柜单元的供电能力。满负荷下,这些GPU的功耗非常高,必须用液冷才能把热量导出去。背板铜缆在机柜内短距离传输信号,72卡全互联的走线和信号完整性已经非常复杂,再往上加卡,背板层数、线缆密度和散热设计难度都会急剧上升。

另外,从大模型推理部署角度看,72卡把数千亿参数的稠密模型在FP8精度下几乎可以完整放入显存,推理时单次请求就能覆盖全部参数,不需要跨机拆分权重,这对推理延迟是质的改善。所以NVL72的“72”不是一个理论最优值,而是一个工程最优解。

4.3 其他路线和自研超节点

不是只有英伟达在做超节点。国内头部云厂商和芯片厂商也陆续发布了自己定义的超节点产品,思路基本一致:用高密度的自研互联协议,把几十到几百颗加速卡组合成一个高带宽域。有的强调存算分离,有的强调CXL内存池化,有的则把多个训练框体通过私有协议组成逻辑超节点。

选择不同路线的核心考量是生态匹配度。英伟达的优势在于NCCL、CUDA等软件栈成熟,上层框架改动小;自研方案的挑战在于通信库、集合通信算法和调度器都要重新适配,短期收益不见得能覆盖迁移成本。但从长期看,只要大模型训练对通信的依赖不变,围绕超节点形态做软硬件协同设计,方向一定是成立的。

5. 从规划到验收:搭建AI算力集群的工程账本

5.1 需求估算不要拍脑袋

很多团队规划集群时,老板给一句“我们要训练130B模型”,然后就开始数卡。这里其实有一个可以快速估算卡时需求的公式:总计算量约等于6×模型参数量×训练token数。这个6来自一次前向+一次反向过程中的前向计算、反向激活计算和梯度更新比例。

拿130B模型、1.4万亿token举例,粗略计算是6×130e9×1.4e12,约等于1.09e24 FLOPs。假设用H100 SXM,BF16稠密算力约989TFLOPS,训练MFU按40%算,有效算力约395TFLOPS。如果准备1000张卡跑一个月,总计算量约1000×395e12×30×86400,大概1.02e24 FLOPs。四舍五入,1000卡跑一个月可以完成一轮1.4T token的130B模型训练。

这个估算会随着MFU、并行策略、通信开销、故障恢复时间变化。但它能帮你快速判断“需要多少卡、租多久、大概多少预算”。MFU是模型FLOPs利用率,代表的是“理论算力里实际用于模型计算的比例”,正常大集群训练MFU能做到35%到50%已经算不错。规划时留出20%-30%的冗余,否则一旦出现故障和重试,交付时间很容易失控。

5.2 网络和存储的常见坑

第一个坑是只算端口速率,不看实际通信模式。400G端口只是链路速率,实际集合通信中,all-reduce要经过多轮消息聚合,报文大小、拥塞控制、路由算法都会影响最终吞吐。建议在规划阶段就用真实模型做一次小规模压测,而不是拿峰值带宽来推算。

第二个坑是存储带宽跑不满。很多人以为训练数据读到GPU很快,实际上大规模跨节点训练时,每个Step都要把几千个样本从存储系统拉出来增强预处理。如果存储聚合带宽不够,GPU就会等数据,MFU直线下降。更隐蔽的是checkpoint带来的写放大,训练过程中定期保存权重,一次checkpoint就能产生几百GB甚至数TB的写入。多个任务同时保存时,存储很容易打满。常用的做法是分布式内存检查点或者异步保存,把写入压力从聚合存储上卸掉。

第三个坑是软件栈版本匹配。网络驱动、通信库和框架版本不一致,会让通信性能出现非常奇怪的问题。验收前先固定一套经过验证的软件栈,再做基准测试,能省掉大量排错时间。

5.3 上线前必须做的验证

分享几个我们上线前一定会做的验证项。

通信测试。用NCCL的all_reduce_perf这类工具跑不同消息大小的集合通信,对比多卡跨机实际带宽是否接近理论值。如果带宽长期低于70%的理论峰值,优先怀疑网络收敛比、路由哈希冲突或者驱动配置。

稳定性和功耗测试。跑一个持续几小时的小规模训练任务,观察GPU功耗、温度是否稳定、有没有降频。很多液冷机柜早期会出现温度不均,导致部分GPU降频,整体性能被拖垮。

故障恢复演练。把某几张GPU用软件方式模拟故障,观察作业能否及时迁移或恢复,断点续训的时间是否在可接受范围。故障演练不是可选动作,是必须动作。没有验证过的故障恢复机制,在真实训练跑了一个月之后第一次触发时,大概率会出事故。

6. 超节点会不会吃掉整个集群:边界与趋势

6.1 全网超节点不现实

每次讲超节点,都有人说:既然超节点内部通信这么快,那干脆把所有GPU都做一个超节点算了。这个想法目前看还是太天真。全互联的线缆成本、交换机端口密度、背板信号完整性和功耗都不可能在没有物理上限的情况下无限扩张。哪怕光交换技术慢慢成熟,也只能把部分动态拓扑做进去,把整个集群动态变成一个超节点,还非常遥远。

更现实的方向是分层架构上做“部分动态化”。比如用光交换机在分钟级重新配置Scale-out域的连接关系,让跨超节点通信量较大的任务临时获得更优的拓扑路径。这个方向已经在一些头部云厂商的实验集群里出现,但距离大规模商业化还有距离。

6.2 超节点给调度带来的麻烦

超节点资源粒度变大,对调度系统是个不小的挑战。一个小作业如果申请不满一个超节点,剩下的碎片资源可能很难再分给另一个作业,毕竟跨超节点通信性能差很多。多租户场景下,A团队的一个任务占了大半个超节点,B团队的任务往往只能在剩余小半块里做性能打折的运行。

解决思路之一是超节点内分时复用,让多个任务的通信流量错峰;思路之二是在软件层引入更细粒度的“逻辑超节点”,把物理超节点划分成多个互不干扰的逻辑域。但这样做的代价是需要更复杂的调度和网络隔离能力。未来谁能把超节点调度做顺,谁就更有可能把集群利用率提上去。

6.3 未来形态会继续分化

我个人的判断是,超节点这个形态会继续分化出多个分支。训练超节点会继续追求更大、更全互联的高带宽域,以覆盖TP和EP的大规模扩展;推理超节点则会更加关注长上下文和批处理性能,比如一个超节点内尽量放下一整个大模型,减少跨节点传输;还会有内存超节点,把CXL和内存池化推到更极致,让计算卡和内存池的关系更灵活。

不管哪种形态,背后围绕的都是同一件事:让通信热点尽量落在高带宽域内,让慢速网络只承担低频、可容忍的流量。谁能更高效地做到这一点,谁就能在AI算力集群里拿到更好的性价比。

最后分享一个我自己常用的判断方法。遇到任何“要不要上超节点”“超节点做多大”的问题,先别急着看厂商白皮书,先把你计划跑的模型并行策略画成一张通信拓扑图,标出哪些通信是高频、大流量的,哪些是低频、小流量的。然后看这张图需要什么样的Scale-up域才能覆盖高频通信。这个分析做完,答案通常已经浮出水面了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询