2026/9/8 8:51:53

从16万卡昇腾集群看大模型训练算力基础设施的关键工程挑战

从16万卡昇腾集群看大模型训练算力基础设施的关键工程挑战 上周业内最热的动静莫过于DeepSeek计划在内蒙古部署16万颗华为昇腾芯片集群的消息。消息刚出来的时候我身边做AI Infra的朋友基本都在聊这件事——有人按电费和芯片功耗算账有人讨论昇腾CANN生态到底能不能扛住16万卡规模的训练压力也有人直接问这事如果真跑起来是不是意味着国产算力在大模型训练领域要认真成规模地落地了。作为一个长期在一线做大模型集群部署、也实打实调过昇腾卡的人在我看来这条新闻的信息量远不止“国产替代”四个字。它牵出来的是一整套关于大规模算力基础设施的工程判断如何选GPU/NPU、如何评估算力成本、如何在万卡甚至十万卡规模下解决网络、调度、容错、存储的连锁问题。这篇文章我不聊八卦只从技术选型、集群工程和落地实操的角度把这件事掰开揉碎讲清楚也顺便给正在考虑国产算力方案的团队一份可参考的避坑清单。1. 16万颗芯片到底是个什么概念——先算三笔硬账1.1 算力规模这不是“多买点卡”是量级跃迁先说最直观的算力账。昇腾910B这个型号FP16算力大致在376 TFLOPS也就是每秒37.6万亿次浮点运算。16万颗意味着什么峰值FP16总算力大概在60 EFLOPS上下也就是每秒6万万亿次。这个数值放在全球智算中心也是第一梯队的规模。更直接的对比是看训练任务的折算。业界普遍估算DeepSeek训练V3的算力消耗大约在280万张H800 GPU小时左右。H800的FP16算力标称约989 TFLOPS比昇腾910B高出一截。如果把那280万H800小时的任务搬到昇腾910B上跑简单按峰值算力折算大约需要700万昇腾910B卡时才可能完成。换句话讲16万颗昇腾芯片如果全力跑一个V3级别的模型理论上也要连续运转四十多个小时。这还是最理想的情况实际因为通信效率、算子优化、框架适配差异耗时会更长。所以16万颗这个数字本质上不是为V3这种已经收官的模型准备的而是为参数量更大的下一代模型铺路的。DeepSeek现在的模型迭代节奏很快推理侧、训练侧都要吃算力这种规模的上限是奔着万亿到十万亿参数级别去的。1.2 电费账一年烧掉的电比很多公司融资额还高算力之外第二个必须算清楚的是电费。嘴上讨论的是集群落到实处就是电网和电费单。昇腾910B单颗芯片的热设计功耗大概在350W到400W这个量级。但一台训练服务器上不只芯片发热CPU、内存、网卡、交换设备全都有功耗。一台8卡昇腾训练服务器含整机柜和管理设备满载功耗我按单机8kW来算16万颗芯片差不多对应2万台8卡设备总功率就到了160MW量级。这个数字还不够直观再换算下一天满载就是384万度电左右按工业电价0.4元到0.5元一度算光算电费一天就是一百五六十万人民币打底一年妥妥超过5个亿。这就是为什么选址内蒙古这么关键。内蒙古是典型的寒温带地区全年气温偏低大风日数多风电、光伏资源极其丰富电价在工业用地区域里属于非常有优势的水平。而且低温气候对数据中心散热极其友好。同样的计算负载放在内蒙古能大幅压缩散热能耗整机PUE普遍能做到1.2甚至更低而在华南、华东这种夏季湿热的区域单靠空调把机柜温度压下来运维成本和电费会高出一大截。另外还有一个容易被忽略的点大规模集群不是一根电缆就能供电的。160MW的持续负载需要多路高压输变电接入加上柴油发电机和储能做备份电网容量和消防合规要求都极其苛刻。很多公司在内蒙古选址建数据中心本质上就是在赌电力的长期充裕和稳定。DeepSeek这种体量的玩家敢一次性上16万卡背后必然是电力资源、园区机房、网络带宽整体谈判过的结果。1.3 散热和基建风冷已经是过去式液冷是唯一解16万颗芯片同时跑起来机柜内的热密度会到恐怖的程度。传统风冷在这种热密度下完全失效必须上冷板式液冷。冷板式液冷的思路很简单把冷却液通过管路直接送到芯片上方的冷板里热量先传给冷液再由冷液带到室外冷却塔。这样做的好处是换热效率远高于空气芯片温度稳定降频概率也小。但代价是机房基建复杂度大幅上升管路设计、漏水检测、冷却液选型、CDU分配单元规划每一样都是专门的工程。内蒙古的气候对液冷同样有帮助。冬季可以直接用室外冷空气做自然冷却free cooling让冷却塔和冷板系统的功耗进一步降低。南方机房一年到头压缩机疯狂转这边半年时间靠自然冷源就能压住温度运维成本完全是两个量级。2. 选型逻辑为什么是华为昇腾它的技术底盘扛不扛得住2.1 昇腾的核心指标跟英伟达差距到底在哪入口级的问题必然是为什么DeepSeek会选华为昇腾而不继续依赖英伟达。抛开外部因素不谈纯粹从技术视角看昇腾910系列近几年进步确实明显。昇腾910B单卡搭载64GB HBM高带宽显存片内HBM带宽在1.6TB/s左右FP16算力376 TFLOPS。昇腾910C沿用了双芯封装思路单卡显存容量更高更大的模型单卡就能塞进去。对比英伟达H100的80GB显存和3.35TB/s HBM带宽昇腾在显存容量上不算吃亏带宽还有代差但已经不是完全“不能打”的级别。更关键的是片间互联。DPU和HCCS是华为在集群训练里压箱底的东西。910B支持HCCSHuawei Cache Consistency System华为高速缓存一致性互联协议多卡互联单卡能够通过高速链路与同一节点内的其他卡共享内存语义。这套设计对标的就是英伟达的NVLink。训练大模型时张量并行和多头注意力并行极度依赖片间通信带宽如果HCCS带宽不足多卡并行效率会直线下滑。从实际测试数据看昇腾910B的8卡HCCS互联在AllReduce、AllGather这些常用集合通信操作上的表现虽比不上H100的NVLink但在中大规模模型并行场景下已经有实用价值。2.2 生态迁移CANN还在补课但PyTorch这条路已经通了单看硬件还不够决定一个芯片能不能被大规模训练任务用起来的是软件生态。英伟达值钱的地方一半在卡一半在几十年沉淀下来的CUDA生态。昇腾对应的底座是CANNCompute Architecture for Neural Networks。前几年CANN刚出来的时候可以叫“难用”算子覆盖不全模型适配要改大量代码很多框架还不支持。这两年明显在补课PyTorch升腾适配层torch_npu已经比较成熟业界主流的GPT类模型、Llama类架构在昇腾上已经能比较顺畅地训练和推理。DeepSeek自己本来就是深度用PyTorch的团队从V2到V3为了在算力受限的情况下把训练跑起来对底层算子、通信库做了大量自研优化。这种自研底层的能力恰好是跟昇腾磨合时最需要的——简单场景靠框架复杂场景就得自己动手改内核。不过必须诚实地说昇腾的生态还是追赶状态。很多英伟达上成熟的黑科技算子昇腾CANN未必第一时间支持一些PyTorch原生的分布式扩展包在CANN上也要做适配。对于只想快速把模型跑起来的团队迁移成本还是有的但对于DeepSeek这种有强自研能力的团队眼下的CANN已经具备了深度定制的可能。2.3 自建集群本质是把“算力成本曲线”握在自己手里站在商业化角度想DeepSeek选择自建昇腾大集群还有一个重要的考量长期算力成本的可控性。租用第三方算力听起来方便但大模型训练这种动辄几个月的项目租赁成本极高而且公有云GPU时不时有供应波动。自建集群一次性投入巨大但摊到长期运行边际成本会明显下降。再加上昇腾芯片的采购成本相对英伟达有可观差距大规模集中采购还有议价空间。16万颗芯片的集群如果按单卡十几万的价格估算硬件投入是百亿元级。这个体量的投入对一家顶尖AI公司来说等于把未来几年的算力命脉握在了自己手里。这对于广大中小团队也有参照意义就算体量到不了16万卡算法上先算清“自建 vs 租用”的成本曲线再决定走哪条路是任何时候都不过时的基本功。3. 十六万卡集群部署工程师视角下的硬核挑战3.1 网络拓扑RoCE还是InfiniBand华为方案怎么选大模型训练吃的第一道菜就是网络。16万颗卡如果要协同训练一个超大模型通信的量级会让普通机房网络直接瘫痪。业界主流的大规模AI集群组网方案有两种InfiniBandIB和RoCEv2RDMA over Converged Ethernet。IB生态成熟、性能稳定但同样是价格贵、设备封闭RoCEv2跑在标准以太网上成本低但对工程质量要求极高。华为这种“自研芯片自研交换机”的组合天然会选择RoCEv2路线——因为整个网络设备、交换芯片都是自家研发可以针对集合通信库做深度优化把丢包和时延压到极低。拓扑上16万卡集群一般不会是一整棵毫无分叉的大树而是拆成多个集群Cluster每个集群几千到一万卡再由核心交换机做高速互联。每个计算节点内部8张卡通过HCCS组成一个高带宽域节点外部每台服务器通过多个400G或者800G网口上联到接入交换机再经汇聚、核心层完成全网互联。这个过程要非常精细地规划网络收敛比否则一旦在多对一通信比如AllGather时出现拥塞整个集群的吞吐都会被打折。我自己的经验是小规模测试时网络问题容易被掩盖。一旦规模冲到上千卡单点链路抖动、丢包、长尾时延就会成倍放大。现在很多大模型训练任务通信占比能达到30%以上网络一旦出问题有效算力会直线下跌。3.2 并行策略与MoE16万卡不是一台电脑是一整个调度域大模型训练上并行策略是核心中的核心。经典方案是数据并行DP张量并行TP流水线并行PP序列并行SP的组合拳。数据并行适合扩展到大集群但每个副本都要完整参数张量并行通信量巨大只适合节点内部做流水线并行虽然有气泡问题但能跨节点扩展序列并行则是在注意力和前馈网络上减少激活性内存。尤其重要的是16万卡基本不可能用常规密集模型填满。现在参数量一上万亿的模型基本都走MoE混合专家架构。MoE意味着专家网络可以分散到不同机器上每个Token只激活部分专家这在算力规模和通信负载之间做了巧妙折中。调度系统要根据MoE的专家热度做负载均衡设计Expert ParallelEP策略才能让16万卡不出现“旱的旱死涝的涝死”。说实话这个层面的优化已经不是“部署工程师”能解决的必须由模型团队和基础设施团队协同把模型架构和集群拓扑对齐设计。DeepSeek从V2开始就在MoE上积累了大量调度和通信优化的经验这是它敢于上16万卡集群的底气之一。3.3 容错与检查点万亿参数模型的checkpoint怎么存训练万亿参数模型最噩梦的问题是容错。随便存一份全量checkpointFP16精度下参数本身的体积就有2TB左右按1万亿参数算。如果加上优化器状态、梯度信息一份checkpoint超过10TB也不奇怪。在16万卡集群上做全量checkpoint要求的是PB级可用容量和每秒几十GB的写入带宽这不是普通的NFS能扛住的。实际工程里分布式并行训练一般会采用“分布式checkpoint”策略每张卡只保存自己负责的那一部分参数和梯度全部checkpoint文件分散存放在并行文件系统或对象存储里。保存的时候还要做异步化让训练流水线不用停下来等存储写完。恢复的时候调度系统根据集群的健康状态和checkpoint索引把它当作一次全新的调度任务来处理。这套东西说起来简单但写起来都是脏活累活。比如集群一半的卡故障怎么让剩下的卡缩容继续训练而不是全集群重启。如果没有好的容错设计16万卡集群的理论可用性会低到你怀疑人生。3.4 供电与散热细节每一个机柜都是小型核电站我把供电散热单独拎出来说是因为这是集群规模上来以后最现实的制约。单机柜8kW到12kW是风冷时代的常态。到了16万卡液冷时代单机柜功率能干到30kW以上甚至更高。这意味着整套供电系统要从传统的220V/380V升级到更高电压等级的直流供电比如腾讯和阿里的HVDC方案还需要在每个机柜部署独立的电源分配单元和电池备份模块防止单路市电掉电导致整个机柜的训练任务直接归零。散热部分也不能只看芯片温度。交换机的光模块、存储节点的硬盘、电源模块都是发热大户。液冷管路全部覆盖下来机房里的机械结构复杂度会成倍上升。我自己见过不少团队小规模测试时性能亮眼一上大规模电源和散热就先把机器性能锁死了。4. 没有英伟达怎么做大模型训练——国产算力集群落地参考4.1 硬件选型与网络规划清单如果你的团队也想尝试走国产算力路线下面这套选型清单是实打实能落地的。首先服务器层面目前昇腾训练主力是Atlas 800T A2系列一台机器八张昇腾910B搭配两颗中高端CPU、512GB内存配4块左右的NVMe SSD做缓存。训练网络用CloudEngine系列交换机跑RoCEv2管理网单独走千兆或万兆以太网存储网用独立的高带宽网络。具体到单台机器上网络接口建议至少配8个100G或4个200G。别小看这几个接口的排布它在物理上决定了你这台服务器在通信拓扑中的位置。4.2 软件栈搭建的核心步骤软件栈的搭建顺序和思路比具体命令更重要。一个合理的顺序是装好操作系统麒麟、统信、或者Ubuntu Server都行升级内核并安装NPU驱动和固件安装CANN Toolkit和配套算子库这是所有上层框架的底座装好容器运行时Ascend Docker Runtime把NPU设备映射进容器在容器内安装torch_npu这个PyTorch升腾适配层用它把PyTorch的计算调度转接到CANN跑一遍hccl_tests做多机集合通信测试确认AllReduce、AllGather带宽符合预期跑一个小的GPT类模型从单机8卡开始逐步扩展到多机。这条链路我实测下来最大的坑都集中在驱动和固件版本不匹配上。昇腾对其底座的版本要求非常严格驱动、固件、CANN、torch_npu必须保持同步版本一旦错开轻则算子报错重则设备反复掉卡。建议团队在初始阶段就锁定一套经过验证的版本组合禁止随意升级。4.3 迁移评估先算“算子账”再谈性能优化从CUDA向CANN迁移不要上来就改代码。第一步是盘点模型里的算子覆盖情况。用profiling工具跑一遍目标模型把耗时Top 20的算子捞出来看它们在不支持清单里还是不在。实际上大模型训练绝大部分工程量都集中在Embedding、Attention、LayerNorm、MatMul等基础算子上这些在昇腾CANN里都有高性能实现。真正容易出问题的是各种自定义CUDA算子比如FlashAttention的某些变种、特殊激活函数、各类融合算子。遇到这种情况要么降级到通用实现要么自己用TBEAscend的算子开发语言照着写一版。另外精度对齐是迁移时必须认认真真做的功课。同一套训练任务在英伟达和昇腾上跑最终收敛曲线的趋势应该一致但具体数值不会完全相同。团队需要建立一套自动对比机制每隔固定步数对比梯度分布、loss曲线、激活值统计把精度偏差控制在可接受范围内。5. 常见问题与排查技巧实录5.1 集群训练典型故障速查表我在实操中遇到好几类高频问题整理成一张速查表遇到问题可以按表索骥。问题现象可能原因排查思路多卡通信超时报HCCL超时错误网络链路不稳定、链路震荡导致丢包先跑hccl_tests做压测再用每条链路逐一打流找坏链路训练中途个别NPU设备掉线NPU过热、供电不足、固件版本问题看设备温度、检查电源模块日志、更新固件后再上线算子报“not supported”模型里有CANN不支持的算子用profiling定位具体算子找替代实现或TBE自研显存OOM但单卡显存没打满分布式状态堆积导致内存碎片开启激活重计算或者调整ZeRO stage和流水线切分性能远低于预期单卡利用率低数据加载速度跟不上、后端口带宽饱和先查存储IO再查网络队列深度用全链路profiling定位训练中断后恢复耗时长checkpoint保存太密或恢复路径宽泛做异步分布式checkpoint恢复时只加载受影响分区5.2 排查实操记录一次“训练Slow”的定位过程举一个真实场景训练跑到第3000步时Loss下降趋势正常但吞吐量从每秒3000个token掉到1800个接近腰斩。第一反应是看网络。用hccl_tests重新测AllReduce带宽发现确实从正常值掉了一截进一步定位到某台机器的某个网口反复进出交换机error。查交换机日志发现光模块温度过高触发了链路降速。把光模块换掉后带宽恢复正常但吞吐还是没回来。第二层怀疑IO问题。用顶部的工具查了数据加载线程的CPU占用发现有个进程在反复读取checkpoint文件而那个文件所在的SSD盘已经接近写满随机读性能暴跌。原来是检查点保存策略没做好每次全量checkpoint一堆小文件直接堆积在同一块盘上。清理盘上老checkpoint、把checkpoint路径指向并行文件系统之后吞吐终于恢复到2900以上。这例子不复杂的但这种情况在小集群能忍几天在大集群里会连锁引发大批机器卡在同步点耗时和损失都会放大。6. 独立部署国产算力集群的选型经验小结讲了这么多宏观和微观的挑战最后分享一点我个人在实际操作中形成的选型和落地经验。第一涉足国产算力要先小后大别一上来就规划万卡。建议先拿8卡节点跑通一个小模型的完整训练链路把驱动、CANN、容器、并行策略、调试工具全部验证一遍再把规模逐步扩到32卡、128卡。每一步都梳理出团队内部的部署手册和排查SOP。这样真到了几百卡甚至几千卡规模踩坑成本才可能控制在可控范围内。第二做一个明确的“已测版本组合”清单。英伟达生态版本可以稍微随意一点但昇腾生态必须强调版本锁定。驱动、固件、CANN、torch_npu、甚至操作系统内核版本通通写进文档任何人不得私自改动。我曾经见过团队因为升级了一次固件全网所有IPU的集合通信性能都掉了一半最后只能全集群回滚。第三容器化从一开始就做好。昇腾的容器化支持相对成熟把开发环境、训练环境、推理环境分别固化到镜像里能省掉大量环境互踩的烦恼。用Kubernetes还是Slurm做调度看团队习惯但一定要留出抢占式队列训练任务、测试任务、调优任务在同一个集群里优先级必须清晰否则一群人互相挤占谁的任务都跑不动。第四给自己的团队也备一个“云上兜底方案”。国产算力虽然文章开头说了成本可控但有些极端场景下比如临时要跑一个GPU调优实验、需要和最新CUDA算子做对比时混合使用通用云GPU资源做补充能大幅提升整个研发节奏的应变能力。回到DeepSeek和16万颗昇腾芯片这件事上来。不管最终确切数字是多少这个方向已经足够清晰国产算力正从“能用”走向“规模化用好”的阶段。大规模集群工程里没有捷径算法、框架、网络、能源、调度每一个环节都得硬碰硬地去摩擦、去优化。这也正是做我们这行最有意思的地方——看着一个十几万卡的集群从图纸走向稳态运行那种翻越工程高墙之后的确定性比任何概念都值钱。