2021-07-3001:11成都深度智谷科技有限公司官方帐号,科技领域创作者
人工智能的发展离不开算力的支持,算力又是依附于各种硬件设备的,没有了算力设备的加持,就好比炼丹少了丹炉一样,可想而知,人工智能智能也就无用武之地了。以深度学习为主的人工智能方向的发展更是离不开强大的算力支持。随着深度学习的不断发展,各种各样的芯片也逐渐抛头露面,见过的,没见过的,听过的没有听过的都出现在眼前,一下有些眼花缭乱,一时竟不知选择哪个?当然前提是不差钱。
本学徒在打杂的时候就发现了众多的XPU,例如GPU,TPU,DPU,NPU,BPU……,各种不同的XPU还分不同等级的系列,价格也大不相同,要起钱来一个比一个凶猛。突然觉得这玩意根本就不是我们这些穷人玩的,虽然当时看的头晕目眩,内心波涛汹涌,但是仍然还要表现的波澜不惊才行,毕竟做为一名资深的炼丹学徒,还是要有最基本的心里素质的。
东西贵是贵,但是挡不住看起来真香啊。那么接下了,本学徒就给大家介绍一些常见的、以及不常见的XPU吧。
首先介绍一下这些常见的XPU的英文全称:
CPU全称:CentralProcessingUnit,中央处理器;
GPU全称:GraphicsProcessingUnit,图像处理器;
TPU全称:TensorProcessingUnit,张量处理器;
DPU全称:DeeplearningProcessingUnit,深度学习处理器;
NPU全称:NeuralnetworkProcessingUnit,神经网络处理器;
BPU全称:BrainProcessingUnit,大脑处理器。
下面就来科普一下这些所谓的“XPU”
CPU
CPU(CentralProcessingUnit,中央处理器)一般是指的设备的“大脑”,是整体布局、发布执行命令、控制行动的总指挥。
CPU主要包括运算器(ALU,ArithmeticandLogicUnit)和控制单元(CU,ControlUnit),除此之外还包括若干寄存器、高速缓存器和它们之间通讯的数据、控制及状态的总线。CPU遵循的是冯诺依曼架构,即存储程序、顺序执行。一条指令在CPU中执行的过程是:读取到指令后,通过指令总线送到控制器中进行译码,并发出相应的操作控制信号。然后运算器按照操作指令对数据进行计算,并通过数据总线将得到的数据存入数据缓存器。因此,CPU需要大量的空间去放置存储单元和控制逻辑,相比之下计算能力只占据了很小的一部分,在大规模并行计算能力上极受限制,而更擅长于逻辑控制。
简单一点来说CPU主要就是三部分:计算单元、控制单元和存储单元,其架构如下图所示:
图:CPU微架构示意图
什么?这个架构太复杂,记不住?来,那么我们换一种表示方法:
嗯,大概就是这个意思。
从字面上我们也很容易理解,上面的计算单元主要执行计算机的算术运算、移位等操作以及地址运算和转换;而存储单元主要用于保存计算机在运算中产生的数据以及指令等;控制单元则对计算机发出的指令进行译码,并且还要发出为完成每条指令所要执行的各个操作的控制信号。
所以在CPU中执行一条指令的过程基本是这样的:指令被读取到后,通过控制器(黄色区域)进行译码被送到总线的指令,并会发出相应的操作控制信号;然后通过运算器(绿色区域)按照操作指令对输入的数据进行计算,并通过数据总线将得到的数据存入数据缓存器(大块橙色区域)。过程如下图所示:
图:CPU执行指令图
这个过程看起来是不是有点儿复杂?没关系,这张图可以不用记住,我们只需要知道,CPU遵循的是冯诺依曼架构,其核心就是:存储计算程序,按照顺序执行。
讲到这里,有没有看出问题,没错——在上面的这个结构图中,负责计算的绿色区域占的面积似乎太小了,而橙色区域的缓存Cache和黄色区域的控制单元占据了大量空间。
高中化学有句老生常谈的话叫:结构决定性质,放在这里也非常适用。
因为CPU的架构中需要大量的空间去放置存储单元(橙色部分)和控制单元(黄色部分),相比之下计算单元(绿色部分)只占据了很小的一部分,所以它在大规模并行计算能力上极受限制,而更擅长于逻辑控制。
另外,因为遵循冯诺依曼架构(存储程序,顺序执行),CPU就像是个一板一眼的管家,人们吩咐它的事情它总是一步一步来做,当做完一件事情才会去做另一件事情,从不会同时做几件事情。但是随着社会的发展,大数据和人工智能时代的来临,人们对更大规模与更快处理速度的需求急速增加,这位管家渐渐变得有些力不从心。
于是,大家就想,我们能不能把多个处理器都放在同一块芯片上,让它们一起来做事,相当于有了多位管家,这样效率不就提高了吗?
没错,就是这样的,我们使用的GPU便由此而诞生了。
GPU
我们在正式了解GPU之前,还是先来了解一下上文中提到的一个概念——并行计算。
并行计算(ParallelComputing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和数据处理能力的一种有效手段。它的基本思想是用多个处理器来共同求解同一个问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算完成。
图:流水线示意图
空间上的并行是指多个处理机并发的执行计算,即通过网络将两个以上的处理机连接起来,达到同时计算同一个任务的不同部分,或者单个处理机无法解决的大型问题。
比如小李准备在植树节种三棵树,如果小李1个人需要6个小时才能完成任务,植树节当天他叫来了好朋友小红、小王,三个人同时开始挖坑植树,2个小时后每个人都完成了一颗植树任务,这就是并行算法中的空间并行,将一个大任务分割成多个相同的子任务,来加快问题解决速度。
为了解决CPU在大规模并行运算中遇到的困难,GPU应运而生,GPU全称为GraphicsProcessingUnit,中文为图形处理器,就如它的名字一样,图形处理器,GPU最初是用在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。
GPU采用数量众多的计算单元和超长的流水线,善于处理图像领域的运算加速。但GPU无法单独工作,必须由CPU进行控制调用才能工作。CPU可单独作用,处理复杂的逻辑运算和不同的数据类型,但当需要大量的处理类型统一的数据时,则可调用GPU进行并行计算。近年来,人工智能的兴起主要依赖于大数据的发展、算法模型的完善和硬件计算能力的提升。其中硬件的发展则归功于GPU的出现。
为什么GPU特别擅长处理图像数据呢?这是因为图像上的每一个像素点都有被处理的需要,而且每个像素点处理的过程和方式都十分相似,也就成了GPU的天然温床。
GPU简单架构如下图所示:
图:GPU微架构示意图
从架构图我们就能很明显的看出,GPU的构成相对简单,有数量众多的计算单元和超长的流水线,特别适合处理大量的类型统一的数据。
但GPU无法单独工作,必须由CPU进行控制调用才能工作。CPU可单独作用,处理复杂的逻辑运算和不同的数据类型,但当需要大量的处理类型统一的数据时,则可调用GPU进行并行计算。
注:GPU中有很多的运算器ALU和很少的缓存cache,缓存的目的不是保存后面需要访问的数据的,这点和CPU不同,而是为线程thread提高服务的。如果有很多线程需要访问同一个相同的数据,缓存会合并这些访问,然后再去访问dram。
再把CPU和GPU两者放在一张图上看下对比,就非常一目了然了。
GPU的工作大部分都计算量大,但没什么技术含量,而且要重复很多很多次。
借用知乎上某大神的说法,就像你有个工作需要计算几亿次一百以内加减乘除一样,最好的办法就是雇上几十个小学生一起算,一人算一部分,反正这些计算也没什么技术含量,纯粹体力活而已;而CPU就像老教授,积分微分都会算,就是工资高,一个老教授能顶二十个小学生,你要是富士康你雇哪个?
GPU就是用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。这种策略基于一个前提,就是小学生A和小学生B的工作没有什么依赖性,是互相独立的。
但有一点需要强调,虽然GPU是为了图像处理而生的,但是我们通过前面的介绍可以发现,它在结构上并没有专门为图像服务的部件,只是对CPU的结构进行了优化与调整,所以现在GPU不仅可以在图像处理领域大显身手,它还被用来科学计算、密码破解、数值分析,海量数据处理(排序,Map-Reduce等),金融分析等需要大规模并行计算的领域。
所以GPU也可以认为是一种较通用的芯片。
TPU
按照上文所述,CPU和GPU都是较为通用的芯片,但是有句老话说得好:万能工具的效率永远比不上专用工具。
随着人们的计算需求越来越专业化,人们希望有芯片可以更加符合自己的专业需求,这时,便产生了ASIC(专用集成电路)的概念。
ASIC是指依产品需求不同而定制化的特殊规格集成电路,由特定使用者要求和特定电子系统的需要而设计、制造。当然这概念不用记,简单来说就是定制化芯片。
因为ASIC很“专一”,只做一件事,所以它就会比CPU、GPU等能做很多件事的芯片在某件事上做的更好,实现更高的处理速度和更低的能耗。但相应的,ASIC的生产成本也非常高。
而TPU(TensorProcessingUnit,张量处理器)就是谷歌专门为加速深层神经网络运算能力而研发的一款芯片,其实也是一款ASIC。
人工智能旨在为机器赋予人的智能,机器学习是实现人工智能的强有力方法。所谓机器学习,即研究如何让计算机自动学习的学科。TPU就是这样一款专用于机器学习的芯片,它是Google于2016年5月提出的一个针对Tensorflow平台的可编程AI加速器,其内部的指令集在Tensorflow程序变化或者更新算法时也可以运行。TPU可以提供高吞吐量的低精度计算,用于模型的前向运算而不是模型训练,且能效(TOPS/w)更高。在Google内部,CPU,GPU,TPU均获得了一定的应用,相比GPU,TPU更加类似于DSP,尽管计算能力略有逊色,但是其功耗大大降低,而且计算速度非常的快。然而,TPU,GPU的应用都要受到CPU的控制。
图:谷歌第二代TPU
一般公司是很难承担为深度学习开发专门ASIC芯片的成本和风险的,但谷歌是谁,人家会差钱吗?
开个玩笑。更重要的原因是谷歌提供的很多服务,包括谷歌图像搜索、谷歌照片、谷歌云视觉API、谷歌翻译等产品和服务都需要用到深度神经网络。基于谷歌自身庞大的体量,开发一种专门的芯片开始具备规模化应用(大量分摊研发成本)的可能。
如此看来,TPU登上历史舞台也顺理成章了。
原来很多的机器学习以及图像处理算法大部分都跑在GPU与FPGA(半定制化芯片)上面,但这两种芯片都还是一种通用性芯片,所以在效能与功耗上还是不能更紧密的适配机器学习算法,而且Google一直坚信伟大的软件将在伟大的硬件的帮助下更加大放异彩,所以Google便想,我们可不可以做出一款专用机机器学习算法的专用芯片,TPU便诞生了。
据称,TPU与同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。初代的TPU只能做推理,要依靠Google云来实时收集数据并产生结果,而训练过程还需要额外的资源;而第二代TPU既可以用于训练神经网络,又可以用于推理。
看到这里你可能会问了,为什么TPU会在性能上这么牛逼呢?TPU是怎么做到如此之快呢?
(1)深度学习的定制化研发:TPU是谷歌专门为加速深层神经网络运算能力而研发的一款芯片,其实也是一款ASIC(专用集成电路)。
(2)大规模片上内存:TPU在芯片上使用了高达24MB的局部内存,6MB的累加器内存以及用于与主控处理器进行对接的内存。
嗯,谷歌写了好几篇论文和博文来说明这一原因,所以仅在这里抛砖引玉一下。
图:TPU各模块的框图
图:TPU芯片布局图
如上图所示,TPU在芯片上使用了高达24MB的局部内存,6MB的累加器内存以及用于与主控处理器进行对接的内存,总共占芯片面积的37%(图中蓝色部分)。
这表示谷歌充分意识到了片外内存访问是GPU能效比低的罪魁祸首,因此不惜成本的在芯片上放了巨大的内存。相比之下,英伟达同时期的K80只有8MB的片上内存,因此需要不断地去访问片外DRAM。
其它更多的信息可以去翻翻谷歌的论文。
NPU
讲到这里,相信大家对这些所谓的“XPU”的套路已经有了一定了解,我们接着来。
所谓NPU(NeuralnetworkProcessingUnit),即神经网络处理器。神经网络处理器(NPU)采用“数据驱动并行计算”的架构,特别擅长处理视频、图像类的海量多媒体数据。NPU处理器专门为物联网人工智能而设计,用于加速神经网络的运算,解决传统芯片在神经网络运算时效率低下的问题。
在GX8010中,CPU和MCU各有一个NPU,MCU中的NPU相对较小,习惯上称为SNPU。NPU处理器包括了乘加、激活函数、二维数据运算、解压缩等模块。乘加模块用于计算矩阵乘加、卷积、点乘等功能,NPU内部有64个MAC,SNPU有32个。
激活函数模块采用最高12阶参数拟合的方式实现神经网络中的激活函数,NPU内部有6个MAC,SNPU有3个。二维数据运算模块用于实现对一个平面的运算,如降采样、平面数据拷贝等,NPU内部有1个MAC,SNPU有1个。解压缩模块用于对权重数据的解压。为了解决物联网设备中内存带宽小的特点,在NPU编译器中会对神经网络中的权重进行压缩,在几乎不影响精度的情况下,可以实现6-10倍的压缩效果。
既然叫神经网络处理器,顾名思义,这家伙是想用电路模拟人类的神经元和突触结构啊!
怎么模仿?那就得先来看看人类的神经结构——生物的神经网络由若干人工神经元结点互联而成,神经元之间通过突触两两连接,突触记录了神经元之间的联系。
同志们,高中生物还记得吗?
如果想用电路模仿人类的神经元,就得把每个神经元抽象为一个激励函数,该函数的输入由与其相连的神经元的输出以及连接神经元的突触共同决定。
为了表达特定的知识,使用者通常需要(通过某些特定的算法)调整人工神经网络中突触的取值、网络的拓扑结构等。该过程称为“学习”。
在学习之后,人工神经网络可通过习得的知识来解决特定的问题。
这时不知道大家有没有发现问题——原来,由于深度学习的基本操作是神经元和突触的处理,而传统的处理器指令集(包括x86和ARM等)是为了进行通用计算发展起来的,其基本操作为算术操作(加减乘除)和逻辑操作(与或非),往往需要数百甚至上千条指令才能完成一个神经元的处理,深度学习的处理效率不高。
这时就必须另辟蹊径——突破经典的冯·诺伊曼结构!
神经网络中存储和处理是一体化的,都是通过突触权重来体现。而冯·诺伊曼结构中,存储和处理是分离的,分别由存储器和运算器来实现,二者之间存在巨大的差异。当用现有的基于冯·诺伊曼结构的经典计算机(如X86处理器和英伟达GPU)来跑神经网络应用时,就不可避免地受到存储和处理分离式结构的制约,因而影响效率。这也就是专门针对人工智能的专业芯片能够对传统芯片有一定先天优势的原因之一。
2016年6月20日,中星微数字多媒体芯片技术国家重点实验室在北京宣布,已研发成功了中国首款嵌入式神经网络处理器(NPU)芯片,成为全球首颗具备深度学习人工智能的嵌入式视频采集压缩编码系统级芯片,并取名“星光智能一号”。
NPU的典型代表还有国内的寒武纪芯片和IBM的TrueNorth。以中国的寒武纪为例,DianNaoYu指令直接面对大规模神经元和突触的处理,一条指令即可完成一组神经元的处理,并对神经元和突触数据在芯片上的传输提供了一系列专门的支持。
用数字来说话,CPU、GPU与NPU相比,会有百倍以上的性能或能耗比差距——以寒武纪团队过去和Inria联合发表的DianNao论文为例——DianNao为单核处理器,主频为0.98GHz,峰值性能达每秒4520亿次神经网络基本运算,65nm工艺下功耗为0.485W,面积3.02平方毫米mm。
华为mate10中所用的麒麟970芯片,就集成了寒武纪的NPU,NPU是麒麟970处理器的最大特征,专业来说,它相当于是设立了一个专门的AI硬件处理单元—NPU,主要用来处理海量的AI数据。NPU是麒麟970芯片中,搭载的一颗用于神经元计算的独立处理单元,英文名NeuralNetworkProcessingUnit,简称NPU,中文含义为“神经元网络”,它的功能主要是「Anewbraininyourmobile」,简单地说,借助这个玩意儿,你的手机或许会变得更聪明一些。
简单地说,由于神经元分布是网状结构,因此能够实现发散式的信息处理及存储,使得处理与存储的效率大大提高,并有助于机器学习(啊,我的手机都开始认真学习了),没错和我们平时所说的「发散性思维」有些像。
由于神经网络算法及机器学习需要涉及海量的信息处理,而当下的CPU/GPU都无法达到如此高效的处理能力,所以需要有一个独立的处理芯片来做这个事,麒麟970芯片中的这个NPU便是这样的一个角色。
另外,以往我们的手机无法知道一张图片里,除了我们的脸之外,还有些什么,而如今借助NPU这类芯片,手机能够知道你在哪里拍了什么照片,照片中有什么著名的建筑或者哪条街,同时猫啊狗啊也能帮你分析出来,甚至为他们设一个照片专辑。
当然,经过长期与大量的学习后,手机便能在你拍摄的过程中实时分析拍摄场景,并分别针对不同的场景进行相机参数的设置,从而实现「随手拍出好照片」
PS,中星微电子的“星光智能一号”虽说对外号称是NPU,但其实只是DSP,仅支持网络正向运算,无法支持神经网络训练。
在我们了解了以上这些知识的基础上,我们再来理解BPU和DPU就更容易了。
BPU
BrainProcessingUnit(大脑处理器)。地平线机器人(HorizonRobotics)以BPU来命名自家的AI芯片。地平线是一家成立于2015年的start-up,总部在北京,目标是“嵌入式人工智能全球领导者”。地平线的芯片未来会直接应用于自己的主要产品中,包括:智能驾驶、智能生活和智能城市。地平线机器人的公司名容易让人误解,以为是做“机器人”的,其实不然。地平线做的不是“机器”的部分,是在做“人”的部分,是在做人工智能的“大脑”,所以,其处理器命名为BPU。相比于国内外其他AI芯片start-up公司,第一代是高斯架构,第二代是伯努利架构,第三代是贝叶斯架构。目前地平线已经设计出了第一代高斯架构,并与英特尔在2017年CES展会上联合推出了ADAS系统(高级驾驶辅助系统)。BPU主要是用来支撑深度神经网络,比在CPU上用软件实现更为高效。然而,BPU一旦生产,不可再编程,且必须在CPU控制下使用。BPU已经被地平线申请了注册商标,其他公司就别打BPU的主意了。
Bio-RecognitionProcessingUnit。生物特征识别现在已经不是纸上谈兵的事情了。指纹识别已经是近来智能手机的标配,电影里的黑科技虹膜识别也上了手机,声纹识别可以支付了...不过,除了指纹识别有专门的ASIC芯片外,其他生物识别还基本都是sensor加通用cpu/dsp的方案。不管怎样,这些芯片都没占用BPU或BRPU这个宝贵位置。
D是DeepLearning的首字母,以DeepLearning开头来命名AI芯片是一种很自然的思路。
DPU
Deep-LearningProcessingUnit(深度学习处理器)。DPU并不是哪家公司的专属术语。在学术圈,DeepLearningProcessingUnit(或processor)被经常提及。例如ISSCC2017新增的一个session的主题就是DeepLearningProcessor。以DPU为目标的公司如下。
DeephiTech(深鉴)深鉴是一家位于北京的start-up,初创团队有很深的清华背景。深鉴将其开发的基于FPGA的神经网络处理器称为DPU。到目前为止,深鉴公开发布了两款DPU:亚里士多德架构和笛卡尔架构,分别针对CNN以及DNN/RNN。虽然深鉴号称是做基于FPGA的处理器开发,但是从公开渠道可以看到的招聘信息以及非公开的业内交流来看,其做芯片已成事实。
TensTorrent一家位于Toronto的start-up,研发专为深度学习和智能硬件而设计的高性能处理器,技术人员来自NVDIA和AMD。
DeepLearningUnit。深度学习单元。Fujitsu(富士通)最近高调宣布了自家的AI芯片,命名为DLU。名字虽然没什么创意,但是可以看到DLU已经被富士通标了“TM”,虽然TM也没啥用。在其公布的信息里可以看到,DLU的ISA是重新设计的,DLU的架构中包含众多小的DPU(DeepLearningProcessingUnit)和几个大的mastercore(控制多个DPU和memory访问)。每个DPU中又包含了16个DPE(Deep-LearningProcessingElement),共128个执行单元来执行SIMD指令。富士通预计2018财年内推出DLU。
DeepLearningAccelerator。深度学习加速器。NVIDA宣布将这个DLA开源,给业界带来了不小的波澜。大家都在猜测开源DLA会给其他AI公司带来什么。参考这篇吧"从Nvidia开源深度学习加速器说起"
DataflowProcessingUnit。数据流处理器。创立于2010年的wavecomputing公司将其开发的深度学习加速处理器称为DataflowProcessingUnit(DPU),应用于数据中心。Wave的DPU内集成1024个cluster。每个Cluster对应一个独立的全定制版图,每个Cluster内包含8个算术单元和16个PE。其中,PE用异步逻辑设计实现,没有时钟信号,由数据流驱动,这就是其称为DataflowProcessor的缘由。使用TSMC16nmFinFET工艺,DPUdie面积大概400mm^2,内部单口sram至少24MB,功耗约为200W,等效频率可达10GHz,性能可达181TOPS。前面写过一篇他家DPU的分析,见传输门AI芯片|浅析YannLeCun提到的两款DataflowChip。
国际上,WaveComputing最早提出DPU。在国内,DPU最早是由深鉴科技提出,是基于Xilinx可重构特性的FPGA芯片,设计专用深度学习处理单元,且可以抽象出定制化的指令集和编译器,从而实现快速的开发与产品迭代。
你以为到这里就完了吗?
不,据说每过18天,集成电路领域就会多出一个XPU,直到26个字母被用完。
这被戏称为AI时代的XPU版摩尔定律。
据不完全统计,已经被用掉的有:
APU
AcceleratedProcessingUnit,加速处理器,AMD公司推出加速图像处理芯片产品。
BrainProcessingUnit,大脑处理器,地平线公司主导的嵌入式处理器架构。
CentralProcessingUnit中央处理器,目前PCcore的主流产品。
DeeplearningProcessingUnit,深度学习处理器,最早由国内深鉴科技提出;另说有DataflowProcessingUnit数据流处理器,WaveComputing公司提出的AI架构;DatastorageProcessingUnit,深圳大普微的智能固态硬盘处理器。
EPU
EmotionProcessingUnit情感处理器,Emoshape并不是这两年才推出EPU的,号称是全球首款情绪合成(emotionsynthesis)引擎,可以让机器人具有情绪。但是,从官方渠道消息看,EPU本身并不复杂,也不需要做任务量巨大的神经网络计算,是基于MCU的芯片。结合应用API以及云端的增强学习算法,EPU可以让机器能够在情绪上了解它们所读或所看的内容。结合自然语言生成(NLG)及WaveNet技术,可以让机器个性化的表达各种情绪。例如,一部能够朗读的Kindle,其语音将根据所读的内容充满不同的情绪状态。
FPU
FloatingProcessingUnit浮点计算器,浮点单元,不多做解释了。现在高性能的CPU、DSP、GPU内都集成了FPU做浮点运算。
ForceProcessingUnit。原力处理器,助你成为绝地武士。酷!
GraphicsProcessingUnit,图形处理器,采用多线程SIMD架构,为图形处理而生。
HPU
HolographicsProcessingUnit全息图像处理器。Microsoft专为自家Hololens应用开发的。第一代HPU采用28nmHPC工艺,使用了24个TensilicaDSP并进行了定制化扩展。HPU支持5路cameras、1路深度传感器(Depthsensor)和1路动作传感器(MotionSensor)。Microsoft在最近的CVPR2017上宣布了HPU2的一些信息。HPU2将搭载一颗支持DNN的协处理器,专门用于在本地运行各种深度学习。指的一提的是,HPU是一款为特定应用所打造的芯片,这个做产品的思路可以学习。据说Microsoft评测过Movidius(见VPU部分)的芯片,但是觉得无法满足算法对性能、功耗和延迟的要求,所有才有了HPU。
IPU
IntelligenceProcessingUnit,智能处理器,DeepMind投资的Graphcore公司出品的AI处理器产品。
JPU
请原谅鄙人的词汇量,没什么新奇的想法。。。。
KPU
KnowledgeProcessingUnit,知识处理器。嘉楠耘智(canaan)号称2017年将发布自己的AI芯片KPU。嘉楠耘智要在KPU单一芯片中集成人工神经网络和高性能处理器,主要提供异构、实时、离线的人工智能应用服务。这又是一家向AI领域扩张的不差钱的矿机公司。作为一家做矿机芯片(自称是区块链专用芯片)和矿机的公司,嘉楠耘智累计获得近3亿元融资,估值近33亿人民币。据说嘉楠耘智近期将启动股改并推进IPO。
另:KnowledgeProcessingUnit这个词并不是嘉楠耘智第一个提出来的,早在10年前就已经有论文和书籍讲到这个词汇了。只是,现在嘉楠耘智将KPU申请了注册商标。
LPU
谁给我点灵感?
MPU/MCU
Microprocessor/MicrocontrollerUnit,微处理器/微控制器,一般用于低计算应用的RISC计算机体系架构产品,如ARM-M系列处理器。
MindProcessingUnit。意念处理器,听起来不错。“解读脑电波”,“意念交流”,永恒的科幻话题。如果采集大量人类“思考”的脑电波数据,通过深度学习,再加上强大的意念处理器MPU,不知道能否成为mind-reader。如果道德伦理上无法接受,先了解一下家里宠物猫宠物狗的“想法”也是可以的吗。再进一步,从mind-reader发展为mind-writer,持续升级之后,是不是就可以成为冰与火中的Skinchanger?
MobileProcessingUnit。移动处理器,似乎没什么意思。
MotionProcessingUnit。运动处理器。解析人类、动物的肌肉运动?
题外话:并不是所有的xPU都是处理器,比如有个MPU,是MemoryProtectionUnit的缩写,是内存保护单元,是ARM核中配备的具有内存区域保护功能的模块。
NeuralNetworkProcessingUnit,神经网络处理器,是基于神经网络算法与加速的新型处理器总称,如中科院计算所/寒武纪公司出品的diannao系列。
OPU
Optical-FlowProcessingUnit。光流处理器。有需要用专门的芯片来实现光流算法吗?不知道,但是,用ASICIP来做加速应该是要的。
PPU
PhysicalProcessingUnit。物理处理器。要先解释一下物理运算,就知道物理处理器是做什么的了。物理计算,就是模拟一个物体在真实世界中应该符合的物理定律。具体的说,可以使虚拟世界中的物体运动符合真实世界的物理定律,可以使游戏中的物体行为更加真实,例如布料模拟、毛发模拟、碰撞侦测、流体力学模拟等。开发物理计算引擎的公司有那么几家,使用CPU来完成物理计算,支持多种平台。但是,Ageia应该是唯一一个使用专用芯片来加速物理计算的公司。Ageia于2006年发布了PPU芯片PhysX,还发布了基于PPU的物理加速卡,同时提供SDK给游戏开发者。2008年被NVIDIA收购后,PhysX加速卡产品被逐渐取消,现在物理计算的加速功能由NVIDIA的GPU实现,PhysXSDK被NVIDIA重新打造。
QPU
RPU
ResistiveProcessingUnit。阻抗处理单元RPU。这是IBMWatsonResearchCenter的研究人员提出的概念,真的是个处理单元,而不是处理器。RPU可以同时实现存储和计算。利用RPU阵列,IBM研究人员可以实现80TOPS/s/W的性能。
Ray-tracingProcessingUnit。光线追踪处理器。Raytracing是计算机图形学中的一种渲染算法,RPU是为加速其中的数据计算而开发的加速器。现在这些计算都是GPU的事情了。
RadioProcessingUnit,无线电处理器,ImaginationTechnologies公司推出的集合集Wifi/蓝牙/FM/处理器为单片的处理器。
SPU
StreamingProcessingUnit。流处理器。流处理器的概念比较早了,是用于处理视频数据流的单元,一开始出现在显卡芯片的结构里。可以说,GPU就是一种流处理器。甚至,还曾经存在过一家名字为“StreamingProcessorInc”的公司,2004年创立,2009年,随着创始人兼董事长被挖去NVIDIA当首席科学家,SPI关闭。
启英泰伦(chipintelli)于2015年11月在成都成立。该公司的CI1006是一款集成了神经网络加速硬件来做语音识别的芯片,可实现单芯片本地离线大词汇量识别。
MIT项目。今年年初媒体爆过MIT的一款黑科技芯片,其实就是MIT在ISSCC2017上发表的paper里的芯片,也是可以实现单芯片离线识别上k个单词。可以参考阅读“分析一下MIT的智能语音识别芯片”。
云知声(UniSound)。云知声是一家专攻智能语音识别技术的公司,成立于2012年6月,总部在北京。云知声刚刚获得3亿人民币战略投资,其中一部分将用来研发其稍早公布的AI芯片计划,命名“UniOne”。据官方透漏,UniOne将内置DNN处理单元,兼容多麦克风、多操作系统。并且,芯片将以模组的形式提供给客户,让客户直接拥有一整套云端芯的服务。
SmartProcessingUnit。聪明的处理器,听起来很Q。
SpaceProcessingUnit。空间处理器,高大上,有没有。全景摄像,全息成像,这些还都是处理我们的生活空间。当面对广阔的太阳系、银河系这些宇宙空间,是不是需要新的更强大的专用处理器呢?飞向M31仙女座星系,对抗黑暗武士,只靠x86估计是不行的。
TensorProcessingUnit张量处理器,Google公司推出的加速人工智能算法的专用处理器。目前一代TPU面向Inference,二代面向训练。
UPU
UniverseProcessingUnit。宇宙处理器。和SpaceProcessingUnit相比,你更喜欢哪个?
VPU
VectorProcessingUnit矢量处理器,Intel收购的Movidius公司推出的图像处理与人工智能的专用芯片的加速计算核心。
VisionProcessingUnit。视觉处理器VPU也有希望成为通用名词。作为现今最火热的AI应用领域,计算机视觉的发展的确能给用户带来前所未有的体验。为了处理计算机视觉应用中遇到的超大计算量,多家公司正在为此设计专门的VPU。
Movidius(已被Intel收购)。Movidius成立于2006年,总部位于硅谷的SanMateo,创始人是两个爱尔兰人,所以在爱尔兰有分部。Movidius早期做的是将旧电影转为3D电影的业务,后期开始研发应用于3D渲染的芯片,并开始应用于计算机视觉应用领域(这说明:1,芯片行业才是高技术含量、高门槛、高价值的行业;2,初创公司要随着发展调整自己的战略)。Movidius开发的Myriad系列VPU专门为计算机视觉进行优化,可以用于3D扫描建模、室内导航、360°全景视频等更前沿的计算机视觉用途。例如,2014年,谷歌的ProjectTango项目用Myriad1帮助打造室内三维地图;2016年,大疆的“精灵4”和“御”都采用了Movidius的Myriad2芯片。采用TSMC28nm工艺的Myriad2中集成了12个向量处理器SHAVE(StreamingHybridArchitectureVectorEngine)。按照Movidius的说法,SHAVE是一种混合型流处理器,集成了GPU、DSP和RISC的优点,支持8/16/32bit定点和16/32bit浮点计算,而且硬件上支持稀疏数据结构。此外,Myriad2中有两个RISC核以及video硬件加速器。据称,Myriad2可以同时处理多个视频流。
Inuitive一家以色列公司,提供3D图像和视觉处理方案,用于AR/VR、无人机等应用场景。Inuitive的下一代视觉处理器NU4000采用28nm工艺,选择使用CEVA的XM4DSP,并集成了深度学习处理器(自己开发?或者购买IP?)和深度处理引擎等硬件加速器。
DeepVision一家总部位于PaloAlto的start-up,为嵌入式设备设计和开发低功耗VPU,以支持深度学习、CNN以及传统的视觉算法,同时提供实时处理软件。
VisualProcessingUnit。这里是visual,不是vision。ATI一开始称自家显卡上的芯片为VPU,后来见贤思齐,都改叫GPU了。
VideoProcessingUnit。视频处理器。处理动态视频而不是图像,例如进行实时编解码。
VectorProcessingUnit。向量处理器。标量处理器、向量处理器、张量处理器,这是以处理器处理的数据类型进行的划分。现在的CPU已经不再是单纯的标量处理器,很多CPU都集成了向量指令,最典型的就是SIMD。向量处理器在超级计算机和高性能计算中,扮演着重要角色。基于向量处理器研发AI领域的专用芯片,也是很多公司的选项。例如,前面刚提到Movidius的Myriad2中,就包含了12个向量处理器。
VisionDSP。针对AI中的计算机视觉应用,各家DSP公司都发布了DSP的Vision系列IP。简单罗列如下。
CEVA的XM4,最新的XM6DSP。除了可以连接支持自家的硬件加速器HWA(CEVADeepNeuralNetworkHardwareAccelerator),也可以支持第三方开发的HWA。前面提到的Inuitive使用了XM4。可以参考“处理器IP厂商的机器学习方案-CEVA”。
Tensilica(2013年被Cadence以3.8亿美元收购)的P5、P6,以及最新的C5DSP。一个最大的特色就是可以用TIE语言来定制指令。前面微软的HPU中使用他家的DSP。可以参考“神经网络DSP核的一桌麻将终于凑齐了”。
Synopsys的EV5x和EV6x系列DSP。可以参考“处理器IP厂商的机器学习方案-Synopsys”。
Videantis的v-MP4系列。Videantis成立于1997年,总部位于德国汉诺顿。v-MP4虽然能做很多机器视觉的任务,但还是传统DSP增强设计,并没有针对神经网络做特殊设计。
WPU
WearableProcessingUnit,可穿戴处理器,一家印度公司InedaSystems公司推出的可穿戴片上系统产品,包含GPU/MIPSCPU等IP。
InedaSystems在2014年大肆宣传了一下他们针对IOT市场推出的WPU概念,获得了高通和三星的注资。InedaSystems研发的这款“DhanushWPU”分为四个级别,可适应普通级别到高端级别的可穿戴设备的运算需求,可以让可穿戴设备的电池达到30天的持续续航、减少10x倍的能耗。但是,一切似乎在2015年戛然而止,没有了任何消息。只在主页的最下端有文字显示,Ineda将WPU申请了注册商标。有关WPU的信息只有大概结构,哦,对了,还有一个美国专利。
WisdomProcessingUnit。智慧处理器。这个WPU听起来比较高大上,拿去用,不谢。不过,有点“脑白金”的味道。
XPU
百度与Xilinx公司在2017年Hotchips大会上发布的FPGA智能云加速,含256核。
百度公开了其FPGAAccelerator的名字,就叫XPU。
YPU
Y?没想法,大家加油抢注名字了。
ZPU
ZylinProcessingUnit,由挪威Zylin公司推出的一款32位开源处理器。
挪威公司Zylin的CPU的名字。为了在资源有限的FPGA上能拥有一个灵活的微处理器,Zylin开发了ZPU。ZPU是一种stackmachine(堆栈结构机器),指令没有操作数,代码量很小,并有GCC工具链支持,被称为“Theworldssmallest32bitCPUwithGCCtoolchain”。Zylin在2008年将ZPU在opencores上开源。有组织还将Arduino的开发环境进行了修改给ZPU用。
其他非xPU的AI芯片
IntelIntel在智能手机芯片市场的失利,让其痛定思痛,一改当年的犹豫,在AI领域的几个应用方向上接连发了狠招。什么狠招呢,就是三个字:买,买,买。在数据中心/云计算方面,167亿美金收购的Altera,4亿美金收购Nervana;在移动端的无人机、安防监控等方面,收购Movidius(未公布收购金额);在ADAS方面,153亿美金收购Mobileye。Movidius在前面VPU部分进行了介绍,这里补充一下Nervana和Mobileye(基于视觉技术做ADAS方案,不是单纯的视觉处理器,所以没写在VPU部分)。
NervanaNervana成立于2014年,总部在SanDiego,以提供AI全栈软件平台NervanaCloud为主要业务。和硬件扯上关系的是,NervanaCloud除了支持CPU、GPU甚至XeonPhi等后台硬件外,还提供有自家定制的NervanaEngine硬件架构。根据TheNextPlatform的报道“DeepLearningChipUpstartTakesGPUstoTask”,NervanaEngine使用TSMC28nm工艺,算力55TOPS。报道发布不到24小时,就被Intel收购了,全部48位员工并入Intel。Intel以NervanaEngine为核心打造了CrestFamily系列芯片。项目代码为“LakeCrest”的芯片是第一代NervanaEngine,“KnightsCrest”为第二代。哦,对了,Nervana的CEO在创立Nervana之前,在高通负责一个神经形态计算的研究项目,就是上面提到的Zeroth。
Mobileye一家基于计算机视觉做ADAS的以色列公司,成立于1999年,总部在耶路撒冷。Mobileye为自家的ADAS系统开发了专用的芯片——EyeQ系列。2015年,Tesla宣布正在使用Mobileye的芯片(EyeQ3)和方案。但是,2016年7月,Tesla和Mobileye宣布将终止合作。随后,Mobile于2017年被Intel以$153亿收入囊中,现在是Intel的子公司。Mobileye的EyeQ4使用了28nmSOI工艺,其中用了4个MIPS的大CPUcore做主控和算法调度以及一个MIPS的小CPUcore做外设控制,集成了10个向量处理器(称为VMP,VectorMicrocodeProcessor)来做数据运算(有点眼熟,回去看看Movidius部分)。Mobileye的下一代EyeQ5将使用7nmFinFET工艺,集成18个视觉处理器,并且为了达到自动驾驶的level5增加了硬件安全模块。
比特大陆Bitmain比特大陆设计的全定制矿机芯片性能优越,让其大赚特赚。在卖矿机芯片之余,比特大陆自己也挖挖矿。总之,芯片设计能力非凡、土豪有钱的比特大陆对标NVIDIA的高端GPU芯片,任性地用16nm的工艺开启了自家的AI芯片之路。芯片测试已有月余,据传功耗60W左右,同步在招揽产品、市场人员。最近的推文爆出了这款AI芯片的名字:“智子(Sophon)”,来自著名的《三体》,可见野心不小,相信不就即将正式发布。
苹果苹果正在研发一款AI芯片,内部称为“苹果神经引擎”(AppleNeuralEngine)。这个消息大家并不惊讶,大家想知道的就是,这个ANE会在哪款iphone中用上。
高通高通除了维护其基于Zeroth的软件平台,在硬件上也动作不断。收购NXP的同时,据传高通也一直在和YannLeCun以及Facebook的AI团队保持合作,共同开发用于实时推理的新型芯片。
还有一些诸如Leapmind、REM这样的start-up,就不一一列举。
目前三位数的xpu还剩俩仨个(抓紧抢注啊!),等三位数的XPU被用完后,即将会出现XXPU,XXXPU,XXXXPU......,并且会以更快的发展速度带来更长的名字,最后是更难记住。
突然感觉还是现在的这些XPU的名字听起来顺口啊,毕竟只有三个字母。
当然,将来的事情等到将来再说,过好当下才是重要的事情。
不说了,回去打扫卫生了,老板丹炉里的灰还等着我去掏呢。