赞
踩
一、主流计算单元简介
1. Intel的硬件平台Knights Mill(Xeon Phi处理器,最新的Xeon Phi协处理器拥有多达72个内核,而且每个内核有两个用于提供更好的单核浮点运算性能的英特尔AVX-512 SIMD处理单元)
2. 中国寒武纪和星光智能一号。由中国科学院主导开发
3. IBM的真北
4. 谷歌的 TPU(Tensor Processing Unit张量处理器)
5. 英伟达专门为人工智能定制的GPU
对于人工智能和深度学习来说,目前硬件加速主要靠使用图形处理单元(GPU)集群作为通用计算图形处理单元(GPGPU)
二、说明
1. NVIDIA的GPU(Jetson系列):
与传统的通用处理器(GPP)相比,GPU的核心计算能力要多出几个数量级,也更容易进行并行计算。尤其是英伟达的CUDA,作为最主流的GPGPU编写平台,各个主要的深度学习工具均用其来进行GPU 加速。)
2. 中国寒武纪和星光智能一号:
“中国首款嵌入式神经网络处理器”很有可能是一款可以运行神经网络的DSP,非真正意义的神经网络专用芯片。
星光智能一号共包含四个NPU核,每个NPU核包含4个内核,每个内核有两个流处理器(Dataflow Processor),每个流处理器具有8个长位宽或16位宽的SIMD运算单元。每个NPU核的峰值性能为38Gops(16位定点)或者76Gops(8位定点)。除了多核流处理器本身用于完成卷积运算外,星光智能一号集成了一个超长指令字(VLIW)处理器用于完成神经网络中的超越函数等运算。另有256KB的L2Cache以及DMA模块用于大块数据的搬移。从其低位宽的定点运算器推断,星光智能一号仅可支持神经网络正向运算,无法支持神经网络的训练。从片上存储结构看,星光智能一号基于传统的片上缓存(Cache),而非像最近流行的神经芯片或FPGA方案一样使用便签式存储。因此,在技术上看星光智能一号是典型的“旧瓶装新酒”方案,将传统的面向数字信号处理的DSP处理器架构用于处理神经网络,主要在运算器方面作了相应修改,例如低位宽和超越函数,而并非是“狭义的”神经网络专用处理器,如IBM的“真北”芯片。
因此,星光智能一号其实是DSP,而非NPU,能够适用于卷积神经网路(CNN),而对循环神经网络(RNN)和长短期记忆网络(LSTM)等处理语音和自然语言的网络有可能就无能为力了。
传统SIMD/DSP架构来适配神经网络的技术思想在国际上已有不少先例,甚至有成熟的产品,例如CEVA公司的XM4处理器、Cadence公司的Tensilica Vision P5处理器、Synopsys公司的EV处理器等。
3.Google的NPU:为深度学习而生的专业芯片
深度学习实际上是一类多层大规模人工神经网络。它模仿生物神经网络而构建,由若干人工神经元结点互联而成。神经元之间通过突触两两连接,突触记录了神经元间联系的权值强弱。
每个神经元可抽象为一个激励函数,该函数的输入由与其相连的神经元的输出以及连接神经元的突触共同决定。为了表达特定的知识,使用者通常需要(通过某些特定的算法)调整人工神经网络中突触的取值、网络的拓扑结构等。该过程称为“学习”。在学习之后,人工神经网络可通过习得的知识来解决特定的问题。
由于深度学习的基本操作是神经元和突触的处理,而传统的处理器指令集(包括x86和ARM等)是为了进行通用计算发展起来的,其基本操作为算术操作(加减乘除)和逻辑操作(与或非),往往需要数百甚至上千条指令才能完成一个神经元的处理,深度学习的处理效率不高。因此谷歌甚至需要使用上万个x86 CPU核运行7天来训练一个识别猫脸的深度学习神经网络。因此,传统的处理器(包括x86和ARM芯片等)用于深度学习的处理效率不高,这时就必须另辟蹊径——突破经典的冯·诺伊曼结构。
现阶段而言,传统芯片厂商(如CPU、GPU和DSP)对于深度学习市场非常重视,因此利用他们巨大体量和市场推广、销售能力,大力推广用这些传统芯片来进行深度学习处理,其本质上也是对现有的技术进行微调,用传统SIMD架构来适配神经网络。
然而,由于传统CPU、GPU和DSP本质上并非以硬件神经元和突触为基本处理单元,相对于NPU在深度学习方面天生会有一定劣势,在芯片集成度和制造工艺水平相当的情况下,其表现必然逊色于NPU。
NPU是神经网络处理器,在电路层模拟人类神经元和突触,并且用深度学习指令集直接处理大规模的神经元和突触,一条指令完成一组神经元的处理。相比于CPU和GPU的冯诺伊曼结构,NPU通过突触权重实现存储和计算一体化,从而提高运行效率。但NPU也有自身的缺陷,比如不支持对大量样本的训练。
4. BPU:比在CPU上用软件实现更为高效 不可再编程
BPU是由地平线主导的嵌入式处理器架构。第一代是高斯架构,第二代是伯努利架构,第三代是贝叶斯架构。BPU主要是用来支撑深度神经网络,比在CPU上用软件实现更为高效。然而,BPU一旦生产,不可再编程,且必须在CPU控制下使用。
三、总结
从CPU、GPU的市场来看,已经基本被英特尔、英伟达和AMD三分天下。而在ASIC框架下的TPU,只有谷歌的体量和实力才有开发专用加速的动力。
无论是针对人工智能的众核芯片还是定制版的GPU,本质上都不是专用处理器,实际上是拿现有的、相对成熟的架构和技术成果去应对新生的人工智能,并没有发生革命性的技术突破。
附录(各种PU缩写, 全称集合)
APU -- Accelerated Processing Unit, 加速处理器,AMD公司推出加速图像处理芯片产品。
BPU -- Brain Processing Unit, 地平线公司主导的嵌入式处理器架构。
CPU -- Central Processing Unit 中央处理器, 目前PC core的主流产品。
DPU -- Deep learning Processing Unit, 深度学习处理器,最早由国内深鉴科技提出;另说有Dataflow Processing Unit 数据流处理器, Wave Computing 公司提出的AI架构;Data storage Processing Unit,深圳大普微的智能固态硬盘处理器。
FPU -- Floating Processing Unit 浮点计算单元,通用处理器中的浮点运算模块。
GPU -- Graphics Processing Unit, 图形处理器,采用多线程SIMD架构,为图形处理而生。
HPU -- Holographics Processing Unit 全息图像处理器, 微软出品的全息计算芯片与设备。
IPU -- Intelligence Processing Unit, Deep Mind投资的Graphcore公司出品的AI处理器产品。
MPU/MCU -- Microprocessor/Micro controller Unit, 微处理器/微控制器,一般用于低计算应用的RISC计算机体系架构产品,如ARM-M系列处理器。
NPU -- Neural Network Processing Unit,神经网络处理器,是基于神经网络算法与加速的新型处理器总称,如中科院计算所/寒武纪公司出品的diannao系列。
RPU -- Radio Processing Unit, 无线电处理器, Imagination Technologies 公司推出的集合集Wifi/蓝牙/FM/处理器为单片的处理器。
TPU -- Tensor Processing Unit 张量处理器, Google 公司推出的加速人工智能算法的专用处理器。目前一代TPU面向Inference,二代面向训练。
VPU -- Vector Processing Unit 矢量处理器,Intel收购的Movidius公司推出的图像处理与人工智能的专用芯片的加速计算核心。
WPU -- Wearable Processing Unit, 可穿戴处理器,Ineda Systems公司推出的可穿戴片上系统产品,包含GPU/MIPS CPU等IP。
XPU -- 百度与Xilinx公司在2017年Hotchips大会上发布的FPGA智能云加速,含256核。
ZPU -- Zylin Processing Unit, 由挪威Zylin 公司推出的一款32位开源处理器。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。