一、NPU与AI芯片概述
大家好,我是你们这堂课的主讲人。做了十几年芯片架构,从早期的DSP到后来的GPU,再到现在的NPU,我算是亲眼看着AI芯片一步步长起来的。今天咱们聊聊NPU——这个专门为AI计算而生的“偏科生”。
1.1 NPU到底是什么?
NPU,全称Neural Processing Unit,神经网络处理器。说白了,它就是一颗专门为神经网络计算设计的芯片。你想想看,CPU什么都能干,但什么都不精;GPU擅长并行计算,但毕竟是为图形渲染设计的。而NPU呢?从出生那天起,它的使命就是加速AI推理和训练。
核心定义:NPU是一种针对神经网络算法(尤其是卷积、矩阵乘、激活函数等)进行硬件优化的专用处理器。它通过大规模并行计算单元、数据流架构和片上存储层次,实现高能效的AI计算。
我记得2016年刚接触NPU时,团队里还有人质疑:“用GPU不香吗?”结果等我们真正跑起MobileNet和ResNet,NPU的能效比直接甩开GPU一个数量级。嗯,从那以后,没人再提这个问题了。
1.2 发展历程:从学术到产业
NPU的发展,其实也就十来年的事。我把它分成三个阶段:
- 萌芽期(2010-2015):学术界开始探索专用AI加速器。我记得2014年看了陈云霁团队的“寒武纪”论文,当时就觉得这条路能走通。这个阶段主要是FPGA原型验证,算力很低,但方向对了。
- 爆发期(2016-2020):Google TPU v1横空出世,直接引爆了产业界。华为、地平线、寒武纪纷纷推出商用NPU。我2017年参与过一个项目,用NPU跑YOLOv3,推理速度比GPU快3倍,功耗只有1/5。那会儿我就知道,GPU在边缘侧要被替代了。
- 成熟期(2021至今):NPU开始分化——云端大算力、边缘端低功耗、端侧超低功耗。Transformer架构的兴起,又给NPU设计带来了新挑战。我个人习惯把2023年之后的NPU称为“第三代NPU”,因为它们必须同时支持CNN和Transformer。
1.3 与CPU/GPU的对比
很多初学者会问:“NPU和CPU、GPU到底差在哪?”我画了张对比表,你一看就明白:
| 维度 | CPU | GPU | NPU |
|---|---|---|---|
| 设计哲学 | 通用计算,低延迟 | 并行渲染,高吞吐 | AI专用,高能效 |
| 计算单元 | 几个到几十个核心 | 数千个CUDA核心 | 大量MAC阵列(乘累加单元) |
| 控制逻辑 | 复杂(分支预测、乱序执行) | 较简单(SIMT模式) | 极简(数据流驱动) |
| 存储层次 | 多级缓存(L1/L2/L3) | 显存+共享内存 | 片上SRAM+全局缓冲区 |
| 典型能效 | ~10 TOPS/W | ~1 TOPS/W | ~10-100 TOPS/W |
| 适用场景 | 操作系统、数据库 | 图形渲染、科学计算 | AI推理、AI训练 |
为什么会这样?我举个例子。CPU就像个瑞士军刀,什么都能干,但干每件事都不算快。GPU像是个装修队,几十个人同时刷墙,效率高但调度复杂。NPU呢?它就是个流水线工厂,专门生产一种产品——矩阵乘法。你想想看,工厂的效率当然比装修队高得多。
避坑指南:我曾经犯过一个错误——在NPU上跑非规则的数据结构(比如稀疏图算法)。结果性能还不如CPU。记住:NPU只擅长规则化的、密集的矩阵运算。不规则计算,老老实实用CPU。
1.4 主流NPU架构简介
目前市面上主流的NPU架构,我归纳为三类。每种我都亲手调过,说说我的感受:
1.4.1 脉动阵列架构(Systolic Array)
代表作:Google TPU。核心思想是把计算单元排成二维阵列,数据像心跳一样在阵列中“脉动”传递。优点是数据复用率高,访存开销小。缺点是对非规则计算不友好。我在TPU v2上跑过BERT,矩阵乘部分几乎达到理论峰值——但一遇到LayerNorm就卡住了,因为脉动阵列不支持这种操作。
1.4.2 近存计算架构(Near-Memory Computing)
代表作:华为昇腾系列。把计算单元和存储单元物理上拉近,减少数据搬运的功耗。昇腾的Da Vinci架构,核心是Cube Unit(立方体计算单元),专门做3D的矩阵乘。我调过昇腾310,它的优势在于大模型推理——因为片上SRAM够大,能把整个模型参数塞进去。
1.4.3 数据流架构(Dataflow Architecture)
代表作:寒武纪MLU系列。这种架构不依赖传统的指令流水线,而是让数据在计算单元之间流动。说白了,就是“数据走到哪,计算就在哪”。我2019年用MLU跑过ResNet-50,发现它对卷积的优化特别极致——因为卷积本身就是个数据流模式。
下面这张图,是我自己总结的NPU核心知识体系,你看看:
注意:不要以为NPU架构是万能的。我见过太多团队,买来NPU就直接跑模型,结果性能还不如GPU。为什么?因为没有做算子映射优化。NPU的硬件特性决定了——你必须把算子“掰”成它喜欢的样子。这就是咱们这门课要讲的核心内容。
1.5 小结
这一章,咱们把NPU的来龙去脉理清楚了。从定义到发展,从对比到架构,你应该对NPU有了整体认识。记住三个关键点:
- NPU是专用芯片,只做AI计算,所以能效比高
- 不同NPU架构(脉动阵列、近存计算、数据流)各有优劣
- 算子映射是发挥NPU性能的关键——这也是后面29章要深入的内容
下一章,咱们会深入NPU的计算核心——MAC阵列。我会带你看看,一个乘法器是怎么被压榨出极限性能的。嗯,到时候见。
想要更多资料,联系可可