伴随着AI的兴起,NPU这个名词也慢慢进入人们的视野。今天装机天下就来带大家了解一下NPU是什么?以及NPU、CPU 、GPU之间的区别。 一、什么是NPU?
NPU的全称是Neural network Processing Unit,翻译过来叫“神经网络处理单元”。你可以将它看成是一种特殊的处理器,NPU利用电路模拟人类的神经元和突触结构,来处理特定的任务。 NPU目前主要用于移动设备。例如Apple的最新iPhone和M系列笔记本电脑都集成了自己的NPU,称为 ANE(Apple Neural Engine),Google在其Pixel设备和Coral 原型套件上使用专有的NPU,称为TPU(Tensor Processing Unit),而高通正在将其 ARM NPU 集成到其最新的智能手机和笔记本电脑SoC中。 二、NPU、CPU 、GPU的区别 CPU全称CentralProcessing Unit,即中央处理器,CPU内部逻辑结构包括Control(控制单元)、ALU(运算单元)、Cache(高速缓冲存储器),以及实现它们之间联系的Data(数据)、控制及状态的总线(Bus)。简单说就是计算单元、控制单元和存储单元。
CPU遵循的是冯诺依曼架构,其核心是存储程序/数据、串行顺序执行。因此CPU的架构中需要大量的空间去放置存储单元(Cache)和控制单元(Control),而计算单元(ALU)只占据了很小的一部分,所以CPU更擅长处理逻辑控制,而非大量数据并行计算。 GPU全称GraphicsProcessing Unit,即图形处理器。它和CPU的逻辑架构几乎一样,包含基本的计算单元、控制单元和存储单元,如图:
虽然GPU和CPU的内部架构几乎相同,但很明显,GPU内部的ALU占比非常大。CPU的ALU占比不到20%,而GPU内部80%以上都是ALU。也就是说GPU比CPU的运算单元多的多,能提供更强大的并行计算能力。 这里有人可能会疑惑:既然CPU和GPU结构相似,而且GPU拥有更强的并行计算能力,那我们就只用GPU不就行了? 一台电脑能正常开机、运行是离不开CPU的,CPU就相当于一个有智慧、并具有很多技能的领导者。从你按下电脑开机键那一刻起,CPU就开始发号施令,协调电脑内部的各个配件开始工作,并且自己也会亲力亲为干很多活。而GPU就相当于“工具人”,它只能完成CPU交给它的某项特殊任务,并且这个任务是它最擅长的。 三、GPU可以用于AI运算吗?
这里我们先来看下GPU的特点: 1、多线程,提供了多核并行计算的基础结构,且核心数非常多,可以支撑大量数据的并行计算,处理神经网络数据远远高效于CPU。 2、拥有更高的访存速度。 3、 更高的浮点运算能力。 基于以上特点,GPU自然是可以用于AI运算的,而且相比CPU更适合深度学习中的大量训练数据、大量矩阵、卷积运算。 四、既然GPU可以用来做AI运算,那为什么还要搞出个NPU呢? 虽然GPU拥有强大的并行计算能力,但是它也有天生缺陷,比如功耗高,体积大,价格贵。这里我们暂且不谈价格,就体积大、功耗高这两点来说,就无法实用到一些小型移动设备上。因此才有了NPU这个东西,它体积小、功耗低、计算效率还高。
NPU是模仿生物神经网络而构建的,CPU、GPU需要用数千条指令完成的神经元处理,NPU只要一条或几条就能完成,因此在深度学习的处理效率方面,NPU的优势很明显。 就拿手机来说,其中CPU负责手机应用流畅切换、GPU支持游戏画面快速加载,而NPU就专门负责实现AI运算和AI应用的实现。也就是说CPU是负责计算和整体协调的,而GPU是负责和图像有关的部分,NPU负责和AI有关的部分。其工作流程则是,任何工作都要先通过CPU,CPU再根据这一块的工作的性质来决定分配给谁。如果是图形方面的计算,就会分配给GPU,如果是AI方面的计算需求,就分配给NPU。 总结:NPU是什么?NPU、CPU 、GPU的区别 NPU、GPU是无法脱离CPU而单独存在的。从本质上讲,CPU擅长处理许多不同的应用程序,但并未针对图形和AI任务进行优化。GPU因为有强大的并行计算能力,所以比CPU更适合图形和AI任务,而NPU擅长像 GPU一样进行高级并行计算,并且功耗要求非常低,因此更适合AI任务的处理。