2、AI芯片软件栈全景图:从底层驱动到上层应用

做AI芯片投资分析这几年,我有个很深的体会:硬件决定下限,软件决定上限。你芯片算力再强,如果软件栈拉胯,客户根本用不起来。今天我就带你把这套软件栈从上到下捋一遍。

说白了,AI芯片的软件栈就像一座冰山。投资人能看到的是水面上的应用框架,但真正决定芯片能不能打的是水面下的编译器、运行时、算子库这些东西。我见过不少芯片公司,硬件参数吹得天花乱坠,结果客户一上手发现算子不支持、性能调不通——嗯,这种坑我踩过不止一次。

2.1 软件栈的七层结构

我个人习惯把AI芯片软件栈分成七层,从下往上分别是:

  1. 硬件抽象层(HAL) — 直接跟寄存器打交道
  2. 驱动层 — 操作系统与芯片的桥梁
  3. 运行时库(Runtime) — 内存管理、任务调度
  4. 算子库(Kernel Library) — 卷积、矩阵乘等核心运算
  5. 编译器 — 把模型图翻译成芯片指令
  6. 推理引擎 — 模型部署和加速
  7. 训练框架 — 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芯片软件栈全景图 第7层:训练框架 (PyTorch/TensorFlow/JAX) 第6层:推理引擎 (TensorRT/ONNX Runtime/OpenVINO) 第5层:编译器 (图优化/指令生成/寄存器分配) 第4层:算子库 (卷积/矩阵乘/归一化/激活函数) 第3层:运行时库 (内存管理/任务调度/同步机制) 第2层:驱动层 (设备管理/中断处理/DMA传输) 第1层:硬件抽象层 (寄存器映射/内存映射/中断向量) 数据流向:训练框架 → 推理引擎 → 编译器 → 算子库 → 运行时 → 驱动 → 硬件

这张图我建议你保存下来。每次评估一家AI芯片公司时,对照着看它每一层做得怎么样。我自己的经验是:如果中间三层(编译器、算子库、运行时)有任何一层是短板,这家公司的产品大概率不靠谱

2.7 投资视角的关键判断点

最后,从投资角度总结几个判断点:

  • 软件栈的完整度 — 七层是否都覆盖了?有没有明显缺失?
  • 算子库的覆盖度 — 主流模型能不能跑通?跑通后性能如何?
  • 编译器的成熟度 — 生成的指令效率高不高?有没有自动调优能力?
  • 生态兼容性 — 是否支持PyTorch?是否支持ONNX?
  • 开发者体验 — 文档全不全?社区活跃不活跃?有没有示例代码?

注意:很多芯片公司喜欢在硬件参数上做文章,比如「理论算力200TOPS」。但实际跑起来,因为软件栈不行,可能连50TOPS都达不到。我建议你要求对方提供「实测性能数据」,而不是「理论峰值」。

嗯,软件栈这块内容确实不少。但说白了,它就是芯片的「灵魂」。硬件再强,没有好的软件栈,也只是一堆昂贵的沙子。我见过太多芯片公司,硬件团队上百人,软件团队只有十几个人——这种配置,基本可以判定为「硬件公司」,而不是「AI芯片公司」。

专注资料整理