1 AI 集群网络要回答什么
把训练从 1 台服务器扩展到 8 台,首先增加的是设备,其次才是算力。每台机器上的加速器需要取得数据、交换训练中间结果、保存检查点,还要接受任务控制。如果计算芯片经常等待远端数据,新增机器就可能变成昂贵的等待席。AI 集群网络要回答的核心问题是:哪些数据需要跨机器移动,走哪条物理路径,以什么速度到达,发生拥塞或故障时如何识别影响。
先搭建本课的硬件场景:8 台机架式训练服务器,每台安装 8 张加速卡、2 路 CPU、1 TB 主内存、若干 NVMe 固态盘,以及 4 个 200 Gb/s 训练网络端口。另设 25 Gb/s 业务与管理连接,存储服务器通过独立的 100 Gb/s 网络提供数据。这里的数字用于推演,不表示所有任务都需要这套配置。实际采购还要核实端口属于几张网卡、连接哪个 CPU、占用多少 PCIe 通道,以及交换机的有效端口数量。
服务器不是画在拓扑图上的单个方框。加速卡与网卡可能通过 PCIe 交换芯片连接,也可能分别接在不同 CPU 的根端口上。PCIe 4.0 x16 每个方向的编码后理论带宽约为 31.5 GB/s,200 Gb/s 端口的线速折合 25 GB/s,实际业务吞吐还要扣除协议开销。如果 2 个 200 Gb/s 端口共同受限于这条 PCIe 连接,它们就不能长期同时向主机搬运各自的满速数据。写上端口速率并没有消除板内瓶颈。
同样是 8 张加速卡,塔式改装机、普通机架服务器与高密度训练节点的通信条件可能不同。卡间互连、网卡槽位、散热风道和电源余量都会影响持续运行。读拓扑时应从加速器显存出发,依次检查板内互连、网卡、线缆、交换机和对端,不能只看机架外的线。CPU 还承担数据准备与通信调度,主内存不足或本地盘读取不及时,也可能表现成网络利用率偏低。

训练通信通常既关注吞吐,也关注到达时间的整齐程度。数据并行训练中,各个参与进程处理不同样本,再共同归并梯度。这里把参与通信的进程称为 rank;rank 与加速卡的对应关系由作业配置确定。某个 rank 迟迟没有完成交换,其他 rank 就可能在同步点等待。网络平均流量不高,仍可能有短时间的集中发送和较慢路径。因此,本课既要看端口传了多少,也要看最慢参与者让每步训练多等了多久。
2 训练织物与存储网络分离
训练织物指承载训练节点间通信的互连网络,可以把它理解为节点之间有组织的高速道路。本课用以太网、叶脊拓扑和 ECMP 做主要例子;其他专用互连也要面对端口预算、路径选择与故障定位。叶交换机直接连接服务器,脊交换机连接多个叶交换机,使不同叶下面的服务器具有多条可用路径。“织物”不是某种产品承诺,而是描述整体互连关系的方便说法。
先按用途区分 3 类流量。训练流量主要是梯度、参数分片等参与计算的数据;存储流量包括训练样本读取和检查点写入;业务与管理流量包括登录、监控、镜像分发、任务启动和服务接口。它们的发送节奏不同:梯度交换可能每步都出现,检查点可能隔一段时间集中写入,镜像分发则常在作业启动时形成突发。把长期平均速率相加,容易漏掉它们在同一时刻相遇的高峰。
物理分离是让这些流量使用不同网卡端口、线缆和交换端口,条件允许时使用不同交换设备。它能缩小拥塞与误操作的影响范围,但会增加成本、布线和维护对象。逻辑分离可以使用不同 VLAN、地址与访问规则,便于管理和隔离访问;如果最终共享同一物理出口,仍会争抢同一份带宽。VLAN 不能凭空创造容量,优先级配置也不能让所有类别同时获得满速。
以本课配置为例,4 个 200 Gb/s 端口用于训练通信,100 Gb/s 存储连接用于读取共享数据,25 Gb/s 连接用于业务与管理。若希望保持管理入口在主机业务异常时仍可用,还应考虑独立带外管理口及其交换路径。这个示例并不要求每个项目都建设 4 套完整网络,而是要求把用途与共享关系写清楚。小集群可以适度共用,但需要给出允许的并发组合和容量边界。
分离之后仍有共同资源。存储网络读取的数据可能先进入主内存,再送往加速器;训练网络与存储网络也可能经过同一个 PCIe 交换芯片。检查点从显存整理到内存并写入固态盘时,CPU、内存带宽或盘的持续写入能力也会成为限制。如果检查点期间训练变慢,应同时看存储吞吐、CPU 使用、内存压力与训练通信等待,不能凭“网络已经分开”就排除数据路径问题。

部署时可以为每个网络记录用途、接口名称、地址范围、允许的对端与测试方法。用少量样本完成读取测试,再在训练通信运行期间加入检查点写入,观察每步耗时是否超出预先设定的范围。结果若不理想,就回到共享资源图寻找交汇点。分离的价值应由同时运行时的行为证明,不能只由拓扑图中不同颜色的线证明。
3 拥塞、ECMP 与负载对称
拥塞发生在到达某个出口的数据暂时多于它能发出的数据时。交换机可以先把数据放入队列,但缓存有限。排队增加延迟,队列继续增长则可能发生丢包或触发相应的拥塞控制。对训练而言,影响不只体现在“有没有丢包”,还可能体现在同步等待时间变长。短暂突发可能被较长采样周期平均掉,所以每分钟平均利用率只有 40%,不能证明端口从未拥塞。
叶脊网络通常提供多条等价路径。ECMP 即等价多路径,常见实现根据数据包中的地址、端口等字段计算哈希,把同一条流分配到某条路径。这样有利于维持流内顺序,但并不承诺每条路径承担相同字节数。这里的流是设备用于路径选择的一组数据包,不等同于 1 个训练作业;同一个作业可能有多个连接,而不同连接的大小又可能相差很大。
假设某个叶交换机有 4 条等速上联,而 4 条持续发送的大流恰好有 3 条被映射到同一上联。其他上联仍有余量,这个出口却已开始排队。ECMP 提供了路径选择机会,没有自动完成按实时负载调度。不能简单地让每个包轮流走不同路径来解决,因为路径时延不同可能造成乱序,能否处理以及代价多大取决于协议与设备能力,本课不深入这些内部机制。
“负载对称”需要拆开理解。物理拓扑对称,表示链路数量、速率与连接层次相近;路由对称,表示可选路径具有相近的转发条件;业务负载对称,则要求发送量和发送时刻没有严重偏斜。前 2 项成立,最后 1 项也未必成立。如果 rank 放置让大部分通信都集中跨越某对叶交换机,或者少量大流哈希碰撞,就会出现局部热点。

判断时需要同时观察端口速率、队列、丢弃、链路错误,以及训练每步耗时。链路错误偏多可能指向光模块、线缆或信号质量;队列上涨但没有物理错误,更接近容量竞争或负载偏斜。两类问题可能同时存在,因此要先保留证据再调整配置。若训练网络使用 RDMA,还需结合实际配置关注拥塞通知和暂停等计数器;其阈值与端到端行为需要专项验证,不能照抄其他集群的参数。
入门阶段最有用的原则是沿路径看局部最窄处,并比较多个参与者。平均利用率适合说明总体规模,端口间分布适合发现偏斜,训练尾部耗时则说明用户实际付出的等待代价。把这 3 类证据放在同一时间窗口,才有机会区分“总容量不足”与“容量没有被均匀利用”。
4 动手:画一条 AllReduce 路径
AllReduce 可以先理解为:每个 rank 提供一份相同形状的数据,按求和等运算归并后,每个 rank 都得到归并结果。训练中常见的例子是对梯度求和,再按训练规则处理。实际通信库会根据消息大小、硬件拓扑和配置选择算法。本节只画环形算法,目的是追踪字节经过的设备,不把环形当成所有训练的固定实现。
准备 4 台服务器,分别标为 A、B、C、D,每台只选 1 个 rank。A、B 接叶交换机 L1,C、D 接 L2,L1 与 L2 都连接脊交换机 S1、S2。先画逻辑环 A→B→C→D→A,再把每条逻辑边展开成物理路径。A→B 可以经 L1 转发;B→C 需要经过 L1、某台脊交换机、L2。D→A 也需要跨叶,但它未必经过与 B→C 相同的脊交换机。
接着为每个 rank 准备 1 GiB 的输入,将其分成 4 个块。在环形 Reduce-Scatter 阶段,各 rank 按步骤发送并归并数据,经过 3 轮后每个 rank 持有 1 个完成归并的块。AllGather 阶段再经过 3 轮传播,让所有 rank 收齐结果。初学时可以用不同颜色表示块,用边框上的数字表示已经参与归并的输入数量,避免把“收到了块”误当成“已经完成全部求和”。
在这个理想化环形模型中,每个 rank 发送的数据量为 2×(N−1)/N×M,其中 N 是 rank 数,M 是每个 rank 的输入大小。代入 N=4、M=1 GiB,每个 rank 发送 1.5 GiB,并接收相应数据。它不是只发送原始输入 1 次,也不是每个 rank 都分别给所有其他 rank 发送完整副本。不要把各 rank 的字节数直接当成任意交换机端口的字节数,端口经过多少数据仍取决于映射路径。
如果单个 rank 的有效发送能力为 20 GB/s,只考虑发送量,1.5 GiB 大约需要 81 ms。这是忽略启动、同步、归并计算和竞争的理想下界。GiB 按 2 的幂定义,GB 按 10 的幂定义,计算时要先换单位。若实测为 120 ms,也不能只凭差值认定交换机有故障;需要检查算法、协议开销、主机搬运以及其他链路的限制。

最后在纸上做 2 次标注。第 1 次用粗线标出跨叶的逻辑边,说明它们消耗哪些上联资源;第 2 次把 C 的网卡旁边标成“持续吞吐下降”,追踪哪些接收和后续轮次会被拖慢。保存 rank 到主机、网卡和交换机端口的映射表。以后即使改成 8 台或每台多个 rank,仍可沿相同方法把通信关系展开,而不必先掌握通信库的全部实现细节。
5 带宽与成本取舍
带宽预算从工作负载开始。应记录每步计算时间、需要交换的数据量、通信是否能与计算重叠,以及样本读取和检查点的节奏。如果计算需要 400 ms,另有 100 ms 无法隐藏的通信,每步约为 500 ms。即使把这段通信减到 50 ms,每步也只是降到约 450 ms。端口速率翻倍不等于训练速度翻倍,收益受原来通信占比和其他瓶颈限制。
再看交换层的汇聚比例。假设某叶交换机接入 8 个 200 Gb/s 服务器端口,下行线速总和为 1.6 Tb/s;若只有 4 条 200 Gb/s 上联,上行总和为 0.8 Tb/s,按这些端口计算的下行与上行容量比是 2:1。所有节点同时向其他叶下的节点满速发送时,上联不能同时承载全部需求。若通信大多留在本叶内,压力可能较小;是否接受这种配置,要结合任务放置和实测决定。
成本也不能只按服务器网卡报价计算。增加端口可能需要更多交换机端口、光模块、线缆、配线空间、电力与散热,还会增加备件种类。更高速率可能减少某些连线数量,也可能要求不同介质和距离条件。机架内短距离与跨机架链路的选型不同,必须核对两端规格、距离、连接器和支持关系。这里比较的是完成同类任务的总体代价,而非宣传材料上的单端口数字。
滑块用简化模型展示服务器数量、端口速率和上联数量对容量比与理想传输时间的影响。它假设每台服务器使用 1 个所选速率的训练端口,并让给定比例的数据跨叶发送,不模拟真实流量哈希。调整跨叶比例时可以看到,同一套硬件面对不同放置策略,压力会明显变化。模型不能预测训练加速比,但能帮助发现“只加服务器、没有增加上联”的容量缺口。

还要区别有效吞吐与端口线速。测试应包含点对点、大消息集合通信与多作业并发,分别回答单条链路是否正常、同步通信表现如何、共享条件下能否保持目标。测试消息过小可能主要测到启动开销,消息过大又可能掩盖真实训练中的短消息问题。选择覆盖计划模型通信规模的测试点,并保留软件版本、消息大小和拓扑信息,结果才有可比性。
合理方案通常有清楚的扩容触发条件。例如当目标训练任务在预定并发下,通信等待持续超过每步时间的 20%,且确认瓶颈位于上联,就增加交换容量或调整放置。20% 是示例门槛,应由项目目标决定。若瓶颈在共享 PCIe 上,增加交换机上联可能没有帮助。先确定资源限制的位置,再决定把预算投入网卡、主机结构还是交换层。
6 常见坑:业务网与训练网混跑
混跑最容易出现在“每种流量单独测都没问题”的环境。训练启动时,各节点同时拉取容器镜像;训练进入稳定阶段后开始读取新样本;检查点又集中写回共享存储。如果它们与训练通信共享某个出口,几个平稳业务就可能组成一次突发拥塞。观察到的现象可能是每隔固定时间步长突然变慢,而不是网络永久失去连接。
另一个坑是路由选择与预期不符。服务器装有多个网卡,并不保证通信库会自动选中目标接口。默认路由、主机名解析、接口选择配置或容器网络都可能让训练连接走到 25 Gb/s 业务网。启动成功只能证明可达,不能证明选路正确。应在小规模试跑时核对实际连接地址、接口流量变化和交换机端口计数,确认真实路径符合配置记录。
还有一种误判来自冗余。服务器有 2 条线,不代表单个连接自动得到 2 倍带宽,也不代表拔掉任意一条线训练都能无感继续。链路聚合可能仍按流选择成员,双网络可能需要应用分别使用,故障后连接是否恢复也取决于通信栈与任务机制。应把“容量扩展”和“故障恢复”分别列成目标,各自给出测试结果。

处理混跑需要同时考虑容量和调度。可以将镜像预热安排在训练前,把检查点写入错峰,给共享存储设置合理并发,并在确有需要时分离物理网络。限速和流量优先级要按端到端行为验证,不能只改某台交换机就宣布完成。尤其不要在不理解依赖时随意开启全局暂停或调整缓冲阈值,它们可能改变拥塞传播范围。
排查记录应使用相同时间基准:训练日志记录每步开始与结束,节点记录接口吞吐和错误,交换机记录端口队列与丢弃,存储端记录读写延迟。计数器通常是累计值,需要比较采样间的增量,并注明采样间隔。训练暂停期间吞吐下降可能只是没有数据可发,所以“网络流量低”本身不能证明网络正常,也不能证明网络就是起因。
7 案例:哈希极化导致部分链路过热
考虑一个教学案例:8 台训练服务器分接 2 台叶交换机,每台叶有 4 条 200 Gb/s 上联,通向等价的脊层路径。某次作业扩展后,每步耗时从 620 ms 增到约 900 ms,存储读速率没有明显下降,网卡也没有持续报告链路错误。监控面板显示上联平均利用率并不高,最初容易把问题归因于模型或通信库版本。
将同一时间窗口内的 4 个上联分别展开,发现其中 1 个接近持续满载,另有多个端口保持较低利用率;热端口的队列也随通信阶段上涨。这种局部集中使用常被称为哈希极化。它说明总体容量可能尚有余量,但实际大流映射没有均匀使用路径。这里“过热”指流量热点,不能从这个词推断光模块温度超标,温度仍须另看传感器。
先核对拓扑与链路状态,确认 4 条上联都处于预期速率、路由等价且没有成员退出。否则,看似哈希不均的问题可能只是有效路径减少。随后记录训练连接的源、目的地址及端口等设备实际使用的哈希字段,并核对大流经过的出口。具体能看到哪些字段和路径取决于平台,采集方式应遵循已有运维权限,不需要为课堂实验抓取训练数据内容。
在隔离测试环境中,保持消息规模与软件版本一致,只改变 rank 放置或连接建立条件,再比较端口分布与每步耗时。如果热点随映射改变而转移,而物理错误计数保持稳定,就进一步支持路径分配偏斜的解释。单次改善仍不足以证明长期稳定,需重复多组放置和并发条件,观察最差端口与最慢训练步。不要为了让某次测试好看而不断重启直到遇到幸运分配。

修复可以从调整作业放置、增加可用流的分散程度、按设备支持能力调整哈希策略等方向选择。修改哈希策略会影响其他业务,需要评估作用范围;增加连接也有主机和协议开销。若最终证据表明跨叶需求本来就超过容量,则仍要扩容,不能把所有拥塞都归咎于哈希。任何改动都应保留原配置,并规定性能恶化时的恢复条件。
案例的验收不是“平均利用率更接近”,而是相同工作负载下热点缓解、队列等待下降、训练耗时回到目标范围,并且没有引入新的错误。将修改前后的端口分布、训练耗时分布与配置差异一起保存。这样的记录能解释为什么改变有效,也方便下一次增加节点时判断旧结论是否仍然适用。
8 把集群网络写进训练方案
训练方案首先要说明训练对象与部署边界:服务器数量、每台加速卡数量、rank 放置方式、主要通信形态,以及预期同时运行多少作业。写“支持 64 卡”信息不足,因为 8 台各 8 卡与 16 台各 4 卡的跨机通信条件可能不同。还要说明训练数据放在哪里、检查点写向哪里、何时写入,以及是否允许作业启动与其他任务的数据搬运重叠。
硬件清单需要连到拓扑。记录网卡型号对应的实际端口速率、PCIe 代际与通道数、插槽位置、与加速卡及 CPU 的连接关系;记录叶脊端口数、链路速率和容量比。可用带宽要注明是线速推算还是测得的有效吞吐。若采用直连加速器内存的数据路径,还需核实软件、驱动和拓扑支持情况,不能仅凭设备支持某项能力就假定当前系统已经启用。
验收分成正常运行、并发干扰与受控故障 3 组条件。正常运行要覆盖代表性的通信规模和训练步;并发干扰加入计划中的数据读取、检查点与启动流量;受控故障在测试环境验证单链路异常后的告警、任务行为与恢复过程。每组都要事先写清测量窗口、重复条件与通过标准。不要临时拔除生产链路来寻找答案,故障验证应使用约定的测试窗口和恢复步骤。
指标至少包含有效吞吐、每步耗时的中位数与较高分位值、通信等待占比、关键端口队列和错误,以及检查点完成时间。高分位值用于看到较慢的一部分训练步,仍需交代统计了多少步、是否排除预热。验收阈值应对应训练完成时间与预算,避免把“所有端口始终满载”当成目标;计算与通信重叠良好时,网络不满载也可能说明系统工作正常。
最后写出扩容与回退条件。增加节点前重新核算跨叶流量和端口余量;改变网卡绑定或哈希配置前保留可恢复配置;发现错误上升或训练耗时超过约定范围时停止扩大变更。方案的作用是让硬件、训练与运维人员对同一条数据路径达成可验证的约定,而不是把所有高级参数提前填满。
9 从AI 集群网络走向大规模训练工程(A44)
到这里,已经能把集群网络理解为从芯片到交换层的完整数据通路,并用训练行为判断它是否满足需求。继续扩大规模后,还会遇到模型分片、任务调度、检查点恢复、数据流水线和资源利用等问题。网络为这些机制提供条件,却无法独自决定最终效率。A44「大规模训练工程」会把这些部分放到同一个训练任务中讨论。
进入下一课前,应能拿出 3 类输入:描述真实连接的拓扑图,描述字节移动的通信路径,以及描述表现的测量记录。拓扑说明哪里可能共享资源;通信路径说明哪些资源会同时承压;测量记录说明这些限制是否已经影响任务。任何一类缺失,都容易让讨论停留在“卡很快”“网很快”或“任务很慢”这类无法执行的判断上。
可以用几个问题检验理解:某个端口空闲,为什么不代表所有通信都有余量?服务器新增网卡,为什么还要检查 PCIe 与 CPU 连接?检查点使训练变慢时,如何判断是共享出口、内存搬运还是存储本身受限?回答时不必给出复杂协议细节,但要指出测量位置和对照条件。能说明下一步看什么,才算把概念转成了工程方法。
也应保留本课模型的边界。环形 AllReduce 的公式针对特定算法;ECMP 的说明不覆盖所有自适应路由实现;滑块只计算理想容量与传输下界。实际系统需要用真实模型、真实软件版本和代表性并发验证。后续学习会深化算法与系统协调,现在先把单位、连接、共享关系与证据记录做准确,便能避免大量基础配置错误。
放进方案里
本方案建设 8 台训练服务器,每台配置 8 张加速卡、2 路 CPU、1 TB 主内存与本地 NVMe 存储。每台提供 4 个 200 Gb/s 训练端口,采购前逐项核对网卡与加速卡的 PCIe 连接、共享上行及散热条件;端口线速不作为持续有效吞吐的承诺。交付物包含服务器槽位图、线缆表、交换端口映射与 rank 放置表,设备更换后同步更新。
训练通信、存储访问和业务管理分别规划。训练端口接入叶脊网络,容量按每台叶的实际接入数量与上联数量计算;存储使用独立的 100 Gb/s 路径,业务与管理使用 25 Gb/s 路径,并记录仍然共享的主机资源。共享存储必须在并发读取与检查点写入条件下测试,镜像预热安排在训练开始前。地址隔离与物理容量分别验收。逐端口保存协商速率、光模块收发功率及错误计数基线;出现降速或新增物理错误时,不通过该链路验收。
上线前完成点对点、代表性消息规模的集合通信及真实模型试跑,保留预热后不少于 200 步的耗时记录,同时采集接口吞吐、交换机队列与错误增量。验收门槛由训练时限确定,示例要求通信等待不超过每步时间的 20%,并确认检查点期间的较高分位耗时仍在约定范围。超过门槛时先定位 PCIe、存储或交换出口,再选择扩容位置。
监控按端口展示利用率分布,不能只展示上联平均值。出现局部热点时先排除链路降速和路径退出,再检查大流映射;保留拓扑、配置版本与修改前后记录。在测试窗口验证单链路异常的告警、任务中止或恢复行为,明确负责人与恢复时限。扩容、调整放置或修改哈希策略都需重跑代表性负载,达到既定门槛后再扩大使用范围。
10 小结:下一步大规模训练工程(A44)
AI 集群网络的基本功是沿数据路径核对硬件,用通信模式估算需求,再用训练耗时和端口证据验证。分离流量能缩小干扰范围,ECMP 能提供多条路径,但容量、放置和哈希分布仍需检查。进入 A44 时,带上拓扑图、通信路径与测量记录,继续把网络条件与计算、调度、存储及恢复机制连接起来。