2019年,陈维离开了工作近二十年的中兴通讯。过去二十年,他主要负责IP网络产品,关注广域网、园区网,以及复杂业务环境下的网络功能。离开之后,他仍然没有离网络太远,先后做过交换机、芯片和白盒设备。
变化发生在2023年。ChatGPT带来的大模型热潮迅速传导到国内,模型公司密集成立,算力需求骤然增长,一场围绕GPU的争夺随之展开。也正是在这个时间点,经由一位共同认识的老师介绍,陈维接触到了刚成立不久的基流科技。
基流科技成立于2023年2月。创始团队最早判断,随着模型参数和算力集群规模扩大,网络与通信可能成为AI基础设施中的关键瓶颈,因此将网络列为重要业务方向。陈维此前积累的网络和白盒交换机经验,与这条路线恰好吻合。公司成立不久,他便加入,成为早期团队成员之一。
同样都叫交换机,差别很大
从传统通信设备公司进入一家AI基础设施创业公司,陈维面对的并不只是业务方向的变化。过去做广域网和园区网,设备要承载复杂的业务功能;AI集群中的网络则更像一个高性能局域网,评价标准更加集中:带宽能否足够高,时延能否足够低,数千张加速卡之间能否及时完成数据同步。
“同样都叫交换机,但实际上有很大差别。”陈维说。
另一种差别来自工作节奏。大公司更强调流程和质量控制,一项产品需要按照既定流程逐步推进;创业公司更强调快速响应和迭代,一个问题白天暴露出来,晚上可能就要找到原因并推动解决。陈维职业轨迹中的这次转向,恰好发生在国产算力从“先解决有没有”进入“怎么把算力真正用好”的阶段。
2023年,大模型创业潮刚刚兴起,海外高端GPU供应又受到限制。对于不少模型公司和算力建设方而言,当时最迫切的任务不是比较不同方案的集群效率,而是先获得足够多的加速卡。陈维将那个阶段概括为“先解决有没有”。当时国产AI芯片的数量和成熟度都相对有限,只要一家公司能够把设备组织起来,让模型顺利运行,就有机会进入项目。客户对于性能、稳定性和软硬件协同的要求,还不像今天这样严格。
几年后,情况发生了变化。国内AI芯片供应商和产品选择不断增加,互联网公司也陆续推出自研芯片。国产算力供给增多之后,单纯拥有一批卡已经不能说明问题。客户开始追问:集群能不能持续稳定运行?训练任务中断后能不能迅速找到故障点?不同芯片之间能不能迁移甚至协同使用?理论算力又有多少能够转化为有效算力?
换一种卡,变成一项系统工程
国内既有GPU,也有NPU以及其他面向AI计算设计的加速器。不同芯片拥有不同的软件栈、运行库和算子实现。模型虽然大多运行在PyTorch等框架之上,但芯片厂商仍需要按照框架接口适配自己的算子和通信库。接口能够对上,只意味着模型具备了运行的可能,并不代表性能已经达到生产要求。
一套模型原本在某种GPU上运行时,计算和通信的顺序可能已经经过反复调优。迁移到另一种芯片之后,即使上层接口保持一致,单个算子的执行时间、显存管理方式以及通信节奏都可能发生变化。陈维举了一个例子:一种芯片完成某段计算需要三秒,换到另一种芯片后可能只需要两秒。如果原有的计算与通信调度方式没有随之调整,二者就无法充分重叠,部分加速卡会陷入等待。单个环节只是多等待了一点时间,但把这种等待复制到上千张卡和成千上万次训练迭代中,就可能形成明显的性能损失。
在陈维看来,模型在不同国产芯片间迁移时,框架本身通常不是工作量最大的部分。真正困难的环节主要集中在算子和通信:缺失的算子需要补齐,已有算子需要重新调优,集合通信库需要适配,显存管理以及计算与通信的重叠策略也要重新安排。运维系统同样需要调整,不同芯片暴露出的监控指标、错误类型和变量名称并不完全一致,原有的调度、监控和故障诊断工具往往无法直接搬到新平台。
表面上只是“换一种卡”,落到生产环境中,却变成了一项涉及框架、算子、运行库、通信、调度和运维的系统工程。更重要的是,完成这些适配,只能说明芯片在一个系统中“能够运行”,并不意味着它已经具备规模化交付能力。少量服务器上被掩盖的兼容性问题、通信损耗和调度开销,一旦复制到更大的集群中,往往会进一步放大。
当集群从几十张卡扩展到几千张甚至上万张卡,原本只是系统环节之一的通信,开始成为影响整体效率的关键变量。早期模型规模有限,几十张卡就可能完成一次训练,此时即便存在一定通信损耗,也未必会成为影响整体效率的关键问题。但随着模型参数量增长,训练和推理进入千卡、万卡规模,局部的延迟和异常会被更大范围地放大。
大模型训练本质上包含持续发生的计算与通信过程。模型被拆分到不同加速卡上,每张卡完成一部分计算,再通过集合通信进行数据同步。如果一次同步出现延迟,后续计算便无法按时开始。此时等待的不是一张卡,而可能是一整组甚至大量加速卡。从GPU、网卡和交换机,到光模块、链路和通信协议,任何一个环节出现异常,都可能影响整个训练任务。
更复杂的是,AI训练的网络流量往往具有明显的突发性:加速卡先进行一段计算,再在较短时间内集中同步大量数据。把时间尺度拉长来看,平均带宽占用未必特别高;但在同步发生的瞬间,网络需要快速提供足够的吞吐能力。这意味着,传统的平均带宽指标并不足以反映集群的真实状态。系统需要把观测粒度缩小到更短的时间切片,才能看到瞬时拥塞、链路降级,以及计算和通信没有充分重叠的问题。
几个百分点,为什么值得花一年
基流科技早期选择从RoCE网络和集合通信切入,也与这一判断有关。一方面,大模型从一开始就是分布式系统,加速卡数量越多,同步效率越重要;另一方面,英伟达对网络能力的持续整合,也让行业越来越重视GPU性能之外的互联能力。与此同时,基流科技接触到的早期客户已经开始遭遇实际的网络问题:单卡能够正常运行,扩展到集群之后,性能和稳定性却无法达到预期。公司的早期项目之一,就是帮助客户处理集群里的网络问题。
“我们不做GPU,而是聚焦算力集群的软硬件协同与通信跨层优化。如果要帮助客户提高集群性能,对我们而言,通信和网络就是最可能发挥作用的地方。”陈维说。
2023年,基流科技先搭建RoCE网络能力,之后开始优化集合通信,推出了VenusCL通信组件。其思路之一,是重新分配CPU与GPU在通信过程中的工作,让GPU尽可能把计算资源留给模型计算,同时通过优化数据拷贝、搬移和通信时间,使计算与通信更充分地重叠。
按照陈维提供的项目数据,在客户已经对千卡集群完成基础调优的前提下,基流科技的通信库还能够进一步带来约2%—6%的MFU性能提升。几个百分点看起来并不大,但放到万卡集群中,意义会发生变化。对于投入巨大的算力集群而言,有效利用率每提高一个百分点,都意味着同样一批硬件能够完成更多计算任务。
基流科技曾按照特定万卡项目的硬件投入规模做过粗略折算,认为2%—6%的提升可能对应上亿元级别的既有算力资源价值。但这一口径并不等于客户能够直接节省同等金额的现金,更准确地说,它描述的是既有硬件利用效率提高后所释放出的额外计算能力。实际收益取决于芯片价格、集群配置、工作负载以及原有优化水平。为了获得这几个百分点,基流科技前后投入了接近一年时间。
这一过程与公司进入行业的时间窗口也密切相关。2023年,客户首先需要有人把集群搭起来。因此,只要团队具备系统建设能力,客户往往愿意给新方案一次机会。方案在实际环境中证明有效之后,就有机会进入更多项目,再利用更大规模的集群继续迭代。陈维坦言,他们能发展到如今这样的规模,除了技术上的积累外,也得益于抓住了当时的窗口期。如今客户已经拥有更多成熟方案,也不会轻易将大规模生产集群项目交给一个缺乏案例的新团队。
“当时确实是一个窗口期。”陈维说,“客户愿意让我们尝试,做出效果以后,才形成了正向循环。”
千卡以后,故障定位必须从经验变成系统能力
集群从几十张卡扩展到几千张卡之后,另一个明显变化是:很多问题已经无法继续依赖工程师逐台设备排查。陈维提到了一种在大模型训练中并不少见的故障现象——训练Hang。训练任务没有正常退出,也没有明确报错,但计算不再继续向前推进,整个任务表现为“卡住”。问题可能来自某张GPU,也可能来自服务器、网卡或者网络链路。少量设备时,工程师还可以逐台检查;到了数千张卡的集群,传统排查方式可能需要几天,而且故障未必能够稳定复现。
基流科技曾在一个约3800张卡的训练集群中遇到类似问题:任务运行半个多小时后便会停止,多次重试仍无法稳定运行。团队利用研发的VenusNOC运维监控组件中的Megatrace特性功能,通过对通信过程进行打点及智能分析定位Hang和slowdown慢节点,在故障再次发生时快速定位到故障点在一台服务器中的一张GPU。移除故障节点之后,训练恢复了长期的稳定运行。
这个案例使用的是同一种加速卡,但它揭示了一个更普遍的问题:即使硬件型号完全一致,大规模集群内部仍然会产生个体差异。GPU可能出现ECC或其他硬件错误,设备可能因为温度异常而降频,网络链路也可能从四条通道降到三条。任何一个局部变化,都可能让整体训练效率下降,甚至导致任务中断。到了千卡规模,故障本身已经不是唯一的问题,能不能足够快地发现和定位故障,也开始直接影响集群的有效产出。
因此,在陈维看来,千卡以上集群必须从架构层面建立可观测性和故障定位能力。系统不仅要知道某张卡是否在线,还要理解一次训练迭代中计算何时结束、通信何时开始、哪些节点没有按预期完成同步。只有把模型框架、通信库和底层网络的状态关联起来,才可能在问题发生后快速缩小定位范围。这也是为什么,国产算力竞争正在从芯片竞争转变为系统竞争。单卡性能仍然重要,但一张性能更强的卡,不一定能够组成效率更高、更稳定的千卡集群。随着规模扩大,“可观测、可诊断、可恢复”也开始成为算力系统能力的一部分。
多种芯片并存,怎么降低协同成本
大规模集群内部存在系统复杂度,而现实中的算力中心往往还面临另一个问题:同一家企业很难始终只拥有一种芯片。有些客户分期建设集群,不同阶段采购了不同型号的加速卡;有些客户早期使用海外GPU,后来受供应和政策变化影响逐步转向国产芯片;也有客户希望继续利用现有设备,避免旧资源被闲置。在基流科技接触到的一些客户和算力中心中,多代际、多型号乃至多厂商芯片并存已经出现。如何利用这些已有资源,由此成为一个现实问题。
但异构计算并不是将不同加速卡接入同一个网络就结束了。不同芯片的计算性能、显存容量、通信库和同步节奏都可能不同。如果简单让性能差异明显的设备共同执行同一类同步任务,速度较快的设备可能长期等待速度较慢的设备,最终效率受制于其中较弱的一环。
一种思路,是尽可能让高频通信发生在同型号设备内部。服务器或资源组内部采用同一种加速卡,继续调用其原生通信能力;只有在跨芯片、跨资源组通信时,再增加接口封装和额外调优,以尽量保留原生性能,降低异构带来的损耗。另一种思路,则是让不同芯片根据它们各自的能力重新拆分工作负载。例如在部分推理场景中,可以通过Prefill与Decode分离,让更适合计算密集型任务的芯片承担Prefill,再让显存带宽、容量等特征更适合的芯片承担Decode。不同芯片由此不必执行完全相同的任务,而是承担各自更适合的环节。
陈维并不回避异构带来的性能损失。开放系统很难在所有场景中都达到单一软硬件体系深度优化后的极致性能。他举了一个假设性的例子:如果三组原本无法协同使用的算力资源,即便通过异构方案组织之后,哪怕单组资源的效率会有一定损耗,三组资源共同提供的有效算力仍可能高于只使用其中一组。这里追求的并不是“异构之后单卡性能反而更高”,而是用一部分极致性能,换取更高的存量资源利用率和更大的硬件选择空间。
随着国产芯片型号和供应商不断增加,部分用户面对的已经不再是“某一种芯片性能是否足够好”的单点选择,而是如何把来自不同厂商、采用不同软件栈的算力组织到同一套生产体系中。如果每一种芯片都对应一套相对独立的开发、调度和运维环境,那么硬件选择增加的同时,模型迁移、人才培养和运维管理的成本也可能随之提高。
因此,真正需要解决的未必是让所有国产芯片变成同一种架构,而是区分哪些差异应该继续保留,哪些差异已经变成了用户重复承担的适配成本。对芯片厂商而言,围绕自身硬件深度优化的软件栈既是性能来源,也是竞争壁垒;但站在用户一侧,接口越割裂,迁移和协同的难度就越高。这形成了一组很难彻底消除的取舍:厂商既希望保留差异化能力,又希望兼容主流框架和应用;用户既希望迁移方便、设备选择丰富,又希望获得尽可能接近原生平台的性能。
陈维认为,国产算力最终仍会走向一定程度的融合和标准化,但这种统一不会一步完成,也不可能消除所有底层差异。在计算层,不同厂商会逐步支持更通用的框架接口;在集合通信层,虽然英伟达NCCL、华为HCCL以及其他通信库的具体实现不同,但AllReduce、All-to-All等基本集合通信操作存在形成更统一调用方式的空间;在网络层,不同厂商也会围绕更开放的协议和设备展开探索。
热门跟贴