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

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

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

达GPU浮点运算性能对比图 via:blog.sina.com.cn)

  虽然GPU是为了图像处理而生的,但是我们通过前面的介绍可以发现,它在结构上并没有专门为图像服务的部件,只是对CPU的结构进行了优化与调整,所以现在GPU不仅可以在图像处理领域大显身手,它还被用来科学计算、密码破解、数值分析,海量数据处理(排序,Map-Reduce等),金融分析等需要大规模并行计算的领域。所以GPU也可以认为是一种较通用的芯片。

  | FPGA应运而生

  随着人们的计算需求越来越专业化,人们希望有芯片可以更加符合我们的专业需求,但是考虑到硬件产品一旦成型便不可再更改这个特点,人们便开始想,我们可不可以生产一种芯片,让它硬件可编程。也就是说——

  这一刻我们需要一个比较适合对图像进行处理的硬件系统,下一刻我们需要一个对科学计算比较适合的硬件系统,但是我们又不希望焊两块板子,这个时候FPGA便应运而生。

  FPGA是Field Programmable Gate Array的简称,中文全称为场效可编程逻辑闸阵列,它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点。

  FPGA运用硬件描述语言(Verilog或VHDL)描述逻辑电路,可以利用逻辑综合和布局、布线工具软件,快速地烧录至FPGA上进行测试。人们可以根据需要,通过可编辑的连接,把FPGA内部的逻辑块连接起来。这就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者的需要而改变,所以FPGA可以完成所需要的逻辑功能。

  

  (FPGA结构简图 via:dps-az.cz/vyvoj)

  FPGA这种硬件可编程的特点使得其一经推出就受到了很大的欢迎,许多ASIC(专用集成电路)就被FPGA所取代。这里需要说明一下ASIC是什么。ASIC是指依产品需求不同而定制化的特殊规格集成电路,由特定使用者要求和特定电子系统的需要而设计、制造。这里之所以特殊说明是因为我们下面介绍的TPU也算是一种ASIC。

  FPGA与ASIC芯片各有缺点,FPGA一般来说比ASIC的速度要慢,而且无法完成更复杂的设计,并且会消耗更多的电能;而ASIC的生产成本很高,如果出货量较小,则采用ASIC在经济上不太实惠。但是如果某一种需求开始增大之后, ASIC的出货量开始增加,那么某一种专用集成电路的诞生也就是一种历史趋势了,我认为这也是Google生产Tensor processing unit的一个重要出发点。至此,TPU便登上历史舞台。

  随着机器学习算法越来越多的应用在各个领域并表现出优越的性能,例如街景、邮件智能回复、声音搜索等,对于机器学习算法硬件上的支持也越来越成为一种需要。目前很多的机器学习以及图像处理算法大部分都跑在GPU与FPGA上面,但是通过上面的讲述我们可以知道,这两种芯片都还是一种通用性芯片,所以在效能与功耗上还是不能更紧密的适配机器学习算法,而且Google一直坚信伟大的软件将在伟大的硬件的帮助下更加大放异彩,所以Google便在想,我们可不可以做出一款专用机机器学习算法的专用芯片,TPU便诞生了。

  

  (TPU板卡图 via:cloudplatform.googleblog.com)

  | Google想做一款专用机机器学习算法的专用芯片——TPU

  从名字上我们可以看出,TPU的灵感来源于Google开源深度学习框架TensorFlow,所以目前TPU还是只在Google内部使用的一种芯片。

  Google其实已经在它内部的数据中心跑TPU跑了一年多了,性能指标杠杠的,大概将硬件性能提升了7年的发展时间,约为摩尔定律的3代。对于性能来说,限制处理器速度的最大两个因素是发热与逻辑门的延迟,其中发热是限制速度最主要的因素。现在的处理器大部分使用的是CMOS技术,每一个时钟周期都会产生能量耗散,所以速度越快,热量就越大。下面是一张CPU时钟频率与能量消耗的关系,我们可以看到,增长是指数性的。

  

  (CPU时钟频率与功耗关系图 via:electronics.stackexchange.com)

  从TPU的外观图我们可以看出,其中间突出一块很大的金属片,这便是为了可以很好地对TPU高速运算是产生大量的热进行耗散。

TPU的高性能还来源于对于低运算精度的容忍,也就是说每一步操作TPU将会需要更少的晶体管。在晶体管总容量不变的情况下,我们就可以单位时间在这些晶体管上运行更多的操作,这样我们就可以以更快的速度通过使用更加复杂与强大的机器学习算法得到更加智能的结果。我们在TPU的板子上看到了插条,所以目前Google使用TPU的方式是将载有TPU的板子插在数据中心机柜的硬盘驱动器插槽里

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

网站地图

Top