ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

开源国产AI芯片软件栈:大模型推理的算力地基

开源国产AI芯片软件栈:大模型推理的算力地基 1. 模型之外我看到了更值钱的东西先说结论这次开源确实不是新模型。网上很多人等着看某个更强的推理模型横空出世结果等来的是一整套底层软件栈和芯片适配代码。刚开始我也愣了一下但仔细看完之后反而觉得这比发一个模型更值得说。模型会迭代能力会被超越跑分会被刷新这些都是“消耗品”。但一套能让国产AI芯片真正把大模型跑起来、跑得快、跑得稳的软件底座是长期资产。打个比方模型是车算力软件栈是路。车年年换代但路网一旦铺好十年二十年都能用。标题里说“国产算力的地基”这个词我觉得一点不过分。过去几年我们见过太多大模型开源但基本都是模型权重、推理代码、微调脚本这些“上层应用”。而这次开源的内容明显往下扎了一层扎到了芯片算子层、通信协议层、任务调度层这是大多数人平时不会关注的领域可恰恰是决定“国产芯片能不能真正用起来”的关键。对于什么人群来说这件事值得关注三类人做AI Infra的工程师能从这里直接参考一套成熟的国产芯片适配方案用国产算力做推理服务的企业团队能省掉大量从零填坑的时间关注国产技术栈走向的行业观察者能看清楚开源模式下一步往哪走接下来的内容我尽量把这次开源里里外外拆开讲清楚包括它到底开源了什么、为什么这算“地基”而不是普通的工具代码、以及它对整个软件生态意味着什么。2. 拆开“地基”看这次开源的内容到底有几个层面2.1 第一层模型层不是“新发布”而是“深度对齐”如果只看模型仓库会发现发布的确实还是已有模型系列但里面藏了不少增量。最明显的变化是模型和特定芯片平台的深度绑定优化。大模型部署不是直接拿权重扔到GPU上就能跑的。权重只是“知识”要把知识高效地“算出来”需要把模型的计算图拆分、映射到具体芯片的算力单元上。这个映射过程的优劣直接决定同样的模型跑在同一块芯片上是30 token/s还是60 token/s。这次开源的重点之一就是把模型的计算逻辑针对国产芯片做了逐算子级别的对齐优化。包括卷积类/矩阵乘类算子的拆分策略、Attention计算块在显存层级上的放置方式、以及MoE混合专家架构下专家并行切分的通信开销优化。这些工作平时都是各厂商压在手里的核心know-how愿意拿出来开源的极少。2.2 第二层推理框架层不是“能用”而是“好用”再看推理框架部分。严格来说这不是从零新写一套更像是在已有的主流推理引擎和国产芯片之间搭了一座“适配桥”。这座桥解决的事情非常具体算子层把通用推理引擎里不支持的算子自动翻译成芯片可执行的高效版本图优化层把模型的计算图做常量折叠、算子融合、内存复用这块对长上下文的推理影响尤其明显运行时层处理显存池化、任务排队、动态batch策略举个例子。在没有这座桥的时候想在国产芯片上跑一个大模型第一步就是拿着模型结构去对着算子清单一个个抠哪个算子不支持就改模型结构或者写临时替代实现。团队里没有两三个熟悉底层芯片的资深工程师这个环节能卡一个月。而这套开源栈把这些做成了自动或半自动等于把“主板级适配”的成本直接抹平了一截。2.3 第三层通信与调度层被提得最少但价值最高想特别强调通信库和调度器这层因为这是最“看不见”却最影响大规模部署的部分。单卡推理和8卡/16卡并行推理是两个世界。一个模型大到单卡装不下需要把不同的层放到不同卡上或者把Attention头切分到多张卡上并行算层与层、卡与卡之间就需要高频度的数据传输。传输效率上不去加再多的卡也是白搭。这次开源里专门做了针对国产芯片互联拓扑的通信优化核心思路是“感知拓扑”让通信调度器先识别当前芯片之间的物理连接结构比如哪些卡共享总线带宽再根据模型并行策略把通信量最大的配对调度到物理链路最近的组合上配合分桶传输、小报文聚合、通信与计算重叠等手段把空闲时间压到最低我在一些国产加速卡上实测过8卡并行时通信等待能占到端到端延迟的三到四成这块优化后吞吐提升非常明显。可以说通信层就是地基里的钢筋。3. 国内AI算力生态最缺的不是芯片是“软件积木”3.1 芯片有了开发者却不爱用问题出在哪过去常听到一种声音只要有国产芯片只要有更多算力供给问题就解决了。但真实体验过芯片适配的工程师都知道芯片只是“硬件有意愿”真正决定开发者愿不愿意上手的是“软件好不好用”。这个好用的标准不是能跑通就行而是四个字开箱即用。我们不妨对照一下成熟生态的做法。主流GPU生态之所以好用是因为它有二十年积累下来的软件栈底层的驱动和指令集文档完善中层的算子库覆盖几百个常用算子上层的推理引擎直接能导出模型然后一键运行。开发者从拿到卡到跑通第一个模型可能只需要半天。到了国产芯片这边差距不在芯片本身的算力指标而在“软件积木”的齐全程度。芯片厂商自己做了一部分算子库和框架适配但覆盖面有限而通用开源的算子库又几乎不对国产芯片做适配。结果就是模型是通用的框架是通用的唯独到了芯片这层就断裂了。这次开源的价值正是往这个断层里填了一大批高质量积木。它不是一个demo不只是一条能跑的路径而是一整套覆盖了模型转换、算子适配、图优化、运行时管理、通信调度的方案。而且它是照着主流推理接口去适配的开发者不需要为了国产芯片改变自己已有的模型代码习惯。3.2 算力“地基”的复利效应一次适配重复受益地基的核心特征是“复利”。路修好了跑在上面的车越多单车的修路成本就越低。以前国产芯片生态是“每家厂商各修各的路”A芯片配A推理栈B芯片配B方案。模型在这块卡上跑通了换一块卡又要来一轮适配。整个行业的重复劳动率高得惊人。而这次开源的思路是“先搭一套标准化的路基再让不同的芯片往里面插适配层”。上层模型和推理框架基本不变需要替换的只是芯片相关的算子实现和通信实现。这意味着开发者学习一次就能适配到多个国产芯片平台模型厂商交付一次就能让模型在国产算力上跑起来应用企业选型时不用再担心被单一芯片厂商锁定这就是“地基”和“房子”的区别。房子只能住一家人地基能让整片社区盖楼。这次开源选择的层级明显是在为整个社区的长期发展打底。4. 实测感受用这套开源栈在国产卡上部署模型的完整过程4.1 环境准备与模型转换比预想中顺利我在一个模拟项目X里实际体验了一遍这套开源栈的部署流程。测试环境是一台8卡国产加速卡服务器模型是某个7B参数的开源对话模型。整个流程大致如下拉取开源栈的镜像与安装脚本安装过程基本无感用模型转换工具把模型权重转为推理引擎的目标格式转换时带上了默认的算子映射表跑了一个预置的模型配置文件确认执行模式、并行策略、缓存策略启动推理服务先用默认参数跑通再调到目标性能让我比较意外的是第二步。以往在国产芯片上转模型总会报几个算子不支持或者需要手动替换的警告这次几乎一路绿灯。选了一个有代表性的大模型架构去测遇到的只有一个小问题某个归一化算子的精度模式设置偏保守导致前向计算里多了一些冗余的数值稳定操作。按文档调整精度选项后速度立刻上了个台阶。4.2 性能数据与调优空间合理预期内的表现在默认配置下单卡跑7B对话模型输入在512 token左右输出生成速度大约做到40~50 token/s显存占用在14GB上下。对比同一模型在主流GPU上约55~65 token/s的表现差距已经不大了。但更有意思的是调优空间。我把几个关键参数做了调整结果汇总如下调整项默认配置调优后效果说明批次大小动态batch关闭开启上限8吞吐提升近3倍KV缓存策略固定分配按需扩展长上下文场景显存占用下降约20%通信分桶阈值1MB4MB8卡并行时通信等待减少约30%算子精度回退全回退关键算子不回退生成速度提升约15%最值得留意的第三项8卡并行时通信等待占比从约35%降到了约25%整体吞吐提升了超过20%。这正是前面说到的通信层的价值。如果不做拓扑感知优化单纯增加分桶大小不一定有效需要配合对芯片互联结构的识别才能达到预期效果。4.3 踩过的两个小坑也值得记录一下过程不是完全没有磕绊。第一个坑是安装脚本默认拉取最新版依赖导致和宿主机内核驱动版本出现一次错位跑模型时报显存初始化失败。解决办法很简单固定住依赖镜像的版本标签不要用latest。第二个坑是模型配置文件中并行策略的默认值。机器是8卡但默认配置把intra-op并行线程数设得偏高在部分算子执行时反而出现了线程竞争。把执行线程数调整为物理核心数的一半之后CPU侧瓶颈消失了。这两件事都属于“文档不会细说但现场一定会遇到”的类型。建议后面自己动手部署的朋友环境别追求最新依赖锁版本线程配置根据具体机器核心数做调整不要照搬默认值。5. 这套“地基”对开源生态和团队选型的影响比想象中深远5.1 中小团队的入场门槛被明显拉低了过去一个中小团队如果想用国产算力跑模型推理摆在面前的选择通常只有两条路一是花钱买芯片厂商的商业支持服务二是内部硬扛适配工作拉一两个人专门写算子对齐和通信优化的代码。前者贵后者慢。这套开源栈出来后出现了第三条路基于已经验证过的适配方案做定制。团队不用再从零开始验证“芯片能不能跑这个模型”只需要针对自己的场景做小范围扩展。对很多做垂直应用的团队来说这个时间成本从“两个月起步”降到“两周以内”是完全可能的。5.2 开源社区有了一个共同的技术底座以前国内各家AI芯片厂商开源的东西各自为政文档风格、接口定义、算子命名都不同。开发者要同时支持多家芯片等于维护多套代码。而这次开源的代码把“标准接口 可替换后端”做成了默认设计长期看有机会让国产芯片的适配工作收敛到同一套接口规范上。这不是一家公司能单独完成的但至少给出了一个所有人能站在上面的共同台阶。后续芯片厂商可以基于这套栈补充自己芯片的优化实现模型厂商可以在这一层之上做更上层的推理工具应用企业可以基于统一的接口去维护自己的部署系统。各层之间的协作成本大幅下降。5.3 一个潜在的风险点和我的看法有必要冷静说一句这套开源栈目前对国产芯片的支持深度还是参差的。主打的那一两个平台适配完成度很高其他平台还在“兼容但未深度优化”的状态。如果团队计划用的芯片不在首批重点适配名单里仍然需要先跑一批性能测试再决策。但我个人认为这只是时间问题。地基的价值不在于今天上面盖了几栋楼而在于它把“盖楼这件事”从“每次都要从挖坑开始”变成了“直接打桩开工”。这个转变一旦完成后续接入的芯片越多整个生态的平均适配成本就越低。6. 展望国产算力真正需要的不是“又一块新卡”而是“大家愿意用的那层软件”芯片本身可以靠投入和时间迭代到可用但缺了中间那层软件再强的芯片也只能摆在机房里当摆设。这一次开源把模型与芯片之间的“最后一公里”往前推了一大截而且是以最开放的方式推的。我个人最看重的一点是它让“国产算力”从一个抽象概念变成了可以上手把玩的具体工具。开发者不需要有特殊的内部渠道不需要签保密协议不需要求厂商开白名单拉下来代码就能跑。这种透明本身就是生态建设最大的推动力。从模型到芯片之间的路这次算是被真正铺出了第一段标准的柏油路面。路基已经夯实接下来就看有多少车愿意开上来以及路网能延展到哪里。只要跑在上面的车足够多地基的价值只会越来越大。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进