GPUCPUTPU都是什么?有什么区别?

GPUCPUTPU都是什么?有什么区别?,第1张

GPU即图形处理器,Graphics Processing Unit的缩写。

CPU即中央处理器,Central Processing Unit的缩写。

TPU即谷歌的张量处理器,Tensor Processing Unit的缩写。

三者区别:

CPU虽然有多核,但一般也就几个,每个核都有足够大的缓存和足够多的数字和逻辑运算单元,需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理,并辅助有很多加速分支判断甚至更复杂的逻辑判断的硬件;

GPU的核数远超CPU,被称为众核(NVIDIA Fermi有512个核)。每个核拥有的缓存大小相对小,数字逻辑运算单元也少而简单(GPU初始时在浮点计算上一直弱于CPU),面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。

TPU是一款为机器学习而定制的芯片,经过了专门深度机器学习方面的训练,它有更高效能(每瓦计算能力)。大致上,相对于现在的处理器有7年的领先优势,宽容度更高,每秒在芯片中可以挤出更多的 *** 作时间,使用更复杂和强大的机器学习模型,将之更快的部署,用户也会更加迅速地获得更智能的结果。

Google将运用此技术打造的机器学习专用晶片称之为TPU(Tensor Processing Unit),Google在其自家部落格文章称,由于TPU专为机器学习所运行,得以较传统CPU、 GPU降低精度,在计算所需的电晶体数量上,自然可以减少,也因此,可从电晶体中挤出更多效能,每秒执行更复杂、强大的机器学习模组,并加速模组的运用,使得使用者更快得到答案,Google指出,团队已经在数据中心执行TPU超过一年,且发现TPU能让机器学习每瓦提高一个数量级,粗略来说,相当于摩尔定律中晶片效能往前推进了七年或者三代。

我国人工智能底层研究能力缺失的现象严重,最根本的原因在于这方面人才教育培养的缺失。2018年中,作者陈云霁在中国科学院大学开设了一门“智能计算系统”课程。这门课程受到了学生的欢迎,有很多选不上课的学生跟着旁听了整个学期。

关键词:智能计算系统 人工智能 专业课程

编者按 :5年前,本文作者陈云霁受邀在CCCF专栏上发表了一篇题为《体系结构研究者的人工智能之梦》 1 的文章,第一次公开介绍他从通用处理器转向深度学习处理器方向的心路历程(那篇文章后来也被收录进了《CCCF优秀文章精选》)。经过5年的努力,陈云霁在深度学习处理器方向作出了国际公认的贡献:他的学术论文被顶级会议ISCA’18超过四分之一的论文引用,他的技术成果被应用到华为、曙光、阿里等近亿台智能手机和服务器中。他因此被Science杂志评价为智能芯片的“先驱”和“领导者”。现在,当深度学习处理器已经成为学术界和工业界的热点时,陈云霁再次转身,迈向人工智能系统课程教学的新舞台。这篇文章将和大家分享他走向这个新舞台的心路历程。

智能计算系统课程的开设

我是一名中国科学院计算技术研究所的青年科研人员,主要从事计算机系统结构和人工智能交叉方向的基础研究。看到本文的标题和作者单位,大家可能会觉得有一点奇怪:作者和人工智能专业课程有什么关系?因为传统意义上,上课是高校教师的职责,中国科学院的员工除非是自愿担任了中国科学院大学(国科大)的岗位教授,否则并没有上课的义务。

驱使我主动思考人工智能专业课程设计的最主要的原因,是这样一个众所周知的现象:越是人工智能上层(算法层、应用层,见图1)的研究,我国研究者对世界作出的贡献越多;越是底层(系统层、芯片层),我国研究者的贡献越少。在各种ImageNet比赛中,我国很多机构的算法模型已经呈现“霸榜”的趋势,可以说代表了世界前沿水平。但这些算法模型绝大部分都是在CUDA 2 编程语言、Tensorflow编程框架以及GPU之上开发的。在这些底层“硬 科技 ”中,我国研究者对世界的贡献就相对少了很多。底层研究能力的缺失不仅会给我国人工智能基础研究拖后腿,更重要的是,将使得我国智能产业成为一个空中楼阁,走上信息产业受核心芯片和 *** 作系统制约的老路。

图1 人工智能研究大致层次

我国人工智能底层研究能力缺失的原因很多,我认为最根本的原因在于这方面的人才教育培养的缺失。没有肥沃的土壤,就长不出参天大树。没有具备系统思维的人工智能专业学生,我国就难以出现杰夫·迪恩(Jeff Dean)这样的智能计算系统大师,也不会产生有国际竞争力的智能系统产品。因此,在人工智能专业学生的培养上,我们应当主动作为去改变局面。

2018年我国有35个高校设立了人工智能本科专业,这是重新思考和梳理人工智能培养体系的一次重大机遇。就我目前的了解,大部分高校在考虑人工智能课程体系时,采用的是纯算法、纯应用的教学思路。这样培养出来的学生,仍然是偏向上层应用开发,对智能计算系统缺乏融会贯通的理解。

事实上,各个高校不乏有识之士,在课程设计上绕开系统课程往往受制于三大客观困难:一是国内还没有太多人工智能系统类的课程可供参考,二是国内缺乏人工智能系统类课程的师资,三是国际上缺乏人工智能系统课程的教材。

基于自己的研究背景,我对人工智能的算法和系统都有一些粗浅的涉猎。我是否能为解决人工智能系统课程、师资、教材上的困难作一点微薄的贡献?是否可以身体力行地培养一些具备系统思维和能力的人工智能专业学生呢?

因此,2018年中,我向中国科学院大学申请开设一门人工智能专业的系统课程,名为“智能计算系统”(曾名“智能计算机”),希望能培养学生对智能计算完整软硬件技术栈(包括基础智能算法、智能计算编程框架、智能计算编程语言、智能芯片体系结构等)融会贯通的理解。这门课程受到了学生的欢迎,有很多选不上课的学生跟着旁听了整个学期。让我尤其感动的是,有其他研究所的学生慕名自发地从中关村跑到怀柔来听课,上一次课来回车程就要三个小时,回到中关村都是深夜。这也许能说明这门课对学生来说有一定吸引力,大家在听课中有真正的收获。

人工智能专业学生培养和课程体系

人工智能专业的课程体系设计应该服务于学生培养目标。那么高校人工智能专业应该培养什么样的学生?

这个问题可能还没有统一的答案。对比和人工智能专业非常接近的计算机专业,高校的计算机专业培养的显然不是计算机的使用者,而是计算机整机或者子系统的研究者、设计者和制造者。

我国计算机专业的前辈在六十多年前开始设立计算机专业时,就高瞻远瞩地设计了一个软硬结合的方案来培养计算机整机或者子系统的研究者、设计者和制造者。这套方案经过六十年的演进,依然基本保持了当年的初衷。今天,各个高校的计算机专业,基本都开设了计算机组成原理、 *** 作系统、编译原理、计算机体系结构等系统类的必修课程(见图2)。也就是说,虽然计算机专业的学生毕业后大多从事软件开发工作,但是他们对计算机硬件系统还是有基础的了解的。

图2 网易云课堂上的计算机专业培养方案 3

人工智能专业学生的培养目标应当是人工智能系统或者子系统的研究者、设计者和制造者。只有实现这个目标,高校培养的人才才能源源不断地全面支撑我国人工智能的产业和研究。为了实现这个目标,人工智能专业的课程设计应当包括软硬两条线(就像计算机专业)。如果人工智能专业只开设机器学习算法、视听觉应用等课程,那充其量只能算是“人工智能应用专业”或者“人工智能算法专业”。毕竟算法只是冰山露出水面的一角,冰山底下90%还是硬件和系统。

就拿拥有世界上最大的AI算法研究团队的公司谷歌来说,谷歌董事长约翰·轩尼诗(John Hennessy)是计算机体系结构科学家,图灵奖得主;谷歌AI的总负责人杰夫·迪恩(Jeff Dean)是计算机系统研究者;谷歌AI最令人瞩目的三个进展(Tensorflow, AlphaGo, TPU)都是系统,而不仅仅是某个特定算法,算法只是系统的一个环节。因此,从人工智能国际学术主流来看,系统的重要性是不亚于算法的。

只学过算法的学生或许对于调模型参数很在行,但是对一个算法的耗时、耗电毫无感觉。这样的学生不具备把一个算法在工业系统上应用起来的基本功(因为一个算法真正要用起来必须满足延迟和能耗的限制)。

只有加入了系统线的课程,学生才能真正理解人工智能是怎样工作的,包括一个人工智能算法到底如何调用编程框架,编程框架又是怎么和 *** 作系统打交道,编程框架里的算子又是怎样一步步在芯片上运行起来。这样的学生能亲手构建出复杂的系统或者子系统,在科研上会有更大的潜力,在产业里也会有更强的竞争力。正如业界所云:“会用Tensorflow每年赚30万人民币,会设计Tensorflow每年赚30万美元。”

有很多老师和我说:“人工智能专业确实应当有一些系统类的课程。但国内从来没有开过这样的课,也没有合适的教材,我们学院也缺乏相应的老师来教这样的课程。”这是很实际的三个客观困难,但不应当影响我们对人工智能专业的课程设计。

从学生角度讲,人工智能专业开设什么课程,应该是看国家和企业需要学生会什么,而不完全是看老师现在会什么。六十年前,我国没有几个人见过计算机,更别说开课了。但为了两d一星等科学和工程计算任务,我国依然成立了中科院计算所,并在计算所办计算机教师培训班,在清华大学、中国科学技术大学等高校(此处恕不能一一列全)开设计算机专业,这才有了今天我国巨大的计算机产业。

从教师角度讲,人工智能的系统研究已经成为国际学术热点,讲授这类课程是一个教学相长的过程,能帮助教师走到国际学术前沿。今年美国计算机方向Top4高校(斯坦福大学、卡耐基梅隆大学、加州大学伯克利分校和麻省理工学院)以及其他多个国际单位的研究者联合发布了一份名为“Machine Learning System(机器学习系统)”的白皮书。在这样的新兴热门方向布局培育一批青年教师,无疑对提升所在高校乃至我国在人工智能学术界的影响力有巨大帮助。

因此,不论是对于人工智能专业的学生还是教师来说,把系统类课程开起来,都是有必要,也是有实际意义的。

什么是智能计算系统

简单来说,智能计算系统就是人工智能的物质载体。现阶段的智能计算系统通常是集成通用CPU和智能芯片(英伟达GPU或寒武纪MLU等)的异构系统,并向开发者提供智能计算编程框架和编程语言等。之所以要在通用CPU之外加上智能芯片,主要是因为通用CPU难以满足人工智能计算不断增长的速度和能耗需求。例如,2012年谷歌大脑用了16万个CPU核运行了数天来训练怎么识别猫脸,这对于工业应用来说是很难接受的。显然,要想真正把人工智能技术用起来,必须使用异构的智能计算系统。而为了降低异构智能计算系统的编程难度,就需要有面向智能计算的编程框架和编程语言。

事实上,智能计算系统已经以种种形态广泛渗透到我们的生活中了。IBM的超级计算机Summit用机器学习方法做天气预报,BAT的数据中心上运行着大量的广告推荐任务,华为的手机上集成寒武纪深度学习处理器来处理图像分析和语音识别,特斯拉的自动驾驶系统……都可以看成是智能计算系统。在智能时代,中国乃至全世界都需要大批的智能计算系统的开发者、设计者、应用者。

智能计算系统的发展并不是一蹴而就的事情。20世纪80年代面向符号主义智能处理的专用计算机(Prolog机和LISP机)可以被看成是第一代智能计算系统。但是当时人工智能缺乏实际应用,算法也不成熟,而且当时摩尔定律还处于飞速发展阶段,专用计算机相对每18个月性能就能翻番的通用CPU并没有太大优势。因此,第一代智能计算系统逐渐退出了 历史 舞台。

“智能计算系统”课程重点关注的是第二代智能计算系统,主要是面向深度学习等机器学习任务的计算机。相对于30年前的第一代智能计算系统,当今的第二代深度学习智能计算系统可谓是碰到了天时地利人和。当前图像识别、语音识别、自然语言理解、 游戏 、广告推荐等人工智能应用已开始落地,深度学习算法发展速度令人应接不暇。尤其重要的是,通用CPU性能发展已经趋停,要支撑不断发展的深度学习算法,必须要靠智能计算系统。因此,深度学习智能计算系统会在很长一个阶段里都是学术界和产业界关注的焦点。“智能计算系统”课程将能帮助学生深刻理解深度学习智能计算系统。

第二代智能计算系统主要支持深度学习等机器学习任务。未来如果人类真的要在通用人工智能道路上再往前走一步,那未来的第三代智能计算系统需要支持的算法将远远超出机器学习的范畴,必须包括联想、推理、涌现等高级认知智能算法。我个人猜测,第三代智能计算系统可能会是孵化通用人工智能的虚拟世界环境。“智能计算系统”课程或许能激发学生的好奇心,吸引学生投身于未来的第三代智能计算系统的研究中。

智能计算系统课程概况

“智能计算系统”这门课程主要是面向人工智能、计算机和软件工程专业的高年级本科生或研究生。课程目标是培养学生对智能计算完整软硬件技术栈(包括基础智能算法、智能计算编程框架、智能计算编程语言、智能芯片体系结构等)融会贯通的理解,成为智能计算系统(子系统)的设计者和开发者。

课程的前序课程包括C/C++编程语言、计算机组成原理和算法导论(或机器学习)。课程的课时相对比较灵活,可以是大学期上一个学期(40学时,课程提纲见表1),可以是小学期集中上一周(20学时),也可以嵌入到其他机器学习课程中作为一个补充。对于20学时的短期学习,课程希望学生能对智能计算系统“知其然”,主要是面向实际 *** 作;对于40学时的长期学习,课程希望学生能对智能计算系统“知其所以然”,因此要把机理讲透。

表1 智能计算系统课程提纲(40学时)

在课程讲授上,应该秉承两个原则。一是应用驱动。一门好的工程学科的课程应当是学以致用的,尤其是“智能计算系统”这样的课程,如果上完之后只学会了一些定理和公式,那基本没效果。另外一个原则是全栈贯通。过去计算机专业课程设计有个问题,就是条块分割明显,比如 *** 作系统和计算机体系结构是割裂的, *** 作系统对计算机体系结构提出了什么要求,计算机体系结构对 *** 作系统有哪些支持,没有一门课把这些串起来。“智能计算系统”作为高年级本科生(或研究生)课程,有义务帮助学生把过去所有的人工智能软硬件知识都串起来,形成整体理解。

对于“智能计算系统”课程,驱动范例是一个抓手。在国科大上课时,我们选择了视频风格迁移作为驱动范例。简单来说,风格迁移可以保留一个视频中每帧的基本内容,但是把的绘画风格改掉(比如从普通照片迁移成毕加索风格或者中国水墨画风格等,见图3)。对于学生来说,这是很有意思又在能力范围之内的一个驱动范例。

图3 从普通照片到毕加索风格迁移的驱动范例

我们围绕如何实现视频实时风格迁移,一步步带着学生写出算法,移植到编程框架上,为编程框架编写算子,再为算子设计芯片,构建多芯片系统,并测评这个系统的速度、能效和精度上的优势和劣势,然后进行系统的闭环迭代优化。最后再给大家一个智能计算系统的实验环境,包括摄像头和智能芯片开发板,学生就可以实现一个对摄像头拍摄的视频进行画风实时转换的“半产品”应用了。

结语

我的母亲是一位中学教师。我自己成长过程中,对我帮助非常大的几位前辈恩师陈国良、胡伟武和徐志伟,也都是常年浸在教学第一线,有着极大教学热情的名师。从小到大,这些长辈的言传身教,让我深刻地感受到,教育是一项伟大的事业,能深刻地改变学生、改变行业、改变 社会 、改变国家、改变人类。今天我们教给学生的那些人工智能知识,可能会影响明天我国在智能时代的竞争力。因此,虽然手头有不少基础研究任务,但我还是情愿把培养人工智能的系统人才当成自己未来最重要的使命,把自己绝大部分时间精力花在“智能计算系统”这门课程在各个高校的讲授和推广上。

非常欣慰的是,“智能计算系统”这样新生的一门课程,虽然还有很多缺陷,但还是得到了很多师生的支持和鼓励。我们已在或将在中国科学院大学、北京大学、北京航空航天大学、天津大学、中国科学技术大学、南开大学、北京理工大学、华中 科技 大学等多个高校联合开设这门课程。今年我们还会开放这门课程的所有PPT、讲义、教材、录像、代码、云平台和开发板,供老师们批评指正。非常欢迎大家给我发邮件,提出宝贵意见。

未来,我们希望和更多培养人工智能专业学生的高校合作,广泛参与人工智能系统课程的交流研讨,共同提高人工智能系统课程的教学水平。相信通过大家的共同努力,一定能解决人工智能系统课程开设中的实际困难,使得我国未来培养出来的人工智能人才没有技术上的短板。

作为一名青年教师,我在教学能力和经验上与很多教育领域的前辈有着巨大的差距,还需要更多地学习。这门“智能计算系统”课程,对于我国的人工智能系统能力培养来说,也顶多是起到抛砖引玉的作用。正如鲁迅先生在《热风·随感录四十一》中写给青年的一段话所言:“有一分热,发一分光,就令萤火一般,也可以在黑暗里发一点光……倘若有了炬火,出了太阳,我们自然……随喜赞美这炬火或太阳;因为他照了人类,连我都在内。”

脚注:

1 此文发表在《中国计算机学会通讯》(CCCF) 2014年第5期,>在Google I/O 2016的主题演讲进入尾声时,Google提到了一项他们这段时间在AI和机器学习上取得的成果,一款叫做Tensor Processing Unit(张量处理单元)的处理器,简称TPU。
根据TPU团队主要负责人介绍,TPU专为Google机器学习应用TensorFlow打造,能够降低运算精度,在相同时间内处理更复杂、更强大的机器学习模型并将其更快地投入使用。Google数据中心早在一年前就开始使用TPU,其性能把摩尔定律往前推进到7年之后。之前打败李世乭的AlphaGo就是采用了TPU做了运算加速。
根据Google所言,TPU只在特定应用中作为辅助使用,公司将继续使用CPU和GPU。并且Google并没有对外销售TPU的打算。因此,TPU虽好,但仅限Google内部,而且即便使用TPU,也是用作辅助CPU和 GPU。
谷歌并没有公布TPU是怎么设计的,因此似乎很难对其一探究竟。不过,要知道谷歌的TPU并不是什么黑科技,只不过是正常的一款专用加速芯片。而且,这也不是世界上第一款用来做深度学习的专用芯片。IBM和我国中科院其实都有类似成果。
IBM 在2014年研发出脉冲神经网络芯片TrueNorth,走的是“类脑计算”路线。类脑计算的假设是,相似的结构可能会出现相似的功能,所以假如用神经电子元件制造与人脑神经网络相似的电子神经网络,是否可能实现人脑功能呢?这其实有点像人类研究飞行器的过程。我们都知道鸟会飞是因为有翅膀,人没有。所以假如给人也弄一对翅膀,人是不是也能飞?
早先人类其实有这么一个探索过程。如今人类要探索大脑,但是大脑何其复杂?IBM的这款芯片就是通过打造类脑的芯片架构,来期望得到大脑同样的功能,就算达不到,能模拟一下也很有意义。大意如此,当然实际上复杂多了。目前这款芯片理念很超前,还处于深入研究阶段,算得上是黑科技。
今天要重点讲的其实是中科院的这款“寒武纪”芯片。2016年3月,中国科学院计算技术研究所发布了全球首个能够“深度学习”的“神经网络”处理器芯片,名为“寒武纪”。该课题组负责人之一、中科院计算所陈天石博士透露,这项成果将于今年内正式投入产业化。在不久的未来,反欺诈的刷脸支付、搜索等都将更加可靠、易用。下图是“寒武纪”的芯片板卡。

之所以重点讲,是因为Google的TPU芯片并没有公开设计细节,连是谁代工的都没有公开。但是同样作为深度学习的芯片,有理由相信中科院的“寒武纪”与Google的TPU在设计理念上是相同的。在讲这个之前,先简单科普一下人工智能和深度学习。
1981年的诺贝尔医学奖,颁发给了David Hubel和Torsten Wiesel,以及Roger Sperry。前两位的主要贡献是,发现了人的视觉系统的信息处理是分级的。如下图所示:从原始信号摄入开始(瞳孔摄入像素),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定眼前物体的形状,比如是椭圆形的),然后进一步抽象(大脑进一步判定该物体是张人脸),最后识别眼前的这个人。
而深度学习(Deep Learning),恰恰就是模仿人脑的机制来解释数据。通过组合低层特征形成更加抽象的高层特征(或属性类别)。例如,在计算机视觉领域,深度学习算法从原始图像去学习得到一个低层次表达,例如边缘检测器、小波滤波器等,然后在这些低层次表达的基础上,通过线性或者非线性组合,来获得一个高层次的表达。此外,不仅图像存在这个规律,声音也是类似的。比如,研究人员从某个声音库中通过算法自动发现了20种基本的声音结构,其余的声音都可以由这20种基本结构来合成!
对于深度学习来说,其思想就是堆叠多个层,上一层的输出作为下一层的输入。深度神经网络由一个输入层,数个隐层,以及一个输出层构成。每层有若干个神经元,神经元之间有连接权重。每个神经元模拟人类的神经细胞,而结点之间的连接模拟神经细胞之间的连接。
当然了,以上这些原理都不是重点。我们只需要明白深度神经网络模拟了大脑的神经网络,上图的每个圈圈都类似大脑的一个神经元。通过采用专用芯片进行神经元的运算加速,相比于采用CPU这种通用运算器,可以大大提高神经网络的性能。根据“寒武纪”芯片的介绍,它可以一条指令完成多个神经元的并行处理。据此推断,Google的TPU很有可能也是这么设计的,也就是说,支持一条指令完成神经元的多次计算。
“寒武纪”专用处理器还有配套的指令集,叫Cambricon。我们知道,指令集乃是一个处理器架构的核心。知道了一款处理器实现了哪些指令,其实也就知道了这款处理器适合做什么,也大概知道了这款处理器的硬件设计。
Cambricon指令集的特点是单指令可以做完一次向量或矩阵运算,因此假如我们知道了深度学习的具体算法,那么其实也就知道了每个神经元可以规约为何种向量或矩阵运算,其实也就推断出了Cambricon的指令集。以此类推,如果我们知道了Google的深度学习算法,假设也是每条指令实现多个神经元相关的向量或矩阵运算,那么其实也能推断出TPU的指令集。这种假设应该是很有道理的,毕竟把一个神经元的计算打包成一条指令,是非常科学合理的专用加速设计方案。
可以看到,整个系统连接了两块图像传感器,传感器采集到的图像通过Camera Serial Interfaces(CSI)接口连接到Video pipeline处理单元,进行Bayer重建、白平衡、降噪、压缩等等图像处理。
而ShiDianNao则在该系统中进行深度学习的模式识别,它内部实现了一个深度神经网络,经训练之后具有类似人类大脑一样的识别能力,可以从图像中识别出有一只猫,然后将识别出“猫”的信息通过GPIO/I2C接口输出给主机。整个系统用一款微处理器做控制,协调各个部件的运行。整个系统的数据存储,使用了256KB的SRAM,为了节省功耗,并提高性能,并没有使用DRAM。
下图给出了ShiDianNao处理器的深度神经网络的架构。根据文献介绍,NBin是输入神经元的缓存,NBout是输出神经元的缓存,SB是突触的缓存。核心部件是NFU(neural functional unit)单元,它负责实现一个神经元的功能。ALU是数值运算单元,IB(decoder forinstructions)是指令译码器。
之前讲过,深度神经网络加速芯片的最大特点就是单指令可以完成多个神经元的计算。因此神经元计算单元的实现,就是这款加速芯片的核心。根据文献介绍,每个NFU又是一个阵列,包含一堆PE单元。每个NFU单元实现了16bit x 16bit的定点整数乘法,相比于浮点乘法,这会损失一部分运算精度,但是这种损失可以忽略不计。
由此,我们就自上而下的看完了整个ShiDianNao的架构设计。由于Google并没有公布TPU的设计,中科院和寒武纪公司亦没有公开商用的寒武纪芯片的具体架构,因此我们只能大概根据中科院前些年与法国和瑞士的合作者在学术界公开发表的ShiDianNao架构进行推断(我们假设寒武纪商用芯片和前些年的学术工作ShiDianNao在架构上有一脉相承之处,毕竟中科院计算所陈天石团队的成员都是主要架构师或论文的第一作者)。
根据ShiDianNao架构的论文描述,结合之前的论述,我们可以大致得出以下猜测:
(1)Google的TPU很有可能也是单指令完成多个神经元的计算。
(2)知道了Google的机器学习算法,就可以推断出TPU支持的指令集。
(3)根据Google对TPU的描述“能够降低运算精度”,猜测TPU内部可能也是采用更低位宽的定点或浮点乘法,虽然具体位宽未知。
(4)乘累加单元搭建的向量或矩阵指令仍然是基础运算的核心。
(5)Google强调TPU有领先7年的性能功耗比(十倍以上的提升),据此猜测,TPU可能也没有使用DRAM做存储,可能仍然使用SRAM来存储数据。但从性能功耗比提升量级上看,还远未达到专用处理器的提升上限,因此很可能本质上采用的是数据位宽更低的类GPU架构,可能还是具有较强的通用性。

GPU即图形处理器,Graphics Processing Unit的缩写。

CPU即中央处理器,Central Processing Unit的缩写。

TPU即谷歌的张量处理器,Tensor Processing Unit的缩写。

三者区别:

CPU虽然有多核,但一般也就几个,每个核都有足够大的缓存和足够多的数字和逻辑运算单元,需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理,并辅助有很多加速分支判断甚至更复杂的逻辑判断的硬件;

GPU的核数远超CPU,被称为众核(NVIDIA Fermi有512个核)。每个核拥有的缓存大小相对小,数字逻辑运算单元也少而简单(GPU初始时在浮点计算上一直弱于CPU),面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。

TPU是一款为机器学习而定制的芯片,经过了专门深度机器学习方面的训练,它有更高效能(每瓦计算能力)。大致上,相对于现在的处理器有7年的领先优势,宽容度更高,每秒在芯片中可以挤出更多的 *** 作时间,使用更复杂和强大的机器学习模型,将之更快的部署,用户也会更加迅速地获得更智能的结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13371565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存