第1章 NPU概述

大家好,我是这门课的主讲工程师。在芯片行业摸爬滚打了十几年,我见过太多团队把AI模型硬往CPU上怼,结果功耗爆炸、帧率拉胯。后来换了NPU,同样的模型,功耗直接降到原来的十分之一。今天我们就来聊聊NPU到底是什么,它跟CPU、GPU有什么本质区别,以及这个领域这些年是怎么演进的。

1.1 什么是NPU

NPU,全称Neural Processing Unit,神经网络处理单元。说白了,它就是一种专门为深度学习推理(或者训练)设计的加速器。你想想看,CPU是通用计算的“瑞士军刀”,什么都能干,但干AI的矩阵乘法效率很低。GPU呢,虽然并行度很高,但毕竟是为图形渲染设计的,调度开销大。

NPU不一样。它从架构层面就为神经网络算子量身定制——大量乘加阵列、片上数据流、低精度计算……我习惯把NPU比作“AI流水线工厂”:数据进来,经过一层层专用硬件流水线,结果直接出去,中间几乎没有多余的指令开销。

⚡ 核心定义:NPU是一种面向神经网络计算(尤其是矩阵乘法和卷积)的领域专用处理器,通过大规模并行MAC阵列和近存计算架构实现高能效AI推理。

1.2 NPU与CPU/GPU的区别

很多刚接触异构计算的同学会问:“NPU和GPU不都是搞并行的吗?” 嗯,这里面的门道其实挺深。我列个表,咱们一目了然。

维度CPUGPUNPU
设计哲学低延迟、通用高吞吐、图形并行极致能效、AI专用
计算单元几个到几十个大核数千个小型CUDA核心大规模乘加阵列(MAC array)
数据精度FP64/FP32FP32/FP16INT8/INT4/FP16
控制流复杂分支预测SIMT单指令多线程数据流驱动,极简控制
典型能效~0.1 TOPS/W~0.5 TOPS/W2~20 TOPS/W

我在做一款边缘AI芯片时,曾经用GPU跑MobileNet,功耗直接飙到8W,板子烫得不行。后来换成同制程的NPU,同样精度下功耗只有1.2W。这就是专用架构的威力——它把每一分能量都用在刀刃上。

💡 个人经验:选NPU还是GPU,关键看场景。云端训练用GPU,端侧推理用NPU,这个口诀基本不会错。但如果你要做混合精度训练,现在有些NPU也开始支持了。

1.3 NPU的发展历程

NPU不是凭空冒出来的。我入行那会儿,大家还在用DSP做神经网络加速,效率低得可怜。后来大概2014年左右,谷歌的TPU v1横空出世,专门为推理优化,用的是INT8量化,一下子把能效比拉高了一个数量级。我记得当时看到那篇论文,心里就一个想法:“方向对了。”

从那以后,NPU开始百花齐放。苹果从A11开始集成Neural Engine,华为的达芬奇架构,寒武纪的MLU……每个都有自己的绝活。我个人觉得,NPU发展的核心脉络就是:从通用到专用,从高精度到低精度,从单核到多核互联。

2014 TPU v1 INT8 推理 2017 苹果 Neural Engine A11 Bionic 2019 达芬奇架构 华为昇腾 2023+ 多核互联 Chiplet NPU 专用化 → 低精度 → 多核互联 · 能效比持续提升

1.4 典型产品一览

现在市面上NPU产品已经非常丰富了。我挑几个有代表性的,给大家盘一盘。

⚠️ 避坑指南:我曾经在一个项目里选了某款NPU,结果发现它的编译器对Pytorch模型支持很差,算子兼容性一塌糊涂。后来花了两周手写TFLite转换……所以选NPU一定要先看工具链成熟度,别光看算力数字。

好了,这一章我们厘清了NPU的定义、与CPU/GPU的区别、发展脉络和典型产品。下一章我们会深入神经网络基础,把卷积、池化这些算子的底层逻辑彻底搞明白。记住,理解NPU最好的方式就是亲手把模型跑上去,看看数据流是怎么在MAC阵列里流动的。