第1章 NPU概述
大家好,我是这门课的主讲工程师。在芯片行业摸爬滚打了十几年,我见过太多团队把AI模型硬往CPU上怼,结果功耗爆炸、帧率拉胯。后来换了NPU,同样的模型,功耗直接降到原来的十分之一。今天我们就来聊聊NPU到底是什么,它跟CPU、GPU有什么本质区别,以及这个领域这些年是怎么演进的。
1.1 什么是NPU
NPU,全称Neural Processing Unit,神经网络处理单元。说白了,它就是一种专门为深度学习推理(或者训练)设计的加速器。你想想看,CPU是通用计算的“瑞士军刀”,什么都能干,但干AI的矩阵乘法效率很低。GPU呢,虽然并行度很高,但毕竟是为图形渲染设计的,调度开销大。
NPU不一样。它从架构层面就为神经网络算子量身定制——大量乘加阵列、片上数据流、低精度计算……我习惯把NPU比作“AI流水线工厂”:数据进来,经过一层层专用硬件流水线,结果直接出去,中间几乎没有多余的指令开销。
1.2 NPU与CPU/GPU的区别
很多刚接触异构计算的同学会问:“NPU和GPU不都是搞并行的吗?” 嗯,这里面的门道其实挺深。我列个表,咱们一目了然。
| 维度 | CPU | GPU | NPU |
|---|---|---|---|
| 设计哲学 | 低延迟、通用 | 高吞吐、图形并行 | 极致能效、AI专用 |
| 计算单元 | 几个到几十个大核 | 数千个小型CUDA核心 | 大规模乘加阵列(MAC array) |
| 数据精度 | FP64/FP32 | FP32/FP16 | INT8/INT4/FP16 |
| 控制流 | 复杂分支预测 | SIMT单指令多线程 | 数据流驱动,极简控制 |
| 典型能效 | ~0.1 TOPS/W | ~0.5 TOPS/W | 2~20 TOPS/W |
我在做一款边缘AI芯片时,曾经用GPU跑MobileNet,功耗直接飙到8W,板子烫得不行。后来换成同制程的NPU,同样精度下功耗只有1.2W。这就是专用架构的威力——它把每一分能量都用在刀刃上。
1.3 NPU的发展历程
NPU不是凭空冒出来的。我入行那会儿,大家还在用DSP做神经网络加速,效率低得可怜。后来大概2014年左右,谷歌的TPU v1横空出世,专门为推理优化,用的是INT8量化,一下子把能效比拉高了一个数量级。我记得当时看到那篇论文,心里就一个想法:“方向对了。”
从那以后,NPU开始百花齐放。苹果从A11开始集成Neural Engine,华为的达芬奇架构,寒武纪的MLU……每个都有自己的绝活。我个人觉得,NPU发展的核心脉络就是:从通用到专用,从高精度到低精度,从单核到多核互联。
1.4 典型产品一览
现在市面上NPU产品已经非常丰富了。我挑几个有代表性的,给大家盘一盘。
- Google TPU:从v1到v5,专为TensorFlow优化,v4开始支持训练。我曾在TPUv2上跑过BERT,那吞吐量,啧啧。
- Apple Neural Engine:集成在A系列和M系列芯片里,从11.6 TOPS(A12)到现在的35+ TOPS(M4),生态封闭但效率极高。
- 华为昇腾(Ascend):达芬奇架构,支持训练和推理,310/910系列。我在项目中用过310做视频分析,功耗控制确实有两把刷子。
- 寒武纪MLU:国内老牌NPU,思元系列,在智能安防和服务器领域有不少落地。
- 高通Hexagon:集成在骁龙平台,主要做手机端AI加速,DSP演进而来。
好了,这一章我们厘清了NPU的定义、与CPU/GPU的区别、发展脉络和典型产品。下一章我们会深入神经网络基础,把卷积、池化这些算子的底层逻辑彻底搞明白。记住,理解NPU最好的方式就是亲手把模型跑上去,看看数据流是怎么在MAC阵列里流动的。