神经处理单元(NPU)说明

发布时间:2022-3-21 10:05:42

一、什么是NPU?

这只是对神经网络和机器学习处理需求激增的开始。传统的CPU/GPU可以执行类似的任务,但专门为神经网络优化的NPU可以比CPU/GPU执行得更好。逐渐地,类似的神经网络任务将由专门的NPU单元完成。

NPU(神经处理单元)是一种用于网络应用数据包的专用处理器,采用“数据驱动的并行计算”架构,尤其擅长处理视频和图像等海量多媒体数据。

NPU也是一种集成电路,但与专用集成电路(ASIC)的单一功能不同,网络处理更复杂、更灵活。通常,我们可以根据网络计算的特点使用软件或硬件进行特殊编程,以实现网络的特殊目的。




7c799d4a-bfb4-4cdd-9bf5-0e740477c0f0.jpg




核动力装置

NPU的亮点是能够运行多个并行线程——NPU通过一些特殊的硬件级别优化提升到了另一个级别,例如为一些真正不同的处理核心提供一些易于访问的缓存系统。这些高容量内核比典型的“常规”处理器更简单,因为它们不需要执行多种类型的任务。这组“优化”使NPU更高效,这就是为什么如此多的研发投入到ASIC中。

NPU的优势之一是,它们将大部分时间花在低精度算法、新的数据流架构或内存计算能力上。与GPU不同,它们更关心吞吐量,而不是延迟。


ⅡNPU处理器模块

NPU是专门为物联网AI设计的,用于加速神经网络操作,解决传统芯片在神经网络操作中效率低下的问题。NPU处理器包括用于乘法和加法、激活函数、2D数据操作、解压缩等的模块。


乘法和加法模块用于计算矩阵乘法和加法、卷积、点积和其他函数。NPU内有64个MAC,SNPU内有32个MAC。




92c5a4e9-1aa9-4260-b63b-23a444e73e24.jpg




激活函数模块用于通过使用最高的12阶参数拟合来实现神经网络中的激活函数,其中NPU内有6个MAC,SNPU内有3个MAC。

2D数据操作模块用于实现平面上的操作,如下采样和平面数据复制等。NPU内部有1个MAC和1个SNPU。

解压缩模块用于对加权后的数据进行解压缩。为了解决物联网设备内存带宽小的特点,神经网络中的权重在NPU编译器中进行压缩,可以达到6-10倍的压缩效果,几乎不影响精度。


ⅢNPU:手机AI的核心载体

众所周知,手机的正常运行离不开SoC芯片,它只有指甲盖那么大,却拥有所有的“内脏”。它的集成模块协同工作,支持手机功能的实现。CPU负责移动应用程序的平滑切换,GPU支持游戏屏幕的快速加载,NPU专门负责AI计算和AI应用程序的实现。

还需要从华为开始,华为是第一家在手机上使用NPU(神经网络处理单元)的公司,也是第一家将NPU集成到手机CPU中的公司。

2017年,华为推出了自己的架构NPU。与传统的标量和矢量计算模式相比,华为自主研发的架构NPU使用3D Cube来做矩阵计算的加速。因此,单位时间计算的数据量更大,单位功耗的AI运算能力更强,与传统CPU和GPU相比实现了一个数量级的提高,并实现了更好的能效。

华为首次采用外部方法将寒武纪的NPU用于Mate10。一年后,华为将寒武纪的NPU IP整合到980中,又一年后华为放弃寒武纪,在990上使用自己的达芬奇NPU。

Galaxy中的NPU也内置于移动处理器中,以利用先进的神经网络,并为Galaxy S20/S20+/S20 Ultra和Z Flip提供更高水平的视觉智能。NPU为场景优化器提供动力,增强了识别照片中内容的能力,并提示相机将其调整到拍摄对象的理想设置。它现在也比以前的Galaxy型号更准确。它还使前置摄像头能够模糊自拍的背景并产生散焦效果。不仅如此,NPU还在设备上帮助AI Bixby Vision。


ⅣNPU与GPU

尽管GPU在并行计算能力方面具有优势,但它不是单独工作的,需要CPU的协同处理。施工

神经网络模型和数据流的构建仍然在CPU上进行。还存在高功耗和大尺寸的问题。性能越高,GPU越大,功耗越高,价格也越昂贵,这对于一些小型设备和移动设备来说是不可用的。因此,一种体积小、功耗低、计算性能高、计算效率高的专用芯片NPU应运而生。


NPU通过在电路层模拟人类神经元和突触,并通过深度学习指令集直接处理大规模神经元和突触来工作,其中一个指令完成对一组神经元的处理。与CPU和GPU相比,NPU通过突触权重集成存储和计算,从而提高了操作效率。


CPU和GPU处理器需要使用数千条指令来完成神经元处理。NPU只需一条或几条指令就可以完成,因此在深度学习的处理效率方面具有明显优势。实验结果表明,在相同功耗的情况下,NPU的性能是GPU的118倍。


五、不同加工单元的特点

CPU——70%的晶体管用于构建Cache,以及控制单元的一部分。计算单元很少,适用于逻辑控制操作。

GPU——晶体管主要用于构建计算单元,计算复杂度低,适合大规模并行计算。主要用于大数据、后台服务器、图像处理。

NPU——模拟电路层的神经元,通过突触权重实现存储和计算集成。一个指令完成一组神经元的处理,提高了操作效率。主要应用于通信领域、大数据、图像处理。

FPGA——可编程逻辑,计算效率高,更接近底层IO。逻辑可通过冗余晶体管和链接进行编辑。本质上是无指令的,不需要共享内存,并且比CPU和GPU更高效。主要用于智能手机、便携式移动设备和汽车。


六、NPU的实际应用

NPU在拍照时进行AI场景识别,并使用NPU计算对图片进行修饰。

NPU判断光源和暗光细节,合成超级夜景。

通过NPU实现语音辅助操作。

带有GPU Turbo的NPU预先确定下一帧,以实现早期渲染,从而提高游戏的流畅性。

NPU预先确定触摸,以提高跟随手和灵敏度。

NPU通过Link Turbo判断前端和后端网络速度需求的差异。

NPU通过判断游戏渲染负载来智能调整分辨率。

通过减少游戏过程中人工智能的计算负载,为NPU节省电力。

NPU实现了CPU和GPU的动态调度。

NPU协助大数据广告推送。

通过NPU实现输入法的AI智能单词关联功能。


Ⅶ各类处理单元的说明

APU:加速处理单元,AMD用于加速图像处理芯片的产品。

BPU:大脑处理单元,地平线领先的嵌入式处理器架构。

CPU:中央处理器,PC核心的主流产品。

DPU:数据流处理单元,由波浪计算提出的人工智能架构。

FPU:浮点处理单元,通用处理器中的浮点模块。

GPU:图形处理单元,具有多线程SIMD架构,用于图形处理。

HPU:全息处理单元,一种全息计算芯片,以及来自微软的设备。

IPU:智能处理单元,Deep Mind对Graphcore人工智能处理器产品的投资。

MPU/MCU:微处理器/微控制器单元,通常用于RISC计算机体系结构产品的低计算应用,如ARM-M系列处理器。

NPU:神经网络处理单元,是一种基于神经网络算法和加速的新型处理器的统称,如中国科学院/寒武纪计算所的电脑系列。

RPU:无线电处理单元无线电处理器,是Imagination Technologies的Wifi/蓝牙/FM/处理器的集合,作为单个处理器。

TPU:张量处理单元,一个用于加速谷歌人工智能算法的专用处理器。用于推理的当前一代TPU,用于训练的第二代TPU。

VPU:矢量处理单元,由英特尔收购的Movidius公司推出的用于加速图像处理和人工智能的专用芯片。

WPU:可穿戴处理,英达系统推出了可穿戴系统芯片产品,包括GPU/MIPS CPU和其他IP。

XPU:百度和赛灵思在Hotchips 2017上宣布的FPGA智能云加速,包含256个内核。

ZPU:Zylin处理器,一个32位的开源处理器


友情链接: 华强国产品牌站
技术支持:万广互联 深圳市卓睿研发有限公司 版权所有 2021 粤ICP备19007470号-1