夜雨聆风学习资料网

ARTICLE · 1129965

国产AI芯片为什么还要补软件栈

国产AI芯片为什么还要补软件栈

摘要:AI芯片交付的不只是峰值算力,还要让模型能够迁移、编译、运行和扩展。驱动、编译器、算子库、通信库、框架与推理引擎,决定硬件利用率和项目上线周期。本文拆解国产AI芯片补软件栈的任务、进展与验证指标。

同一颗AI芯片,标称算力不会因为软件版本变化而改变,实际训练速度、推理吞吐和多卡扩展效率却可能明显不同。

原因在于,模型并不会直接向晶体管下达命令。PyTorch计算图要经过框架适配、图编译、算子选择、内存分配和任务调度,数据还要通过通信库在多张卡之间移动。任何一层覆盖不足或优化不充分,硬件计算单元都可能等待。

国产AI芯片补软件栈,并不是给硬件增加一个控制程序,而是把理论算力转换成可迁移、可扩展、可维护的生产系统。

一、AI芯片的软件栈到底包括什么

完整软件栈可以从硬件向上拆成八层。这些层的边界会因厂商架构而变化,但承担的任务大致相同。

1. 驱动与运行时:让操作系统认识设备

驱动负责设备发现、任务提交、显存管理、中断和故障处理;运行时向上提供设备、流、事件、内存和内核调用接口。

芯片“能点亮”只说明驱动完成了最基础的设备管理。生产环境还要处理多进程并发、容器隔离、显存回收、错误恢复和版本兼容。

2. 编译器:把模型计算图翻译成芯片指令

AI模型由矩阵乘、注意力、归一化、激活函数等计算构成。编译器要完成图优化、算子融合、张量布局、精度选择、内存复用和指令调度。

同一个模型即使能够编译通过,不同的融合策略和数据布局也会产生不同的访存量。AI计算经常受显存带宽、片上存储和数据搬运限制,减少一次中间结果读写可能比增加一组计算单元更有效。

3. 算子库:把常用计算做成高性能积木

算子库提供矩阵乘、卷积、归一化、激活、注意力、排序和稀疏计算等实现。基础算子数量并不能完整反映覆盖能力,还要看数据类型、张量形状、动态维度和组合方式。

PyTorch官方的新加速器接入文档明确涉及内核注册与回退机制:不支持的算子可以回退到CPU以保证功能可用,但设备间的数据搬运会拉低性能。“模型能跑”与“算子全程在加速器上高效运行”是两个指标。

4. 通信库:决定多卡能否形成一套系统

单卡负责计算,多卡训练还要执行AllReduce、AllGather、ReduceScatter和All-to-All等集合通信。通信库要识别卡间拓扑,并协同PCIe、片间互联和网络设备安排数据路径。

大模型中的数据并行、张量并行、流水线并行和专家并行,对通信模式的要求不同。单卡性能较高,如果通信与计算无法重叠,扩展到数十张或数百张卡后仍可能出现效率下降。

5. 框架适配:让开发者继续使用熟悉的入口

PyTorch、PaddlePaddle和MindSpore等框架负责自动微分、计算图、模型组件和训练流程。芯片厂商需要接入设备管理、算子分发、分布式训练和混合精度等模块。

接口兼容可以降低代码修改量,但并不自动等于算子语义、数值结果和性能完全一致。框架版本更新后,插件、编译器与算子库也要同步迭代。

6. 推理引擎:把模型变成在线服务

训练完成只是模型交付的起点。在线推理还要处理请求排队、连续批处理、分页式键值缓存、量化、并行切分、前缀复用和流式输出。

大模型推理通常同时受到首Token时延、每Token时延、并发吞吐和显存容量约束。推理引擎要在这些指标之间做调度,不能只优化单次离线运行速度。

7. 开发与运维工具:定位性能和稳定性问题

开发工具包括调试器、性能分析器、精度比对、算子开发、模型转换和迁移工具。运维层还包括容器镜像、集群调度、监控、日志、告警和故障诊断。

没有可观察性,项目团队只能看到“任务变慢”或“训练中断”,却无法判断瓶颈来自算子、显存、通信、网络还是数据输入。

8. 模型与应用适配:覆盖真实工作负载

软件栈最终要服务具体模型。Transformer、混合专家模型、推荐模型、视觉模型和科学计算负载的算子与通信特征不同。

支持模型名称只是第一步,还要说明模型版本、上下文长度、精度、批量大小、并行策略和部署场景。模型结构持续变化,软件栈也需要跟随更新。

二、为什么“兼容CUDA”不能概括全部问题

CUDA长期积累了编程模型、编译器、数学库、通信库、框架适配、性能工具和应用生态。国产芯片降低迁移成本,通常会提供相近接口、源码迁移工具或框架插件,但兼容工作存在多个层次。

1. 源码兼容解决的是迁移入口

源码可以自动转换,意味着部分API和语法能够映射。随后仍要处理未覆盖接口、自定义算子、第三方依赖和数值差异。

2. 功能兼容解决的是“能否运行”

模型成功加载、输出正确,说明主要执行路径已经打通。若少数算子回退CPU、频繁重编译或产生多次数据格式转换,端到端性能仍会受到影响。

3. 性能兼容取决于软硬件协同

不同芯片的计算核心、片上存储、内存系统和互联结构不同。为一种架构优化的内核,不能仅靠接口翻译就在另一种架构上达到相同效率。编译器和算子库需要针对硬件重新安排分块、并行、访存和融合。

4. 生产兼容还包括稳定性与升级

企业需要固定版本矩阵、容器镜像、补丁策略、长期运行、故障定位和技术支持。模型框架升级后,插件是否及时跟进;驱动升级后,旧模型能否继续运行,都会影响部署成本。

因此,兼容接口是软件生态的一部分,不是软件生态的全部。

三、从“跑通”到“量产部署”,要过四道关

第一关:能运行

模型能够导入、编译并得到符合精度要求的结果,关键算子和数据类型已覆盖。这一阶段验证功能完整性。

第二关:跑得快

要测量算子利用率、显存带宽、编译时间、首Token时延、每Token时延和整体吞吐。热点算子需要逐个优化,不能只看芯片标称TOPS或TFLOPS。

第三关:能扩展

多卡和多机环境要测量集合通信带宽、并行效率、网络抖动以及故障重试。规模增加后,总算力增长不等于有效算力按比例增长。

第四关:能稳定交付

生产系统还要经过长时间压力测试、版本升级、容器部署、资源隔离、监控告警和故障恢复。客户实际承担的是迁移、运行和维护总成本,而不是单张卡的采购成本。

四、国内厂商的软件栈在补哪些环节

以下内容按各公司公开产品与官方技术资料整理。不同厂商的产品代际、开放方式和适配范围不同,不能仅凭组件名称直接比较性能。

1. 华为昇腾:CANN连接硬件、框架与推理服务

昇腾的软件体系包括驱动与固件、CANN开发套件、二进制算子包、神经网络加速库、PyTorch适配插件、HCCL集合通信库以及MindIE推理引擎。

昇腾官方安装文档显示,MindIE、CANN和Ascend Extension for PyTorch存在明确版本配套关系;MindIE部署还依赖算子包、神经网络加速库和模型库。这说明软件交付并非安装单一运行时,而是一组需要协同验证的组件。

观察昇腾软件进展,可跟踪主流模型的Day-0适配、动态图与自定义算子支持、HCCL多机扩展效率、MindIE并发推理表现以及版本升级的兼容周期。

2. 寒武纪:NeuWare覆盖计算库与推理工具链

寒武纪公开资料中的基础系统软件包括云边端应用开发环境、主流框架支持、调试与性能调优工具。其推理侧包括MagicMind推理引擎,计算与通信组件包括CNNL、CNCL等。

公司公开资料显示,MagicMind和CNNL用于其云端及边缘产品,并持续扩充视觉、语音和自然语言处理模型的算子覆盖。对这类平台,除模型清单外,还应关注动态形状、量化、自定义算子、跨代硬件兼容与多卡通信能力。

3. 昆仑芯:SDK从驱动延伸到模型转换

昆仑芯官网将SDK描述为从底层驱动环境到上层模型转换的全栈软件工具。该路线的重点是让XPU硬件接入训练与推理框架,同时通过编译、运行时、算子和工具完成模型迁移。

昆仑芯与百度体系的框架、搜索推荐和云服务场景具备协同基础。外部客户评价时仍需分别验证PyTorch等主流入口、模型覆盖、集群扩展、推理服务化和版本文档完整度。

4. 燧原科技:TopsRider承担软硬件协同

燧原科技公开申报资料将TopsRider定义为AI计算及编程软件平台,用于开发计算算子和通信算子,并支持主流生态应用迁移。

训练芯片需要同时处理编译器、算子、集合通信、分布式框架和性能分析。评估TopsRider时,可重点看大模型训练稳定时长、不同并行策略覆盖、集群扩展效率以及从模型迁移到上线所需工程量。

5. 摩尔线程:MUSA覆盖编译器、运行时、计算库和通信库

摩尔线程官方文档显示,MUSA SDK包括编译器、运行时、MUSA-X计算库、muDNN深度学习库、MCCL通信库,以及MUSIFY源码迁移和性能分析工具;框架与推理侧还提供Torch-MUSA、vLLM-MUSA和SGLang-MUSA等适配。

这套结构体现了GPU软件栈的完整链条:源码迁移降低入口成本,算子与数学库提供单卡性能,通信库支持多卡,框架插件和推理引擎连接模型应用。实际部署仍需按目标模型和集群规模测试各层成熟度。

五、补软件栈的难点在哪里

1. 算子覆盖是持续变化的目标

模型结构并不固定。注意力机制、混合专家、长上下文、低比特量化和多模态模型会不断引入新算子、新数据类型和新通信模式。

厂商既要补齐通用算子,也要优化热点融合算子。前者决定模型能不能运行,后者决定模型能不能高效运行。

2. 编译器需要理解硬件,也要跟上框架

编译器上接动态图框架和模型中间表示,下接芯片指令与存储结构。框架图语义变化、硬件代际变化和模型动态形状都会增加编译器复杂度。

编译成功率、编译耗时和生成代码性能需要同时改善,不能只优化其中一项。

3. 多卡性能是系统工程

多卡效率不仅由通信库决定,还涉及服务器拓扑、网卡、交换机、拥塞控制、并行策略和任务调度。硬件厂商需要与服务器、网络、框架和模型团队共同调优。

4. 开发者生态依赖长期积累

文档、样例、论坛、课程、工具链和第三方软件适配会降低使用门槛。一个问题能否被快速复现、定位和修复,直接影响客户项目周期。

生态建设无法通过一次版本发布完成,需要持续跟随开源框架和模型社区迭代。

5. 版本矩阵越完整,维护成本越高

驱动、固件、编译器、算子库、框架插件和推理引擎存在依赖关系。支持更多操作系统、框架版本和芯片代际,会扩大测试组合。

稳定版本、长期支持版本、补丁频率和升级指南,都是软件产品化能力的一部分。

六、评价国产AI芯片,哪些指标比峰值算力更有用

1. 模型与算子覆盖

▪️ 目标模型能否使用原生路径运行

▪️ 是否存在CPU回退,回退时间占比是多少

▪️ 动态形状、自定义算子和低比特量化是否支持

2. 端到端性能

▪️ 训练看每步时间、样本吞吐和达到目标精度所需时间

▪️ 推理看首Token时延、每Token时延、并发吞吐和单位功耗

▪️ 测试条件要同时披露模型、精度、批量大小、上下文长度和并行策略

MLCommons建立MLPerf Inference,就是为了在不同硬件与软件组合之间提供可复现、与场景相关的比较。其规则同时约束准确率、时延和运行场景,也说明单一峰值指标不足以代表系统表现。

3. 集群扩展效率

可用多卡吞吐除以单卡吞吐与卡数的乘积,观察规模扩大后的效率变化。还要分别测量卡内、机内和跨机通信。

4. 迁移成本

统计修改代码行数、补写算子数量、调优人天、编译失败率和上线周期。迁移工具可以降低初始工作量,但最终成本取决于目标模型与依赖复杂度。

5. 稳定性与运维

关注连续运行时间、故障率、任务恢复、显存泄漏、版本回滚、日志完整性和问题定位时间。生产系统中,一次长任务失败可能消耗大量算力资源。

6. 版本与社区响应

记录框架和模型新版本发布后,厂商完成适配所需时间;同时看文档、样例、问题单和补丁的更新频率。

七、产业链中还有哪些参与者

1. AI框架与编译基础设施

华为MindSpore、百度PaddlePaddle和商汤OpenMMLab等国内框架或工具生态,为国产设备提供模型入口与应用资源。PyTorch的PrivateUse1和加速器扩展机制,则为新设备以框架外插件方式接入提供基础能力。

2. 推理框架与模型工具

vLLM、SGLang、llama.cpp等开源项目快速吸收大模型推理新方法。国产芯片厂商需要维护相应后端,并处理连续批处理、键值缓存、量化和多卡并行。

3. 服务器、网络和云平台

浪潮信息、新华三、紫光股份旗下新华三体系、中科曙光等服务器与基础设施企业,参与整机、集群网络和系统集成;阿里云、百度智能云、华为云等平台负责资源调度、镜像、模型服务和客户交付。

4. 模型与行业应用

大模型公司、互联网平台和行业软件商提供真实负载。模型能否在搜索、推荐、金融、政务、制造和科研场景中稳定运行,是软件栈成熟度的最终检验。

八、五个常见误区

误区一:接口兼容就等于性能一致

接口兼容降低改代码成本,性能仍取决于编译、算子、访存和通信优化。

误区二:支持某个模型就等于支持全部配置

同一模型在不同精度、上下文长度、批量大小和并行方式下,执行路径可能完全不同。

误区三:单卡测试可以代表集群

集群性能会受到通信、网络、拓扑、调度和故障影响,必须单独验证。

误区四:开源就等于生态成熟

代码开放有助于协作,但文档、测试、维护者数量、版本节奏和实际用户规模仍需长期积累。

误区五:峰值算力可以直接换算业务成本

业务成本还包括利用率、能耗、服务器、网络、迁移人力、停机与运维。最终应比较完成同一工作负载的总成本。

结语

AI芯片决定计算能力的物理上限,软件栈决定这部分能力有多少能够被模型稳定调用。

国产AI芯片补软件栈,包含驱动与运行时、编译器、算子库、通信库、框架、推理引擎、开发工具和模型适配。每一层都需要与硬件架构、开源框架和真实业务共同迭代。

判断进展时,可以把问题从“能否运行某个模型”继续向下追问:是否原生运行,端到端性能如何,多卡能否扩展,版本能否维护,迁移和运维成本是多少。这些指标共同决定一颗芯片能否从样机走向规模部署。

资料来源

1. 华为昇腾社区,MindIE 2.3.0软件包与版本配套说明:https://www.hiascend.com/document/detail/en/mindie/230/envpre/instg/mindie_instg_0094.html

2. 华为昇腾社区,CANN与HCCL相关开发文档:https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/81RC1beta1/releasenote/releasenote_0008.html

3. PyTorch官方文档,Accelerator Integration:https://docs.pytorch.org/docs/main/accelerator/index.html

4. PyTorch官方教程,Facilitating New Backend Integration by PrivateUse1:https://docs.pytorch.org/tutorials/advanced/privateuseone.html

5. 昆仑芯官网,核心技术与昆仑芯SDK:https://www.kunlunxin.com/%E6%A0%B8%E5%BF%83%E6%8A%80%E6%9C%AF

6. 摩尔线程官方文档,MUSA软件栈:https://docs.mthreads.com/musa-sdk/musa-sdk-doc-online/programming_guide/what_is_musa/musa_sdk/

7. 摩尔线程官网,MUSA Scientific Computing Suite:https://www.mthreads.com/product/MUSAScientificComputingSuite

8. 燧原科技官网,产品与TopsRider软件平台:https://www.enflame-tech.com/

9. 寒武纪官网,Cambricon NeuWare软件开发平台:https://www.cambricon.com/index.php?a=lists&c=index&catid=71&m=content

10. MLCommons,MLPerf Inference工作组与评测说明:https://mlcommons.org/working-groups/benchmarks/inference/

11. MLCommons,MLPerf Inference文档:https://docs.mlcommons.org/inference/

风险提示

本文仅作产业研究与公开信息整理,不构成投资建议。AI芯片软件栈仍在快速迭代,公开支持清单、版本配套和性能数据可能随软件升级发生变化。不同厂商披露的模型、精度、批量大小、网络与服务器配置并不一致,横向比较应以同一工作负载、准确率和测试条件为前提。产品完成适配、进入测试或建立合作,不等同于已形成大规模采购和收入。

相关学习资料