DeepSeek 把昇腾那一层的软件也开源了:六个组件,和英伟达版一一对应

这次开源的,是模型底下那一层

昇腾软件栈:模型框架到芯片之间缺的中间几层

9 月 30 日,DeepSeek 宣布把面向华为昇腾算力平台的一整套基础设施组件开源,范围包括高级语言编译工具、计算库和分布式通信库。官方的说法是,这些组件与它此前为英伟达平台开源的版本一一对应。

这件事的分量和「又发了一个模型」不太一样。大模型能不能在某种芯片上跑得好,从来不只看芯片的算力数字,还要看这上面有没有人把编程模型、算子库、通信库这些中间层补齐。缺了这些,开发者要么自己写底层代码,要么干脆换平台。

开源的六个项目分别是 TileLang 昇腾版、DeepGEMM、DeepEP、TileKernels、FlashMLA 和 DeepSelect,相关代码已经放到 GitHub。

要理解这六个名字为什么值得一起看,可以把一颗 AI 加速卡想象成一块空地:制程决定这块地有多大,但真能盖起楼、盖多高,靠的是上面的软件。这次开源补的就是这一层。

六个组件各自管什么

DeepSeek 面向昇腾开源的六个组件及其职能

把这六个名字摆在一起看,覆盖的其实是训练和推理里最容易被卡住的几段路。

TileLang 昇腾版做的是把昇腾的 Ascend C 底层指令封装起来,让开发者用高级语言写算子,同时不丢掉硬件性能——DeepSeek 说它训练中用到的每一个 TileLang 算子,在昇腾上都有对应的高性能实现。DeepGEMM 管通用矩阵运算,这是几乎所有模型都要反复用的部分;DeepEP 管大规模跨设备通信,也就是几千张卡之间怎么把数据递过去;TileKernels 提供向量计算和访存类算子;FlashMLA 是稀疏注意力算子,直接关系到长上下文处理的开销;DeepSelect 负责数据筛选。

DeepSeek 在说明里提到,多项关键测试中,这些组件的计算与通信性能已经接近硬件上限。这是厂商自己给出的口径,实际落地的表现还要看更多第三方测试。

换个角度看得更清楚:矩阵运算决定单卡算得快不快,跨设备通信决定几千张卡能不能一起干活,注意力算子决定长文本推理贵不贵,数据筛选决定训练时喂进去的样本质量。四条线都在,一个平台才谈得上「能用」。

TileLang 为什么被单独拎出来讲

六件套里最受关注的是 TileLang,因为它站的位置最靠上——在开发者和芯片之间。以前想榨干昇腾的性能,基本要贴着 Ascend C 写代码,门槛高、迁移成本也高。TileLang 昇腾版把这一层包起来,让熟悉高层写法的人也能上手。

DeepSeek 的说法是,要建一套自主可控的算力软件生态,第一件要做的事就是有一个通用、好写、又不牺牲性能的高级语言。这个定位让人很容易联想到 CUDA 的角色,但两者并不在同一个量级上:CUDA 背后是十几年积累的库、工具链和开发者习惯,TileLang 现在补的是其中一小块。

更实际的证据来自项目本身。开源的 TileLang-Ascend 项目公开了自己的性能数据:常规 GEMM 算子大约是手写 Ascend C 的 0.98 倍,向量算子约 0.96 倍,Flash Attention 这类 cube-vector 混合负载约 0.95 倍。这些是项目自报的数字,不能当成独立结论,但它至少说明有人在昇腾上真的把高性能算子写出来并跑了测试。

对写模型的人来说,这几个数字的意义在于「不用重写一遍」。如果换芯片意味着把算子全部按底层指令重做,多数团队的第一反应是放弃;如果只是把高层代码改一改、性能还能保住九成以上,试一下的成本就低得多。

硬件那头:昇腾 950 与 128 卡超节点

128 卡超节点:把加速卡拼成一个逻辑单机

软件之外,DeepSeek 还提到双方在硬件层面有合作:一起推进基于昇腾 950 的 128 卡超节点方案,并对计算与通信做了针对性优化。

把有限数量的加速卡通过高速互联拼成一个逻辑上更大的计算单元,是国内这两年在算力上最实在的一条路。卡的数量能堆,但通信如果跟不上,堆出来的算力就只是账面数字,这也是为什么跨设备通信库会被和计算库放在同等重要的位置。

一个常被引用的对比是,昇腾 910C 在推理场景下的性能大约是英伟达 H100 的六成。绝对值上的差距还在,但配合软件层一起优化之后,实际可用性会比这个比例高一些。

把 128 张卡连成一个逻辑整机,难点从来不在「连得上」,而在「连得够快、够稳、够可预测」。训练任务里一次通信卡顿,整批卡都要等它;推理任务里通信延迟高一点,用户端就是明显的卡顿。这也是超节点这个概念近几年反复被提起的原因。

真正难补的不是芯片,是生态

为什么说软件这一层比芯片更难?因为芯片的差距可以用数字衡量,生态的差距不行。

以英伟达为例,它的壁垒从来不只是那块卡。十几年时间里,围绕 CUDA 长出来的东西包括:几千个已经调优过的算子库、几套成熟的编译和调试工具、几乎所有主流框架的第一时间适配、大量论文和教程默认用的写法、以及一代工程师的肌肉记忆。这些东西互相咬合,换掉任何一环都会牵连到其它环节。

国内厂商在软件栈上其实也做了很多年。以昇腾为例,它有自己的计算架构和框架适配,也有配套的算子开发语言。问题在于,这些工作大多由厂商自己推动,生态里的第三方力量有限——写算子的人少、性能调优的经验分散、遇到问题可参考的公开案例不多。

这次不一样的地方在于,DeepSeek 是站在「使用者」而不是「供应商」的位置做这件事的。它要先让自己的模型在这种硬件上跑得足够好,再把中间层开源出来,这种行为本身就会降低其他团队的试错成本。开源代码比宣传材料更有说服力,因为别人能直接跑、直接量。

对开发者意味着什么

如果你在做模型训练或推理,短期内能感知到的变化大概是三条。

第一是迁移路径变清楚了。以前要把一套训练代码搬到非英伟达平台,通常得从算子层重新做一遍;现在至少高层写法和通信库有了现成的对应实现,需要自己动手的部分减少。

第二是选型的依据多了一个。做技术选型时,最怕的是「不确定能不能跑起来」。有开源实现躺着那里,可以先用小规模任务试,量完再决定要不要上量,这种「先验证后投入」的路径比看参数表可靠。

第三是推理服务的成本结构可能会变。长上下文推理里,注意力算子和通信的开销占比很高,这两块恰恰是这次放出来的重点。如果这些实现真的能在生产环境里稳定跑,同等的服务质量下硬件成本就有下降空间。

当然,代价也存在。新平台的文档和社区还在积累期,遇到问题可参考的答案少;工具链的调试体验大概率不如成熟平台顺手。愿不愿意承担这部分成本,取决于你的团队有多少余量。

意义和它的边界

对外部来说,这一步最直接的效果是降低了迁移成本。此前换芯片意味着重写代码、重新调优、再花几个月把性能追回来,现在这部分工作被开源项目承担了一部分,愿意尝试昇腾的团队会变多。国内几家大厂此前已经在追加昇腾的订单,这次开源等于又推了一把。

但它也不是万能钥匙。开源组件解决的是「能不能写、能不能跑」,解决不了制程、产能和集群规模这些问题;而且生态只有在更多人真的把代码搬过来之后才算立住,目前这个进程才刚开始。

还有一点需要冷静看待:性能数字是项目自报的,且集中在算子层面。真实业务里的瓶颈常常不在单个算子,而在数据加载、任务调度、故障恢复这些工程环节。这些部分开源件帮不上多少忙。

开源本身也不等于免费。把代码拿过来跑通,只是第一步;要把它调到生产环境能承受的稳定性,团队得投入人力去读源码、提 patch、跟上游版本。这份隐性成本在评估阶段最容易被忽略,却往往决定了最终能不能坚持用下去。

对普通用户来说,这件事短期内不会改变你手机上的任何体验。它的价值在几年之后才会显形:如果国内 AI 服务的算力成本真的被压下来,你用到的价格和响应速度都会跟着变。

接下来该看什么

第一看第三方复现。厂商自报的性能数据可以参考,但真正能定性的,是别人用不同模型、不同规模跑出来的结果。如果几个月内出现多个独立测试,且结论一致,这件事才算落地。

第二看社区活跃度。开源只是起点,能不能持续有人提交、有人修 bug、有人写文档,决定了它会不会变成一份「发完就没人管」的代码。仓库的提交频率和 issue 响应速度比发布会上的 PPT 更能说明问题。

第三看上层框架的适配速度。算子库再快,如果主流的训练和推理框架没有跟着适配,普通开发者还是用不上。接下来一段时间,值得留意的是这些组件会不会被并入常见的部署链路。

最后看实际业务里的账单。技术指标好看,不等于单位算力成本更低——如果迁移带来的人力投入、运维复杂度和故障率把省下来的钱吃掉,那这笔账还是划不来。对一个公司来说,愿意换平台的前提永远是「总成本更低」,而不是「性能数字更好看」。