万卡集群组网这件事,这两年几乎成了AI基础设施圈子里最绕不开的话题。一万多张GPU卡连成一个集群,后端网络怎么组织、用什么设备、卡与卡之间的通信延迟怎么压到微秒级,这些细节和外人想象的“多买几台交换机”完全不是一回事。我这边常年代理迈络思(Mellanox,现为NVIDIA网络产品线)网卡和线缆设备,走的是原厂授权直供渠道,接触过不少从几百卡往几千卡、上万卡走的项目,今天把这套组网逻辑、设备选型、实施经验和采购避坑点一并整理出来,给正在规划或者准备扩容的团队做个参考。
先说清楚这篇文章适合谁看:一是机房运维和网络工程师,准备上手InfiniBand或RoCE方案;二是做AI平台架构选型的人,想搞清楚万卡集群的网络到底怎么搭;三是采购负责人,想知道授权直供渠道和二手拆机件的本质区别。内容不涉及厂商接口人资源,只讲技术判断和行业里的通用做法。
1. 万卡集群组网到底在解决什么问题
1.1 从单卡到万卡:通信瓶颈是怎么出现的
一台8卡GPU服务器内部,GPU之间的互连靠NVLink和NVSwitch,带宽能做到几百GB/s,多卡全互联没有瓶颈。但单台服务器的算力在大模型训练面前根本不够看,训练一个万亿参数模型,动辄需要上千甚至上万张GPU卡。这时候问题就来了:数据并行、张量并行、流水线并行,每一种并行方式都会产生大量跨节点的通信。
拿数据并行里的AllReduce来说,每张卡算出一份梯度,需要全集群范围内求和再同步。假设单卡梯度大小是几十MB,一次迭代里AllReduce的数据量就要乘上卡数,一万张卡就意味着每轮训练都要做上万次跨节点通信。这个通信链路如果带宽不够、延迟不稳,GPU就会停下来等数据,利用率立刻往下掉。实际跑大模型的人都知道,网络做得不好,GPU利用率能从90%跌到50%以下,算力损失相当可观。
所以万卡集群组网的核心目标很明确:把每一块GPU之间都变成“低延迟、高带宽、不丢包”的通道,让集合通信高效完成。这不是靠网线把机器插上就行,而是从拓扑、设备、协议到调优整套系统工程。
1.2 三种主流网络路径:IB、RoCE与普通以太网
当前GPU集群后端网络主流有三条路线,我先把各自的定位讲清楚。
- InfiniBand(IB):为高性能计算设计的专用互连协议,本身支持RDMA(远程直接内存访问),从物理层到传输层都做了无损优化,延迟极低,适合大模型训练这类高密度集合通信场景。
- RoCEv2:在标准以太网上运行RDMA。好处是能用成熟以太网生态和相对便宜的设备,坏处是“无损”需要靠PFC流控、ECN拥塞标记这些机制去凑,配置不好就会出现队头阻塞、链路震荡,调试成本比IB高不少。
- 传统TCP/IP以太网:成本最低,但延迟和带宽效率在大规模集合通信场景下完全不行,现在一般只用于管理网络、存储网络,不太会拿来做训练后端。
我的判断很直接:如果是正经万卡集群,训练后端网络优先考虑InfiniBand;如果预算有限、规模在几百卡量级,RoCEv2可以接受,但要预留足够的调优人力。
1.3 为什么超大规模集群普遍选择迈络思设备
行业内提到万卡集群,绕不开迈络思这个品牌,原因其实不复杂。
第一,NVIDIA收购迈络思之后,从GPU到网卡再到交换机的软件栈是原生打通的。GPU驱动、集合通信库(NCCL)、网卡固件、交换机固件,彼此之间的兼容性测试和性能调优做了很多轮,用户不需要自己去缝缝补补。
第二,迈络思的交换机带SHARP(交换内聚合)能力,这是不少人忽略的关键点。常规网络里,AllReduce的数据要汇聚到某个节点算完再分发,来回流量很大。SHARP把规约计算直接下放到交换机上,数据在交换网络里就能完成聚合,端到端流量大幅减少,集群越大优势越明显。
第三,管理生态成熟。UFM(Unified Fabric Manager)这类网络管理平台,能对IB网络做集中监控、健康检测、路由优化,万卡规模光靠命令行手工排查物理链路和拥塞,根本不现实。
2. 迈络思网卡与线缆设备的核心选型逻辑
2.1 网卡型号怎么选:ConnectX-6到ConnectX-8的定位差异
迈络思网卡型号不多,但每款定位差别很大,选错代价不小。
ConnectX-6是上一代主力,单端口200Gb/s,PCIe 4.0接口。对成本敏感的千卡集群,用CX6做训练网卡是没问题的,实际项目里大量部署过,稳定性好。ConnectX-7单端口400Gb/s,PCIe 5.0,支持NDR InfiniBand和400G以太网,是目前万卡集群最主流的配置,万卡规模基本看CX7。再往上就是ConnectX-8,已经开始往800G布局,适合预算充足、明确要跑更大规模训练任务的团队。还有BlueField系列,本质是带Arm核心的DPU智能网卡,除了转发数据,还能卸载OVS、安全策略、存储虚拟化这些功能,适合做云平台或需要网络功能虚拟化的场景,但如果只想做纯训练网络,没必要为DPU能力多花钱。
选型时有一个原则容易被人忽视:训练后端网卡尽量做到“一块GPU对应一块网卡端口”,一对一直连。这样NCCL通信路径和PCIe拓扑高度对齐,性能最稳。因为每块GPU在PCIe总线上的位置、NUMA节点、网卡所在根端口都会影响内存拷贝路径,拓扑不对齐会出现莫名其妙的延迟抖动。
2.2 线缆设备的坑:DAC、AOC、光模块怎么选
很多团队网卡定了,却在线上栽跟头。万卡集群连线缆都以万条计,选型不对或者品质不稳,整个集群跑起来就是定时炸弹。
- DAC直连铜缆:适合机柜内短距离连接,一般3米以内。成本最低、功耗低、延迟最小,同机柜内服务器到顶部交换机基本都用DAC。但超过3米信号衰减明显,带宽越高越明显,400G下尤其要谨慎。
- AOC有源光缆:两头带光模块的成品光缆,常见3到30米,适合跨机柜到列间交换机。比DAC贵一些,但走线灵活、更耐弯折。上架机柜之间的互联很常用。
- 光模块加光纤:最灵活,适合几十米到几百米的长距离,比如连到独立设备间的Spine交换机。可维护性好,哪个模块坏了换哪个,不用整根换线。
选线缆的另一个关键是兼容性。迈络思设备对光模块有硬件识别和固件校验逻辑,不要贪便宜买来路不明的“兼容模块”,很多兼容模块能亮灯但长期跑会丢包或误码,一旦上了训练任务就现原形。正规渠道拿到的原厂线缆和经过认证的第三方模块,至少出了问题是可追溯的。
2.3 授权经销商直供的价值和验货要点
为什么会特意强调“经销商授权直供”?因为迈络思设备现在的市场热度太高,翻新卡、拆机卡、水货卡满街都是。授权直供意味着设备从原厂到最终用户手里的流转链路清晰,有原厂序列号登记、完整保修和原厂技术支持通道。这些在万卡项目里不是锦上添花,而是底线。
验货我有几个习惯了:设备到货后,先对照授权凭证和装箱单查SN序列号,通过官方渠道核验设备原始状态;再用MFT工具查VPD信息,看产品编号、出厂日期和固件版本能不能对上;最后上机跑高负载验证,千万别只看“能亮机就收货”。
提示:翻新卡常见特征是SN被磨掉或喷涂过、散热片划痕明显、固件被刷成其他型号信息。遇到价格明显低于市场行情的“全新原包”,直接按翻新判断,不用浪费时间验。
3. 万卡集群组网实操与实施要点
3.1 网络拓扑设计与规模化原则
万卡集群组网不是简单把一万个端口塞进交换机就行,拓扑结构直接决定带宽收敛比和故障半径。实际中最常见的是两层Fat-Tree(脊-叶架构):服务器挂Leaf交换机,Leaf和Spine交换机全互联。这种结构扩展性好,链路冗余也简单,任何一台Leaf挂掉只影响它下面挂的机器,训练任务靠重跑和检查点恢复就能兜底。
具体算一下资源量就能感受到规模:假设1250台8卡服务器,每台配8块CX7 400G网卡,就是一万个训练网端口。用64端口Leaf交换机,考虑预留上行口,大概需要200多台Leaf;Spine再配几十台,整体交换机数量在250到300台量级,线缆数量过万条。这里的关键设计指标是收敛比,训练后端一般做到1:1无收敛,也就是Leaf到Spine的带宽总和要大于等于下行带宽总和,否则高峰期通信必然拥塞。
多轨(Multi-Rail)设计也是一定要做的。一台服务器有8张网卡,就必须把8张网卡分散接到不同的Leaf交换机上,通过NCCL里配置的多Rail通信或者LAG哈希把流量分摊到多条路径。否则一台Leaf交换机挂掉,整台服务器直接退出集群。NVIDIA还支持自适应路由和增强拥塞控制,在UFM里开启后,网络能在链路拥塞时动态调整路径,这对长尾流量的优化非常明显。
3.2 驱动固件、系统配置与BIOS联动
硬件上架只是第一步,系统层面不配合,网卡性能发挥不出来。经验上关键步骤有这么几个。
驱动和固件优先用原厂发布版本。网卡固件升级用MFT工具包,驱动用MLNX_OFED,NVIDIA官网都能下。千万注意:驱动和固件版本不是越新越好,要对照官方Release Note确认和你的交换机固件、NCCL版本是配套的。集群里成千上万块卡,版本矩阵一旦乱掉,排查起来非常痛苦。
在Linux系统里,常见配置项有几个:
# 查看网卡和固件状态 mst status mlxfwmanager -q # 查看IB链路状态 ibstatus ibstat # 查看RDMA设备 ibv_devinfo # 查看RoCE/IB链路配置 rdma link showBIOS这边要注意三件事:第一,关闭ASPM电源管理相关节能选项,网卡在这种模式下会出现延迟毛刺和偶发断流,训练任务跑起来会随机掉卡;第二,开启SR-IOV或IOMMU需要按虚拟化需求来,如果跑裸金属训练网络则没必要开;第三,确认PCIe链路速率和宽度,跑满速率的卡插到PCIe 3.0插槽里,实际吞吐会大打折扣。
我处理过不止一次“网卡没有电源管理”导致的问题。服务器供应商的BMC固件升级后,BIOS默认把ASPM开了,结果整批机器在PingPong测试时延迟抖动明显。排查方向就是先确认BIOS里ASPM状态,再把网卡的功耗策略固定为高性能模式。
3.3 布线实施与机房工程细节
万卡集群的线缆管理是件容易被低估的工程。以一万个端口算,光DAC和AOC的数量就超过一万根,加上管理网、存储网、带外管理线,单机柜里线缆密度极高。常见问题是布线标签混乱,排障时翻线要翻半天。
实用建议是两条:第一,线缆标签必须做成“源端口-目标端口”双向可读,机柜侧和交换机侧都有对应表,并且录入资产管理平台;第二,AOC和DAC都有方向性,模块端和光缆端不能接反,上架时就要把方向核对清楚。另外,光纤的弯曲半径是硬约束,不能为了理线好看强行打死弯,否则信号损耗会异常升高。
上电顺序上,建议先升级交换机固件、完成交换机配置,再开服务器网卡,避免服务器起来后网卡链路反复up/down。大规模集群我习惯用自动化工具批量配置和巡检,逐台上机手动操作不现实,也不利于标准化。
4. 网卡设备常见问题与排查实录
作为授权渠道商,我们每天都会接到客户技术咨询,很多问题是共性的,我整理了几个高频率场景,直接按场景给排查路径。
4.1 装系统阶段识别不到网卡
这是所有问题里最多的。Linux下最常见的原因是系统内核自带的驱动版本太老,支撑不了新网卡型号,或者驱动根本没有编译进去。确认方法很简单:
# 加载Mellanox核心驱动模块 modprobe mlx5_core # 查看是否识别PCI设备 lspci | grep -i mellanox如果lspci能看到,但系统没有生成接口,多半是驱动没装对。装好MLNX_OFED后再重启,基本能解决。ESXi场景也经常遇到“安装提示没有网卡”——ESXi安装镜像默认带的驱动有限,需要在安装环境里额外注入VIB驱动包,或者选择厂商定制版镜像,里面通常预置了迈络思驱动。
4.2 Linux环境下网卡运行类问题逐个过
“Linux网卡开机自启”是经典问题。CentOS/RHEL下要确认NetworkManager的外连接是否设置了autoconnect,Debian/Ubuntu则要注意Netplan配置和NetworkManager是否打架,典型的症状是重启后接口状态不对。
“网卡监听模式”主要用于抓包分析,但InfiniBand网络里不能像以太网那样随意在普通端口抓包,需要依靠交换机端口镜像或者UFM的监控能力来做流分析。如果只是跑RoCE,倒是可以在主机侧用tcpdump配合硬件事务采样工具观察,但不要指望它看到全部流。
“Ubuntu网卡不见了”这类问题,很多出在内核升级后驱动模块和DKMS没有联动编译。解决办法是重装对应驱动并重新编译内核模块。
“网卡没有电源管理”前面说了,数据中心场景基本都建议关闭节能。
4.3 物理链路类问题:灯不亮、线是通的但不通
灯不亮分两种:一种是网卡端口灯不亮,另一种是交换机端口灯不亮。前者重点查网卡侧是否处于禁用状态、固件/驱动是否正常;后者重点查交换机配置,比如端口被shutdown、VLAN没放行、拆分组模式不匹配。很多时候“网线确认是通的”反而会误导判断——物理链路通只能证明线缆和模块电气连接正常,协议层没起来照样不通。这时候要在两侧分别看状态:
# 主机侧看链路 ethtool -i <interface> # 看驱动和固件 ethtool <interface> # 看链路速度和状态 ibstatus # IB协议层状态 # 交换机侧看状态和配置 show interface status show int <port> transceiver4.4 普通网卡与数据中心网卡的排查差异
有些来咨询的人其实用的是消费级网卡,比如Realtek、AX201无线网卡之类,问题包括驱动找不到、网卡没有电源管理选项、设备管理器正常但虚拟网卡不存在或被禁用等。这类设备的技术栈和迈络思数据中心网卡差异很大,但排查思路是通用的:先确认设备在PCI/USB总线枚举正常,再查驱动加载状态和操作系统网络栈配置,最后查物理链路。从“设备枚举-驱动状态-协议栈-物理介质”四层入手,能解决绝大多数网卡问题。消费级网卡本身定位就不是高并发、高稳定性,遇到疑难杂症别死磕硬件,优先怀疑驱动兼容性。
5. 采购渠道与方案落地经验
5.1 正品、翻新与水货怎么分辨
市场上迈络思设备的供应渠道相当混杂,我总结了几条实操判断标准。
第一,序列号要能过官方核验。正规授权渠道出的货,原厂有完整的出货记录,序列号可追溯,最终用户能登记到原厂体系里。翻新卡和拆机卡没有这些记录。第二,全新原包设备的包装和密封是标准化的,RSDN和SN印刷清晰、没有任何涂改痕迹。第三,价格明显背离市场行情的基本可以断定有问题——做渠道这行,价格成本大概什么样心里有数。
收货后建议直接跑一轮验证。除了看固件信息和VPD,还要跑性能压测,比如用perftest工具组里的ib_write_bw或ib_read_latency做端到端带宽和延迟测试。数据异常上涨或者延迟曲线波动大,多半是硬件本身有损伤。
5.2 选择授权经销商时值得问的五个问题
如果走经销商渠道,签约前至少要把下面几个问题问清楚,避免后续扯皮。
- 授权范围:授权函上列的产品线是否覆盖你需要的具体型号,授权区域是否包含你数据中心所在地。
- 原厂出货凭证:是否能提供原厂发货记录和最终用户登记,这决定后续走原厂RMA保修是否顺畅。
- 售后支持方式:故障后RMA的流程、响应周期、是否提供备机或替代方案。万卡集群里坏一块网卡,等一个月的周期根本没法接受。
- 技术支持的边界:原厂、经销商、集成商的技术支持分别覆盖哪一层,出了问题谁来牵头排查。明确边界比什么都重要。
- 供货周期与备货能力:大型项目分批交付很常见,经销商有没有现货或者稳定的订货渠道,直接影响项目进度。
提示:把承诺都写进合同里,尤其“原厂出货”“正品保证”“RMA时效”这些条款。口头承诺在设备大规模上线后是没有用的。
我在实际项目里见过太多反面案例:有人贪便宜买了一批拆机CX6,到货时看着没问题,跑了两个月后逐渐出现部分网卡掉链子,最后排查发现是PCB上电容老化导致信号完整性劣化,整个批次只能替换。也有人签了合同后发现售后没人管,交换机配置问题找不到人,最后只能自己翻文档慢慢摸索。万卡集群这种体量的项目,设备成本的微小节约根本覆盖不了后期风险。
我个人对这些项目最大的体会是:网络是整个集群里最“隐形”但又最关键的部分,它的故障往往不是突然崩溃,而是性能悄悄劣化,等到发现时已经浪费了无数GPU算力。与其在出问题后焦虑,不如从选型、布线、配置到采购,每一步都按工程标准来。做完一个万卡项目后再回头看,你会发现真正的竞争力不在于买了多贵的设备,而在于所有细节都能闭环管理。
最后再分享一个小技巧:项目交付前,一定要做一次全集群的集合通信压测,跑NCCL的AllReduce基准,把每台机器的带宽和延迟分布统计出来。这样能比生产环境更快暴露问题卡、问题线缆和非标准配置,趁还能换货窗口期处理,成本最低。这套流程走一遍,集群上线后你睡觉都会安稳很多。