手机上的CPU GPU NPU单元,都单元测试是什么意思思

博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)芯片之争:CPU、GPU、DSP、NPU,到底哪个更适用于深度学习?
雷锋网按:为保证内容的专业性,本文已邀深度学习芯片领域专家把关审核过,作者铁流。日前,Intel称将于2017年推出针对深度学习市场的CPU&Knights Mill。据Intel宣传,Knights Mill 能充当主处理器,可以在不配备其它加速器或协处理器高效处理深度学习应用。可以说,继中国寒武纪和星光智能一号、IBM的真北、谷歌的 TPU,以及英伟达专门为人工智能定制的GPU之后,Intel也加入该领域的竞争。那么,这多深度学习处理器都有什么特点,又有什么优势和劣势呢?| CPU、GPU:用轿车运货在英伟达开发出针对人工智能的定制GPU,并坚持DGX-1 系统之后,Intel也不甘落后,在收购深度学习创业公司 Nervana Systems之后,Intel也公布了用于深度学习的Xeon Phi家族新成员,在深度学习处理器领域开辟新战场。在不久前,Intel还发布了一些Xeon Phi 的基准测试结果,其声称内容总结如下:1、四片 Knights Landing Xeon Phi 芯片比四片 GPU要快 2.3 倍;2、在多节点系统中, Xeon Phi 芯片的能比 GPU 更好地扩展38% ;3、128 块 Xeon Phi 的服务器组成的系统要比单块 Xeon Phi 服务器快 50 倍,暗示着 Xeon Phi 服务器的扩展性相当好;4、使用Intel优化版的 Caffe 深度学习框架时,Xeon Phi 芯片要比标准 Caffe 实现快 30 倍。一言蔽之,Intel的众核芯片在深度学习上比英伟达的GPU更为高效。不过,英伟达也随之反击,声称这是Intel使用了其旧的基准测试结果,并表示:1、如果英特尔使用更新一点的 Caffe AlexNet 实现结果的话,它就会发现四块上代英伟达 Maxwell GPU 实际上比四块英特尔 Xeon Phi 服务器集群快 30%。2、另外,一旦英伟达的 GPU 从 28nm 的平面工艺转移到 16nm 的 FinFET 工艺上时,GPU的性能和效率还会有很大的提升。3、对于深度学习,英伟达还强调更少的高性能节点无论如何都会比更多低性能节点好。并以其最新的 DGX-1为例,认为DGX-1比 21 个 Xeon Phi 服务器集群快一点,比四个 Xeon Phi 服务器集群快 5.3 倍。笔者认为,Intel的众核芯片也在一定程度上吸取了GPU的优势,性能不俗,但短时间看还是GPU有优势。不过,无论是针对人工智能的众核芯片还是定制版的GPU,本质上都不是专用处理器,实际上是拿现有的、相对成熟的架构和技术成果去应对新生的人工智能,并没有发生革命性的技术突破。其实,Intel和英伟达是在使用现有的比较成熟的技术去满足深度学习的需求,众核芯片和定制版GPU在本质上来说依旧是CPU和GPU,而并非专门针对深度学习的专业芯片,这就必然带来一些天生的不足。打一个比方,用众核芯片和GPU跑深度学习,就类似于用轿车去拉货,受轿车自身特点的限制,货物运输能力与真正大马力、高负载的货车有一定差距。同理,即便是因为技术相对更加成熟,Intel和英伟达的芯片在集成度和制造工艺上具有优势,但由于CPU、GPU并非针对深度学习的专业芯片,相对于专业芯片,其运行效率必然受到一定影响。&|&DSP:和真正神经网络芯片有差距6月20日,中星微“数字多媒体芯片技术”国家重点实验室在京宣布,中国首款嵌入式NPU(神经网络处理器)芯片诞生,目前已应用于全球首款嵌入式视频处理芯片“星光智能一号”。媒体称,“星光智能一号蕴含了当前计算机领域最前沿的生物人脑神经网络仿生学创新技术,且对严重依赖国外进口产品的中国集成电路产业来说,也是实现‘弯道超车’的一次踊跃尝试。它标志着我国在神经网络处理器领域的研究和开发上取得了重大突破;使我国视频监控行业发展由模拟时代、数字时代跨入智能时代,在全球确立领先地位。”不过,在经过仔细分析后,所谓“中国首款嵌入式神经网络处理器”很有可能是一款可以运行神经网络的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处理器等。|&NPU:为深度学习而生的专业芯片从技术角度看,深度学习实际上是一类多层大规模人工神经网络。它模仿生物神经网络而构建,由若干人工神经元结点互联而成。神经元之间通过突触两两连接,突触记录了神经元间联系的权值强弱。每个神经元可抽象为一个激励函数,该函数的输入由与其相连的神经元的输出以及连接神经元的突触共同决定。为了表达特定的知识,使用者通常需要(通过某些特定的算法)调整人工神经网络中突触的取值、网络的拓扑结构等。该过程称为“学习”。在学习之后,人工神经网络可通过习得的知识来解决特定的问题。由于深度学习的基本操作是神经元和突触的处理,而传统的处理器指令集(包括x86和ARM等)是为了进行通用计算发展起来的,其基本操作为算术操作(加减乘除)和逻辑操作(与或非),往往需要数百甚至上千条指令才能完成一个神经元的处理,深度学习的处理效率不高。因此谷歌甚至需要使用上万个x86 CPU核运行7天来训练一个识别猫脸的深度学习神经网络。因此,传统的处理器(包括x86和ARM芯片等)用于深度学习的处理效率不高,这时就必须另辟蹊径——突破经典的冯·诺伊曼结构。以中国的寒武纪为例,DianNaoYu指令直接面对大规模神经元和突触的处理,一条指令即可完成一组神经元的处理,并对神经元和突触数据在芯片上的传输提供了一系列专门的支持。另外,神经网络中存储和处理是一体化的,都是通过突触权重来体现。 而冯·诺伊曼结构中,存储和处理是分离的,分别由存储器和运算器来实现,二者之间存在巨大的差异。当用现有的基于冯·诺伊曼结构的经典计算机(如X86处理器和英伟达GPU)来跑神经网络应用时,就不可避免地受到存储和处理分离式结构的制约,因而影响效率。这也就是专门针对人工智能的专业芯片能够对传统芯片有一定先天优势的原因之一。用数字来说话,CPU、GPU与NPU相比,会有百倍以上的性能或能耗比差距——以寒武纪团队过去和Inria联合发表的DianNao论文为例——DianNao为单核处理器,主频为0.98GHz,峰值性能达每秒4520亿次神经网络基本运算,65nm工艺下功耗为0.485W,面积3.02平方毫米mm。在若干代表性神经网络上的实验结果表明——DianNao的平均性能超过主流CPU核的100倍,但是面积和功耗仅为1/10,效能提升可达三个数量级;DianNao的平均性能与主流GPGPU相当,但面积和功耗仅为主流GPGPU百分之一量级。&| &结语就现阶段而言,传统芯片厂商(如CPU、GPU和DSP)对于深度学习市场非常重视,因此利用他们巨大体量和市场推广、销售能力,大力推广用这些传统芯片来进行深度学习处理,其本质上也是对现有的技术进行微调,用传统SIMD架构来适配神经网络。然而,由于传统CPU、GPU和DSP本质上并非以硬件神经元和突触为基本处理单元,相对于NPU在深度学习方面天生会有一定劣势,在芯片集成度和制造工艺水平相当的情况下,其表现必然逊色于NPU。正如前文所述,无论是再好的轿车要去拉货,也不可能和真正大马力、高负载的货车相比。雷锋网注:本文为雷锋网(公众号:雷锋网)独家文章,转载请联系授权并保留出处和作者,不得删减内容。
微信扫一扫,将页面分享到朋友圈
推荐使用当前手机浏览器内置分享功能
( IOS/Android )芯片之争:CPU、GPU、DSP、NPU,到底哪个更适用于深度学习?
我的图书馆
芯片之争:CPU、GPU、DSP、NPU,到底哪个更适用于深度学习?
雷锋网按:为保证内容的专业性,本文已邀深度学习芯片领域专家把关审核过,作者铁流。日前,Intel称将于2017年推出针对深度学习市场的CPU Knights Mill。据Intel宣传,Knights Mill 能充当主处理器,可以在不配备其它加速器或协处理器高效处理深度学习应用。可以说,继中国寒武纪和星光智能一号、IBM的真北、谷歌的 TPU,以及英伟达专门为人工智能定制的GPU之后,Intel也加入该领域的竞争。那么,这多深度学习处理器都有什么特点,又有什么优势和劣势呢?| CPU、GPU:用轿车运货在英伟达开发出针对人工智能的定制GPU,并坚持DGX-1 系统之后,Intel也不甘落后,在收购深度学习创业公司 Nervana Systems之后,Intel也公布了用于深度学习的Xeon Phi家族新成员,在深度学习处理器领域开辟新战场。在不久前,Intel还发布了一些Xeon Phi 的基准测试结果,其声称内容总结如下:1、四片 Knights Landing Xeon Phi 芯片比四片 GPU要快 2.3 倍;2、在多节点系统中, Xeon Phi 芯片的能比 GPU 更好地扩展38% ;3、128 块 Xeon Phi 的服务器组成的系统要比单块 Xeon Phi 服务器快 50 倍,暗示着 Xeon Phi 服务器的扩展性相当好;4、使用Intel优化版的 Caffe 深度学习框架时,Xeon Phi 芯片要比标准 Caffe 实现快 30 倍。一言蔽之,Intel的众核芯片在深度学习上比英伟达的GPU更为高效。不过,英伟达也随之反击,声称这是Intel使用了其旧的基准测试结果,并表示:1、如果英特尔使用更新一点的 Caffe AlexNet 实现结果的话,它就会发现四块上代英伟达 Maxwell GPU 实际上比四块英特尔 Xeon Phi 服务器集群快 30%。2、另外,一旦英伟达的 GPU 从 28nm 的平面工艺转移到 16nm 的 FinFET 工艺上时,GPU的性能和效率还会有很大的提升。3、对于深度学习,英伟达还强调更少的高性能节点无论如何都会比更多低性能节点好。并以其最新的 DGX-1为例,认为DGX-1比 21 个 Xeon Phi 服务器集群快一点,比四个 Xeon Phi 服务器集群快 5.3 倍。笔者认为,Intel的众核芯片也在一定程度上吸取了GPU的优势,性能不俗,但短时间看还是GPU有优势。不过,无论是针对人工智能的众核芯片还是定制版的GPU,本质上都不是专用处理器,实际上是拿现有的、相对成熟的架构和技术成果去应对新生的人工智能,并没有发生革命性的技术突破。其实,Intel和英伟达是在使用现有的比较成熟的技术去满足深度学习的需求,众核芯片和定制版GPU在本质上来说依旧是CPU和GPU,而并非专门针对深度学习的专业芯片,这就必然带来一些天生的不足。打一个比方,用众核芯片和GPU跑深度学习,就类似于用轿车去拉货,受轿车自身特点的限制,货物运输能力与真正大马力、高负载的货车有一定差距。同理,即便是因为技术相对更加成熟,Intel和英伟达的芯片在集成度和制造工艺上具有优势,但由于CPU、GPU并非针对深度学习的专业芯片,相对于专业芯片,其运行效率必然受到一定影响。| DSP:和真正神经网络芯片有差距6月20日,中星微“数字多媒体芯片技术”国家重点实验室在京宣布,中国首款嵌入式NPU(神经网络处理器)芯片诞生,目前已应用于全球首款嵌入式视频处理芯片“星光智能一号”。媒体称,“星光智能一号蕴含了当前计算机领域最前沿的生物人脑神经网络仿生学创新技术,且对严重依赖国外进口产品的中国集成电路产业来说,也是实现‘弯道超车’的一次踊跃尝试。它标志着我国在神经网络处理器领域的研究和开发上取得了重大突破;使我国视频监控行业发展由模拟时代、数字时代跨入智能时代,在全球确立领先地位。”不过,在经过仔细分析后,所谓“中国首款嵌入式神经网络处理器”很有可能是一款可以运行神经网络的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处理器等。| NPU:为深度学习而生的专业芯片从技术角度看,深度学习实际上是一类多层大规模人工神经网络。它模仿生物神经网络而构建,由若干人工神经元结点互联而成。神经元之间通过突触两两连接,突触记录了神经元间联系的权值强弱。每个神经元可抽象为一个激励函数,该函数的输入由与其相连的神经元的输出以及连接神经元的突触共同决定。为了表达特定的知识,使用者通常需要(通过某些特定的算法)调整人工神经网络中突触的取值、网络的拓扑结构等。该过程称为“学习”。在学习之后,人工神经网络可通过习得的知识来解决特定的问题。由于深度学习的基本操作是神经元和突触的处理,而传统的处理器指令集(包括x86和ARM等)是为了进行通用计算发展起来的,其基本操作为算术操作(加减乘除)和逻辑操作(与或非),往往需要数百甚至上千条指令才能完成一个神经元的处理,深度学习的处理效率不高。因此谷歌甚至需要使用上万个x86 CPU核运行7天来训练一个识别猫脸的深度学习神经网络。因此,传统的处理器(包括x86和ARM芯片等)用于深度学习的处理效率不高,这时就必须另辟蹊径——突破经典的冯·诺伊曼结构。以中国的寒武纪为例,DianNaoYu指令直接面对大规模神经元和突触的处理,一条指令即可完成一组神经元的处理,并对神经元和突触数据在芯片上的传输提供了一系列专门的支持。另外,神经网络中存储和处理是一体化的,都是通过突触权重来体现。 而冯·诺伊曼结构中,存储和处理是分离的,分别由存储器和运算器来实现,二者之间存在巨大的差异。当用现有的基于冯·诺伊曼结构的经典计算机(如X86处理器和英伟达GPU)来跑神经网络应用时,就不可避免地受到存储和处理分离式结构的制约,因而影响效率。这也就是专门针对人工智能的专业芯片能够对传统芯片有一定先天优势的原因之一。用数字来说话,CPU、GPU与NPU相比,会有百倍以上的性能或能耗比差距——以寒武纪团队过去和Inria联合发表的DianNao论文为例——DianNao为单核处理器,主频为0.98GHz,峰值性能达每秒4520亿次神经网络基本运算,65nm工艺下功耗为0.485W,面积3.02平方毫米mm。在若干代表性神经网络上的实验结果表明——DianNao的平均性能超过主流CPU核的100倍,但是面积和功耗仅为1/10,效能提升可达三个数量级;DianNao的平均性能与主流GPGPU相当,但面积和功耗仅为主流GPGPU百分之一量级。| 结语就现阶段而言,传统芯片厂商(如CPU、GPU和DSP)对于深度学习市场非常重视,因此利用他们巨大体量和市场推广、销售能力,大力推广用这些传统芯片来进行深度学习处理,其本质上也是对现有的技术进行微调,用传统SIMD架构来适配神经网络。然而,由于传统CPU、GPU和DSP本质上并非以硬件神经元和突触为基本处理单元,相对于NPU在深度学习方面天生会有一定劣势,在芯片集成度和制造工艺水平相当的情况下,其表现必然逊色于NPU。正如前文所述,无论是再好的轿车要去拉货,也不可能和真正大马力、高负载的货车相比。雷锋网注:本文为雷锋网独家文章,转载请联系授权并保留出处和作者,不得删减内容。
TA的最新馆藏[转]&
喜欢该文的人也喜欢休闲娱乐生活服务其他类别扫扫有惊喜
伟大还是荒谬?华为带来全球首款手机AI芯片:NPU是噱头吗?9月2日晚,华为终于带来了新一代旗舰处理器麒麟970。作为少数能自主研发处理器的手机厂商,华为每代的处理器产品发布都会受到不少的关注。目前麒麟的旗舰处理器也完全可以在高端市场上和高通、三星一较高低。坦率地说,此次麒麟970在架构上和上代960相比没有变动,依然采用了4颗A73核心,而没有使用ARM最新的A75,算是一个遗憾。当然,从16nm到10nm是一个不小的进步,对功耗有极大的帮助。不过,这次麒麟970发布会上最引人注目的应该是那颗新加入的NPU。对CPU、GPU和协处理器等名词,我们已经很熟悉了,但NPU可能还是第一次听说。目前,麒麟970应该是唯一一款搭载了NPU的手机处理器。今天我们就来详细剖析一下这款备受关注的NPU。麒麟970上的NPU是什么?NPU的英文全称为“Neural-network Processing Unit”,即神经网络处理单元。与之对应的,CPU是中央处理器、GPU是图形处理器。“神经网络”听起来可能有些晦涩难懂,但换成“人工智能”“AI”似乎就熟悉多了。简单来说,NPU就是手机上专门处理人工智能深度学习的硬件。看到这里,不少人可能会想到高通骁龙820上首次搭载的NPE。的确,NPE和NPU有类似之处,它的英文全称为“Neural Processing Engine”,即神经处理引擎。NPE和NPU都能处理类似的任务,但NPE是软件层面,而NPU是硬件层面。如果拿电脑举例,显卡是其图像处理器,是硬件;而寒霜、虚幻、EGO等都是游戏引擎,仍属于软件。当然高通的NPE还是要借助CPU和GPU完成的。
上一页&1共3页热门新闻更多
实时热点榜单热门视频
阅读下一篇视频推荐通俗易懂告诉你CPU/GPU/TPU/NPU...XPU都是些什么鬼?【附把妹秘籍】
我的图书馆
通俗易懂告诉你CPU/GPU/TPU/NPU...XPU都是些什么鬼?【附把妹秘籍】
------ &&【导读】&&&------现在这年代,技术日新月异,物联网、人工智能、深度学习等概念遍地开花,各类芯片名词GPU, TPU, NPU,DPU层出不穷......它们都是什么鬼?与CPU又是什么关系?搞不懂这些知识,买手机的时候都没法在妹子面前装B了呢。这是“物小白系列”的第1篇文章“亲爱的,听说HW最新发布了Mate 10,里面有个叫什么NPU的,听起来很厉害,这是什么东西啊?”“呃……就是人工智能处理器吧?”“什么是人工智能处理器?和CPU有啥区别?和GPU有啥区别?不都带个PU吗?”“呃……”&现在这年代,技术日新月异,物联网、人工智能、深度学习等概念遍地开花,各类芯片名词GPU, TPU, NPU,DPU,层出不穷......它们都是什么鬼?与CPU又是什么关系?搞不懂这些知识,买手机的时候都没法在妹子面前装B了呢。&所以,今天我们就来通俗易懂的科普一下这些所谓的“XPU”!&CPUCPU( Central Processing Unit, 中央处理器)就是机器的“大脑”,也是布局谋略、发号施令、控制行动的“总司令官”。&CPU的结构主要包括运算器(ALU, Arithmetic and Logic Unit)、控制单元(CU, Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。简单来说就是:计算单元、控制单元和存储单元,架构如下图所示:图:CPU微架构示意图什么?架构记不住?来,我们换种表示方法:图:CPU微架构示意图(改)嗯,大概就是这个意思。从字面上我们也很好理解,计算单元主要执行算术运算、移位等操作以及地址运算和转换;存储单元主要用于保存运算中产生的数据以及指令等;控制单元则对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。所以一条指令在CPU中执行的过程是这样的:读取到指令后,通过指令总线送到控制器(黄色区域)中进行译码,并发出相应的操作控制信号;然后运算器(绿色区域)按照操作指令对数据进行计算,并通过数据总线将得到的数据存入数据缓存器(大块橙色区域)。过程如下图所示:图:CPU执行指令图是不是有点儿复杂?没关系,这张图完全不用记住,我们只需要知道,CPU遵循的是冯诺依曼架构,其核心就是:存储程序,顺序执行。讲到这里,有没有看出问题,没错——在这个结构图中,负责计算的绿色区域占的面积似乎太小了,而橙色区域的缓存Cache和黄色区域的控制单元占据了大量空间。高中化学有句老生常谈的话叫:结构决定性质,放在这里也非常适用。因为CPU的架构中需要大量的空间去放置存储单元(橙色部分)和控制单元(黄色部分),相比之下计算单元(绿色部分)只占据了很小的一部分,所以它在大规模并行计算能力上极受限制,而更擅长于逻辑控制。另外,因为遵循冯诺依曼架构(存储程序,顺序执行),CPU就像是个一板一眼的管家,人们吩咐的事情它总是一步一步来做。但是随着人们对更大规模与更快处理速度的需求的增加,这位管家渐渐变得有些力不从心。于是,大家就想,能不能把多个处理器放在同一块芯片上,让它们一起来做事,这样效率不就提高了吗?没错,GPU便由此诞生了。GPU在正式讲解GPU之前,我们先来讲讲上文中提到的一个概念——并行计算。并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来共同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。并行计算可分为时间上的并行和空间上的并行。时间上的并行是指流水线技术,比如说工厂生产食品的时候分为四步:清洗-消毒-切割-包装。如果不采用流水线,一个食品完成上述四个步骤后,下一个食品才进行处理,耗时且影响效率。但是采用流水线技术,就可以同时处理四个食品。这就是并行算法中的时间并行,在同一时间启动两个或两个以上的操作,大大提高计算性能。图:流水线示意图空间上的并行是指多个处理机并发的执行计算,即通过网络将两个以上的处理机连接起来,达到同时计算同一个任务的不同部分,或者单个处理机无法解决的大型问题。比如小李准备在植树节种三棵树,如果小李1个人需要6个小时才能完成任务,植树节当天他叫来了好朋友小红、小王,三个人同时开始挖坑植树,2个小时后每个人都完成了一颗植树任务,这就是并行算法中的空间并行,将一个大任务分割成多个相同的子任务,来加快问题解决速度。所以说,如果让CPU来执行这个种树任务的话,它就会一棵一棵的种,花上6个小时的时间,但是让GPU来种树,就相当于好几个人同时在种。GPU全称为Graphics&Processing&Unit,中文为图形处理器,就如它的名字一样,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(Tensor Processing Unit, 张量处理器)就是谷歌专门为加速深层神经网络运算能力而研发的一款芯片,其实也是一款ASIC。图:谷歌第二代TPU一般公司是很难承担为深度学习开发专门ASIC芯片的成本和风险的,但谷歌是谁,人家会差钱吗?咳咳,开玩笑。更重要的原因是谷歌提供的很多服务,包括谷歌图像搜索、谷歌照片、谷歌云视觉API、谷歌翻译等产品和服务都需要用到深度神经网络。基于谷歌自身庞大的体量,开发一种专门的芯片开始具备规模化应用(大量分摊研发成本)的可能。如此看来,TPU登上历史舞台也顺理成章了。原来很多的机器学习以及图像处理算法大部分都跑在GPU与FPGA(半定制化芯片)上面,但这两种芯片都还是一种通用性芯片,所以在效能与功耗上还是不能更紧密的适配机器学习算法,而且Google一直坚信伟大的软件将在伟大的硬件的帮助下更加大放异彩,所以Google便想,我们可不可以做出一款专用机机器学习算法的专用芯片,TPU便诞生了。&据称,TPU与同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。初代的TPU只能做推理,要依靠Google云来实时收集数据并产生结果,而训练过程还需要额外的资源;而第二代TPU既可以用于训练神经网络,又可以用于推理。看到这里你可能会问了,为什么TPU会在性能上这么牛逼呢?嗯,谷歌写了好几篇论文和博文来说明这一原因,所以仅在这里抛砖引玉一下。图:TPU 各模块的框图图:TPU芯片布局图如上图所示,TPU在芯片上使用了高达24MB的局部内存,6MB的累加器内存以及用于与主控处理器进行对接的内存,总共占芯片面积的37%(图中蓝色部分)。这表示谷歌充分意识到了片外内存访问是GPU能效比低的罪魁祸首,因此不惜成本的在芯片上放了巨大的内存。相比之下,英伟达同时期的K80只有8MB的片上内存,因此需要不断地去访问片外DRAM。另外,TPU的高性能还来源于对于低运算精度的容忍。研究结果表明,低精度运算带来的算法准确率损失很小,但是在硬件实现上却可以带来巨大的便利,包括功耗更低、速度更快、占芯片面积更小的运算单元、更小的内存带宽需求等...TPU采用了8比特的低精度运算。其它更多的信息可以去翻翻谷歌的论文。到目前为止,TPU其实已经干了很多事情了,例如机器学习人工智能系统RankBrain,它是用来帮助Google处理搜索结果并为用户提供更加相关搜索结果的;还有街景Street&View,用来提高地图与导航的准确性的;当然还有下围棋的计算机程序AlphaGo!NPU讲到这里,相信大家对这些所谓的“XPU”的套路已经有了一定了解,我们接着来。所谓NPU(Neural network Processing Unit), 即神经网络处理器。顾名思义,这家伙是想用电路模拟人类的神经元和突触结构啊!怎么模仿?那就得先来看看人类的神经结构——生物的神经网络由若干人工神经元结点互联而成,神经元之间通过突触两两连接,突触记录了神经元之间的联系。同志们,高中生物还记得吗?如果想用电路模仿人类的神经元,就得把每个神经元抽象为一个激励函数,该函数的输入由与其相连的神经元的输出以及连接神经元的突触共同决定。为了表达特定的知识,使用者通常需要(通过某些特定的算法)调整人工神经网络中突触的取值、网络的拓扑结构等。该过程称为“学习”。在学习之后,人工神经网络可通过习得的知识来解决特定的问题。这时不知道大家有没有发现问题——原来,由于深度学习的基本操作是神经元和突触的处理,而传统的处理器指令集(包括x86和ARM等)是为了进行通用计算发展起来的,其基本操作为算术操作(加减乘除)和逻辑操作(与或非),往往需要数百甚至上千条指令才能完成一个神经元的处理,深度学习的处理效率不高。这时就必须另辟蹊径——突破经典的冯·诺伊曼结构!神经网络中存储和处理是一体化的,都是通过突触权重来体现。 而冯·诺伊曼结构中,存储和处理是分离的,分别由存储器和运算器来实现,二者之间存在巨大的差异。当用现有的基于冯·诺伊曼结构的经典计算机(如X86处理器和英伟达GPU)来跑神经网络应用时,就不可避免地受到存储和处理分离式结构的制约,因而影响效率。这也就是专门针对人工智能的专业芯片能够对传统芯片有一定先天优势的原因之一。NPU的典型代表有国内的寒武纪芯片和IBM的TrueNorth。以中国的寒武纪为例,DianNaoYu指令直接面对大规模神经元和突触的处理,一条指令即可完成一组神经元的处理,并对神经元和突触数据在芯片上的传输提供了一系列专门的支持。用数字来说话,CPU、GPU与NPU相比,会有百倍以上的性能或能耗比差距——以寒武纪团队过去和Inria联合发表的DianNao论文为例——DianNao为单核处理器,主频为0.98GHz,峰值性能达每秒4520亿次神经网络基本运算,65nm工艺下功耗为0.485W,面积3.02平方毫米mm。文章开头所说的mate10中所用的麒麟970芯片,就集成了寒武纪的NPU,所以才可以实现所谓的照片优化功能,以及保证你的手机用了很长时间后还能不卡(当然也得真正用了才能知道有没有宣传的这么好)。PS,中星微电子的“星光智能一号”虽说对外号称是NPU,但其实只是DSP,仅支持网络正向运算,无法支持神经网络训练。在以上这些知识的基础上,我们再来理解BPU和DPU就更容易了。BPU(Brain Processing Unit,大脑处理器)是由地平线科技提出的嵌入式人工智能处理器架构。第一代是高斯架构,第二代是伯努利架构,第三代是贝叶斯架构。目前地平线已经设计出了第一代高斯架构,并与英特尔在2017年CES展会上联合推出了ADAS系统(高级驾驶辅助系统)。DPU(Deep learning Processing Unit, 即深度学习处理器)最早由国内深鉴科技提出,基于Xilinx可重构特性的FPGA芯片,设计专用的深度学习处理单元(可基于已有的逻辑单元,设计并行高效的乘法器及逻辑电路,属于IP范畴),且抽象出定制化的指令集和编译器(而非使用OpenCL),从而实现快速的开发与产品迭代。事实上,深鉴提出的DPU属于半定制化的FPGA。你以为到这里就完了吗?不,据说每过18天,集成电路领域就会多出一个XPU,直到26个字母被用完。这被戏称为AI时代的XPU版摩尔定律。据不完全统计,已经被用掉的有: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位开源处理器。当26个字母被用完后,即将出现XXPU,XXXPU,并以更快的速度占领起名界。你说吓不吓人?到这里,相信诸位也对这些XPU的概念有了初步的认识。可你以为给妹子讲了这些后就能成功讨得美人欢心吗?太天真了!妹子询问你类似问题的本质都只有一个:别BB了,快去下单给我买回来!以上,周末愉快~
TA的最新馆藏[转]&[转]&
喜欢该文的人也喜欢

我要回帖

更多关于 非空单元格是什么意思 的文章

 

随机推荐