深度进修中,CPU、GPU、NPU、FPGA怎样施展上风
副问题[/!--empirenews.page--]
跟着AI的普及应用,深度进修已成为当前AI研究和运用的主流方法。面临海量数据的并行运算,AI对付算力的要求不绝晋升,对硬件的运算速率及功耗提出了更高的要求。 今朝,除通用CPU外,作为硬件加快的GPU、NPU、FPGA等一些芯片处理赏罚器在深度进修的差异应用中施展着各自的上风,但孰优孰劣? 以人脸辨认为例,其处理赏罚根基流程及对应成果模块所需的算力漫衍如下: 为什么会有这样的应用区分? 意义在那边? 想要知道个中的谜底,必要我们先从CPU、GPU、NPU、FPGA它们各自的道理、架构及机能特点来相识。 起首,我们先来相识一下通用CPU的架构。 CPU CPU(Central Processing Unit)中央处理赏罚器,是一块超大局限的集成电路,首要逻辑架构包罗节制单位Control,运算单位ALU和高速缓冲存储器(Cache)及实现它们之间接洽的数据(Data)、节制及状态的总线(Bus)。 简朴说, 就是计较单位、节制单位和存储单位。 架构图如下所示: ![]() CPU遵循的是冯诺依曼架构,其焦点是存储措施、次序执行。CPU的架构中必要大量的空间去安排存储单位(Cache)和节制单位(Control),对比之下计较单位(ALU)只占有了很小的一部门,以是它在大局限并行计较手段上极受限定,而更善于于逻辑节制。 CPU无法做到大量矩阵数据并行计较的手段,但GPU可以。 GPU GPU(Graphics Processing Unit),即图形处理赏罚器,是一种由大量运算单位构成的大局限并行计较架构,专为同时处理赏罚多重使命而计划。 为什么GPU可以做到并行计较的手段?GPU中也包括根基的计较单位、节制单位和存储单位,但GPU的架构与CPU有所差异,如下图所示: ![]() 与CPU对比,CPU芯片空间的不到20%是ALU,而GPU芯片空间的80%以上是ALU。即GPU拥有更多的ALU用于数据并行处理赏罚。 以Darknet构建的神经收集模子AlexNet、VGG-16及Restnet152在GPU Titan X, CPU Intel i7-4790K (4 GHz) 举办ImageNet分类使命猜测的功效: ![]() 备注:以上数据源自https://pjreddie.com/darknet/imagenet/#reference 由此可见,GPU处理赏罚神经收集数据远远高效于CPU。 总结GPU具有如下特点: 1 、多线程,提供了多核并行计较的基本布局,且焦点数很是多,可以支撑大量数据的并行计较。 2、拥有更高的访存速率。 3、更高的浮点运算手段。 因此,GPU比CPU更得当深度进修中的大量实习数据、大量矩阵、卷积运算。 GPU固然在并行计较手段上尽显上风,但并不能单独事变,必要CPU的协同处理赏罚,对付神经收集模子的构建和数据流的转达照旧在CPU长举办。同时存在功耗高,体积大的题目。 机能越高的GPU体积越大,功耗越高,价值也昂贵,对付一些小型装备、移动装备来说将无法行使。 因此,一种体积小、功耗低、计较机能高、计较服从高的专用芯片NPU降生了。 NPU NPU (Neural Networks Process Units)神经收集处理赏罚单位。NPU事变道理是在电路层模仿人类神经元和突触,而且用深度进修指令集直接处理赏罚大局限的神经元和突触,一条指令完成一组神经元的处理赏罚。对比于CPU和GPU,NPU通过突触权重实现存储和计较一体化,从而进步运行服从。 NPU是仿照生物神经收集而构建的,CPU、GPU处理赏罚器必要用数千条指令完成的神经元处理赏罚,NPU只要一条或几条就能完成,因此在深度进修的处理赏罚服从方面上风明明。 尝试功效表现,平等功耗下NPU 的机能是 GPU 的 118 倍。 与GPU一样,NPU同样必要CPU的协同处理赏罚才气完成特定的使命。下面,我们可以看一下GPU和NPU是怎样与CPU协同事变的。 GPU的加快 GPU当前只是纯真的并行矩阵的乘法和加法运算,对付神经收集模子的构建和数据流的转达照旧在CPU长举办。 CPU加载权重数据,凭证代码构建神经收集模子,将每层的矩阵运算通过CUDA或OpenCL等类库接口传送到GPU上实现并行计较,输出功效;CPU接着调治基层神经元组矩阵数据计较,直至神经收集输出层计较完成,获得最终功效。 ![]() CPU 与GPU的交互流程: 1获取GPU信息,设置GPU id 2 加载神经元参数到GPU 3 GPU加快神经收集计较 4吸取GPU计较功效 NPU的加快 NPU与GPU加快差异,首要浮现为每层神经元计较功效不消输出到主内存,而是凭证神经收集的毗连转达到基层神经元继承计较,因此其在运算机能和功耗上都有很大的晋升。 CPU将编译好的神经收集模子文件和权重文件交由专用芯片加载,完成硬件编程。 ![]() CPU在整个运行进程中,首要是实现数据的加载和营业流程的节制,其交互流程为: 1打开NPU专用芯片装备 2 传入模子文件,获得模子task 3 获取task的输入输出信息 4 拷贝输入数据到模子内存中 5 运行模子,获得输出数据 除NPU外,在功耗及计较手段上有一拼的尚有FPGA。 FPGA FPGA(Field-Programmable Gate Array)称为现场可编程门阵列,用户可以按照自身的需求举办一再编程。与 CPU、GPU 对比,具有机能高、功耗低、可硬件编程的特点。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |