微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 谷歌的TPU芯片是如何演进而来的?

谷歌的TPU芯片是如何演进而来的?

时间:04-30 来源:雷锋网 点击:

  Google I/O是由Google举行的网络开发者年会,讨论的焦点是用Google和开放网络技术开发网络应用。这个年会自2008年开始举办,到今年已经是举办的第9届了。

  在今年的年会上,Google主要发布了以下8种产品:智能助手Google Assistant,与Amazon Echo竞争的无线扬声器和语音命令设备Google Home,消息应用Allo,视频呼叫应用Duo,VR平台Daydream,独立应用程序的支持Android Wear 2.0,允许不安装而使用应用的Android Instant Apps,以及允许在Chromebook上使用Android应用Google Play on Chrome OS。

  而这8中产品主要都集中在了软件领域。

  

  (Google I/O 2016现场图via:webpronews.com)

  在Google I/O 2016的主题演讲进入尾声时,Google的CEO皮采提到了一项他们这段时间在AI和机器学习上取得的成果,一款叫做Tensor Processing Unit(张量处理单元)的处理器,简称TPU。在大会上皮采只是介绍了这款TPU的一些性能指标,并在随后的博客中公布了一些使用场景,并没有对这款处理器的架构以及内部的运作机制进行详细阐述,所以我们也许需要从一些常见的处理器的结构出发,试图猜测与探究下这款用于机器学习的专属芯片到底有着怎样的一个面孔。

  

  (Tensor processing unit实物图 via:cio-today.com)

  首先我们先来看看我们最熟悉的中央处理器(Central Processing Unit),简称CPU。它是一种超大规模的集成芯片,而且是一种通用芯片,也就是说,它可以用它来做很多种类的事情。我们日常使用的电脑使用的处理器基本上都是CPU,看个电影、听个音乐、跑个代码,都没啥问题。

  | 我们来看看CPU的结构

  CPU主要包括运算器(ALU,Arithmetic and Logic Unit)和控制器(CU,Control Unit)两大部件。此外,还包括若干个寄存器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。从上面的叙述我们可以看出,CPU主要包含运算逻辑器件、寄存器部件以及控制部件等。

  

  (CPU结构简化图 via:blog.csdn.net)

  从字面上我们也很好理解,运算逻辑器件主要执行算术运算、移位等操作,以及地址运算和转换;寄存器件主要用于保存运算中产生的数据以及指令等;控制器件则是负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。

  我们可以运用下面这张图来说明一条指令在CPU中执行的大致过程:

  

  (CPU执行指令图 via:blog.csdn.net)

  CPU从程序计数器取到指令,通过指令总线将指令送至译码器,将转译后的指令交给时序发生器与操作控制器,然后运算器对数据进行计算,通过数据总线将数据存至数据缓存寄存器。

  我们从CPU的结构以及执行过程可以看出,CPU遵循的是冯诺依曼架构,冯诺依曼的核心就是:存储程序,顺序执行。

  从上面的描述我们可以看出,CPU就像一个有条不紊的管家,我们吩咐的事情总是一步一步来做。但是随着摩尔定律的推进以及人们对更大规模与更快处理速度的需求的增加,CPU好像执行起任务来就不那么令人满意了。于是人们就想,我们可不可以把好多个处理器放在同一块芯片上,让他们一起来做事,这样效率是不是就会高很多,这是GPU就诞生了。

  | GPU诞生了

  GPU全称为Graphics Processing Unit,中文为图形处理器,就如它的名字一样,GPU最初是用在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。因为对于处理图像数据来说,图像上的每一个像素点都有被处理的需要,这是一个相当大的数据,所以对于运算加速的需求图像处理领域最为强烈,GPU也就应运而生。

  

  (CPU与GPU结构对比示意图 via:baike.baidu.com)

  通过CPU与GPU结构上的对比我们可以看出,CPU功能模块很多,能适应复杂运算环境;GPU构成则相对简单,大部分晶体管主要用于构建控制电路(比如分支预测等)和Cache,只有少部分的晶体管来完成实际的运算工作。而GPU的控制相对简单,且对Cache的需求小,所以大部分晶体管可以组成各类专用电路、多条流水线,使得GPU的计算速度有了突破性的飞跃,拥有了更强大的处理浮点运算的能力。当前最顶级的CPU只有4核或者6核,模拟出8个或者12个处理线程来进行运算,但是普通级别的GPU就包含了成百上千个处理单元,高端的甚至更多,这对于多媒体计算中大量的重复处理过程有着天生的优势。

  这就好比在画一幅画的时候CPU是用一支笔一笔一笔的来画,而GPU则是多支笔对不同的位置同时进行描绘,那自然效率就是突飞猛进的。

  

(英特尔CPU与英伟

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top