We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode 丽莎老师讲机器人之CPU、GPU、TPU、NPU都是些什么之二

丽莎老师讲机器人之CPU、GPU、TPU、NPU都是些什么之二

2019/12/13
logo of podcast 丽莎讲机器人

丽莎讲机器人

Shownotes Transcript

丽莎老师讲机器人之CPU、GPU、TPU、NPU都是些什么之二 欢迎收听丽莎老师讲机器人,想要孩子参加机器人竞赛、创意编程、创客竞赛的辅导,找丽莎老师!欢迎添加微信号:153 5359 2068,或搜索微信公众号:我最爱机器人。TPUCPU和GPU都是较为通用的芯片,但是有句老话说得好:万能工具的效率永远比不上专用工具。随着人们的计算需求越来越专业化,人们希望有芯片可以更加符合自己的专业需求,这时,便产生了ASIC(专用集成电路)的概念。ASIC是指依产品需求不同而定制化的特殊规格集成电路,由特定使用者要求和特定电子系统的需要而设计、制造。当然这概念不用记,简单来说就是定制化芯片。因为ASIC很“专一”,只做一件事,所以它就会比CPU、GPU等能做很多件事的芯片在某件事上做的更好,实现更高的处理速度和更低的能耗。但相应的,ASIC的生产成本也非常高。而TPU(Tensor Processing Unit, 张量处理器)就是谷歌专门为加速深层神经网络运算能力而研发的一款芯片,其实也是一款ASIC。一般公司是很难承担为深度学习开发专门ASIC芯片的成本和风险的,究其原因是谷歌提供的很多服务,包括谷歌图像搜索、谷歌照片、谷歌云视觉API、谷歌翻译等产品和服务都需要用到深度神经网络。基于谷歌自身庞大的体量,开发一种专门的芯片开始具备规模化应用(大量分摊研发成本)的可能。如此TPU登上历史舞台也顺理成章了。原来很多的机器学习以及图像处理算法大部分都跑在GPU与FPGA(半定制化芯片)上面,但这两种芯片都还是一种通用性芯片,所以在效能与功耗上还是不能更紧密的适配机器学习算法,而且Google一直坚信伟大的软件将在伟大的硬件的帮助下更加大放异彩,所以Google便想,我们可不可以做出一款专用机机器学习算法的专用芯片,TPU便诞生了。TPU与同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。初代的TPU只能做推理,要依靠Google云来实时收集数据并产生结果,而训练过程还需要额外的资源;而第二代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)来跑神经网络应用时,就不可避免地受到存储和处理分离式结构的制约,因而影响效率。这也就是专门针对人工智能的专业芯片能够对传统芯片有一定先天优势的原因之一。CPU、GPU与NPU相比,会有百倍以上的性能或能耗比差距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个字母被用完后,即将出现各种各样的PU,并以更快的速度占领起名界。