在神经网络和机器学习需求快速增长的前沿,NPU(神经处理单元)开始崭露头角。尽管传统的CPU和GPU能够处理其中一些任务,但NPU针对神经网络计算进行了精细调优,提供了无与伦比的性能。在未来几年,大多数神经网络任务将由这些专用NPU处理,在深度学习应用中,CPU和GPU将被逐渐取代。
NPU是一种专门设计用于处理神经网络复杂数据流的处理器。这些芯片采用并行计算架构,能够比通用的CPU或GPU更高效地处理大量的多媒体数据,如图像和视频。
与单一用途的ASIC(特定应用集成电路)不同,NPU设计上具有灵活性和复杂性,专门用于处理网络计算。它们采用专门的软件或硬件编程,以满足现代网络计算任务的需求。

NPU处理器模块:释放AI的力量
NPU的设计考虑到了物联网(IoT)和人工智能(AI),旨在解决传统芯片在神经网络操作中面临的效率问题。这些芯片配备了加速各种数学运算的专用模块,如乘法、加法和数据解压缩。让我们分解一下:
- 乘法和加法模块:这是NPU的核心,负责处理矩阵乘法、卷积和点积。在NPU内部,您会找到64个MAC(乘加单元),SNPU版本则有32个。
- 激活函数模块:对于实现神经网络中的激活函数至关重要。此模块使用高阶参数拟合以提高准确性。NPU内部有6个MAC,SNPU有3个。
- 2D数据操作模块:处理基于平面的操作,如下采样和数据复制。此模块包含1个MAC和1个SNPU。
- 解压模块:用于解压加权数据,这对具有小内存带宽的物联网设备尤其有用。通过NPU编译器中的压缩技术,权重数据最多可压缩10倍,同时几乎不牺牲准确性。
NPU:智能手机AI的核心
如今的智能手机由复杂的SoC(系统芯片)驱动,这些SoC将多种功能集成在一个小小的空间内。这些SoC结合了CPU、GPU和NPU的力量,处理从应用程序和游戏到复杂的AI计算等各种任务。CPU负责应用程序切换,GPU处理图形渲染,而NPU则专门处理AI任务,如面部识别、图像增强等。
华为在将NPU集成到智能手机中方面是先行者,于2017年推出了首款搭载NPU的手机Mate 10。这一创新改变了游戏规则,华为的定制架构引入了3D立方体加速模型用于矩阵计算。这使得更多数据能够更快地处理,并且相比传统的CPU和GPU具有更好的能效。
在随后的几年里,华为不断改进其NPU技术,从Mate 10中的外部Cambrian NPU,到Mate 990中的自有达芬奇NPU。三星也将NPU集成到其Galaxy系列中,增强了如场景优化、内容识别和实时照片增强等AI功能。
NPU与GPU:一场较量
虽然GPU一直因其并行计算能力而被广泛推崇,但它们也有一定的缺点。它们需要CPU进行协同处理,这意味着它们仍然受到通用处理器的限制。此外,GPU的功耗较高,体积和功耗可能会限制其在移动设备上的应用。
此时,NPU登场。NPU模拟人类神经元和突触的工作原理,专门设计用于深度学习任务的处理,其效率远超GPU或CPU。与GPU和CPU需要成千上万条指令来处理神经元不同,NPU可以在一条或少数几条指令中完成。这种能力使得NPU在相同功耗下比GPU提高了最多118倍的性能。
不同处理单元之间的关键区别
以下是不同类型处理单元的简要对比:
- CPU:设计用于通用任务,重度依赖缓存和控制单元。不适合进行大规模并行处理。
- GPU:优化用于并行计算,但仍然依赖CPU。非常适合图形处理和图像处理,但在AI任务中效率较低。
- NPU:设计用于模拟大脑神经网络,NPU通过专用指令处理AI计算。它们非常适合需要低功耗的任务,如移动AI。
- FPGA:极高效率且可定制,FPGA用于特定的计算任务。它们灵活,但编程需要更高的专业知识。
NPU的实际应用
NPU在各个领域特别是在AI增强应用中取得了显著进展:
- AI场景识别:NPU驱动相机中的场景识别,自动调整设置以优化拍摄效果。
- 超级夜景:NPU帮助合成超级夜景,通过分析光暗细节增强拍照效果。
- 语音助手:NPU高效处理语音命令,为AI助手提供支持。
- 游戏:通过预测下一帧,NPU帮助提高游戏性能并减少延迟。
- AI驱动的摄影:通过实时处理,NPU增强照片效果,包括调整光线、对焦,甚至创建虚化效果。
理解处理器领域
- APU:AMD的加速处理单元,专为高效图像处理设计。
- BPU:由Horizon设计的处理器,专用于类脑计算。
- DPU:Wave Computing开发的数据流处理单元,专为AI架构设计。
- GPU:图形处理单元,设计用于处理大规模并行计算任务,主要应用于游戏和数据中心。
- TPU:Google的张量处理单元,专门用于加速机器学习算法。
- VPU:向量处理单元,专为图像处理和AI设计,通过Intel收购Movidius。