2、AI芯片软件栈全景图:从底层驱动到上层应用
做AI芯片投资分析这几年,我有个很深的体会:硬件决定下限,软件决定上限。你芯片算力再强,如果软件栈拉胯,客户根本用不起来。今天我就带你把这套软件栈从上到下捋一遍。
说白了,AI芯片的软件栈就像一座冰山。投资人能看到的是水面上的应用框架,但真正决定芯片能不能打的是水面下的编译器、运行时、算子库这些东西。我见过不少芯片公司,硬件参数吹得天花乱坠,结果客户一上手发现算子不支持、性能调不通——嗯,这种坑我踩过不止一次。
2.1 软件栈的七层结构
我个人习惯把AI芯片软件栈分成七层,从下往上分别是:
- 硬件抽象层(HAL) — 直接跟寄存器打交道
- 驱动层 — 操作系统与芯片的桥梁
- 运行时库(Runtime) — 内存管理、任务调度
- 算子库(Kernel Library) — 卷积、矩阵乘等核心运算
- 编译器 — 把模型图翻译成芯片指令
- 推理引擎 — 模型部署和加速
- 训练框架 — PyTorch、TensorFlow这些
你想想看,这七层每一层都可能成为瓶颈。我评估一家芯片公司时,会重点看它中间三层(编译器、算子库、运行时)的成熟度。为什么?因为这三层最容易被忽视,也最考验工程能力。
核心观点:软件栈的完整度直接决定了芯片的「可用性」和「易用性」。一个只有硬件没有软件栈的芯片,在市场上基本等于废铁。
2.2 从底层驱动到运行时库
先看最底层。驱动层负责把芯片的硬件能力暴露给上层。我记得有一次看某家初创公司的芯片,驱动代码写得乱七八糟,连基本的内存分配都做不好。结果呢?上层算子跑起来各种段错误。
运行时库这块,我建议重点关注三点:
- 内存管理 — 显存分配、回收、碎片整理
- 任务调度 — 多核并行、流水线编排
- 同步机制 — 核间通信、数据依赖处理
这里有个避坑指南:我曾经见过一家公司,运行时库的内存管理做得极差,导致模型推理时频繁触发显存溢出。后来一查,他们连最基本的内存池都没做,每次分配都走系统调用。这种低级错误,在成熟芯片上根本不会出现。
2.3 算子库:芯片的「肌肉」
算子库是AI芯片最核心的软件资产。说白了,它就是一堆高度优化的计算函数。卷积、矩阵乘、归一化、激活函数……这些算子的性能直接决定了芯片的实测算力。
我评估算子库时,会看这几个维度:
| 维度 | 关键指标 | 我的经验 |
|---|---|---|
| 覆盖度 | 支持多少种算子 | 至少覆盖主流模型90%以上 |
| 性能 | 算子延迟、吞吐量 | 跟理论峰值对比,看利用率 |
| 精度 | FP32/FP16/INT8支持 | 混合精度训练是刚需 |
| 可扩展性 | 用户能否自定义算子 | 没有这个能力,基本等于半残 |
为什么可扩展性这么重要?因为AI模型迭代太快了。今天出来个新结构,明天出来个新算子。如果芯片公司不能快速支持,客户就会流失。我见过一家公司,算子库半年没更新,结果被客户骂到产品下架。
2.4 编译器:把「想法」变成「指令」
编译器这块,说实话,是AI芯片软件栈里最难啃的骨头。它的工作就是把PyTorch/TensorFlow的模型计算图,翻译成芯片能执行的指令序列。
我习惯把编译器分成前端和后端:
- 前端:解析模型图,做图优化(算子融合、内存复用)
- 后端:指令生成、寄存器分配、流水线调度
这里有个经典案例。我记得某家公司的编译器,前端做得很好,各种图优化花里胡哨。但后端一塌糊涂,生成的指令效率极低。结果呢?理论算力100TOPS的芯片,实际跑起来只有20TOPS。这就是典型的「编译器瓶颈」。
我的建议:评估编译器时,不要只看它支持多少模型。要看它生成的指令质量。一个简单的方法:跑几个标准模型(ResNet-50、BERT),对比实际吞吐量和理论峰值的差距。差距越小,编译器越强。
2.5 推理引擎与训练框架
推理引擎是芯片面向应用的最后一公里。TensorRT、OpenVINO、ONNX Runtime这些都是典型的推理引擎。它们负责把训练好的模型,部署到目标芯片上。
训练框架这块,现在基本是PyTorch一家独大。但要注意,芯片公司需要提供对PyTorch的原生支持,而不是靠第三方适配。我见过一些公司,只支持TensorFlow,结果被PyTorch用户直接pass掉。
这里有个关键点:推理引擎和训练框架的兼容性。你想想看,客户用PyTorch训练了一个模型,结果发现你的推理引擎不支持某些算子——这种体验,基本等于劝退。
2.6 软件栈全景图
下面这张图,是我自己总结的AI芯片软件栈全景。它把七层结构、数据流向、关键接口都画出来了。你仔细看,会发现每一层都有对应的「输入」和「输出」。
这张图我建议你保存下来。每次评估一家AI芯片公司时,对照着看它每一层做得怎么样。我自己的经验是:如果中间三层(编译器、算子库、运行时)有任何一层是短板,这家公司的产品大概率不靠谱。
2.7 投资视角的关键判断点
最后,从投资角度总结几个判断点:
- 软件栈的完整度 — 七层是否都覆盖了?有没有明显缺失?
- 算子库的覆盖度 — 主流模型能不能跑通?跑通后性能如何?
- 编译器的成熟度 — 生成的指令效率高不高?有没有自动调优能力?
- 生态兼容性 — 是否支持PyTorch?是否支持ONNX?
- 开发者体验 — 文档全不全?社区活跃不活跃?有没有示例代码?
注意:很多芯片公司喜欢在硬件参数上做文章,比如「理论算力200TOPS」。但实际跑起来,因为软件栈不行,可能连50TOPS都达不到。我建议你要求对方提供「实测性能数据」,而不是「理论峰值」。
嗯,软件栈这块内容确实不少。但说白了,它就是芯片的「灵魂」。硬件再强,没有好的软件栈,也只是一堆昂贵的沙子。我见过太多芯片公司,硬件团队上百人,软件团队只有十几个人——这种配置,基本可以判定为「硬件公司」,而不是「AI芯片公司」。