本篇文章4529字,读完约11分钟
本文作者李相彬是中国科学院自动化研究所复杂系统国家重点实验室的研究生,研究方向为机器人学和人工智能。
谷歌i/o是由谷歌举办的网络开发者年会。讨论的焦点是用谷歌和开放网络技术开发网络应用。这次年会从2008年开始举行,今年已经是第九次了。
在今年的年会上,谷歌主要发布了以下八款产品:智能助手谷歌助手、与亚马逊echo竞争的无线扬声器和语音命令设备google home、消息应用allo、视频通话应用duo、vr平台Dreamweaver、支持android wear 2.0的独立应用、允许应用无需安装即可使用的android即时应用,以及允许Android应用在chromebook上使用的google play on chrome os。
这8个产品主要集中在软件领域。
(Google I/o 2016 live map via:webpronews)
在谷歌i/o 2016的主题演讲结束时,谷歌首席执行官皮蔡提到了他们在此期间在人工智能和机器学习方面取得的成就,这种处理器被称为张量处理单元,简称。在会议上,我们只介绍了这款tpu的一些性能指标,并在后续的博客中发布了一些使用场景,但没有详细说明这款处理器的架构和内部运行机制。因此,我们可能需要从一些常见的处理器结构中猜测和探索这种机器学习专用芯片有什么样的面貌。
(张量处理单元物理绘图通过:CIO-today)
首先,让我们来看看我们最熟悉的中央处理器。它是一个非常大规模的集成芯片和通用芯片,也就是说,它可以用来做很多事情。我们日常电脑中使用的处理器基本上都是cpu,所以看电影、听音乐和运行代码都没问题。
|让我们看看cpu的结构。cpu主要包括两个部分:算术单元(alu)和控制单元(cu)。此外,它还包括几个寄存器和高速缓冲存储器,以及一条总线来实现它们之间的数据、控制和状态相关。从以上描述中,我们可以看出cpu主要包括算术逻辑器件、寄存器组件和控制组件。
(cpu结构简图,通过:blog.csdn)
实际上,我们也很好地理解算术逻辑器件主要执行算术运算、移位运算、地址运算和转换;寄存器设备主要用于存储操作中产生的数据和指令;控制设备负责对指令进行解码,并发出要对每个指令执行的各种操作的控制信号。
我们可以用下图来说明在cpu中执行指令的一般过程:
(cpu执行指令图通过:blog.csdn)
中央处理器从程序计数器获取指令,通过指令总线将指令发送到解码器,并将翻译后的指令提供给定时发生器和操作控制器。然后算术单元计算数据,并通过数据总线将数据存储在数据高速缓存寄存器中。
从cpu的结构和执行过程可以看出,cpu遵循冯·诺依曼体系结构,而冯·诺依曼体系结构的核心是存储程序并按顺序执行。
从上面的描述,我们可以看出,中央处理器就像一个有序的管家,我们总是一步一步地做事情。然而,随着摩尔定律的发展和对更大规模和更快处理速度的需求的增加,cpu似乎不能令人满意地执行任务。所以人们想知道我们是否可以在同一个芯片上放置多个处理器,让它们一起工作,这样效率会更高,这就是gpu的诞生。
| gpu诞生了。gpu在中文中被称为图形处理单元。就像它的名字一样,gpu最初被用作微处理器,在个人电脑、工作站、游戏机和一些移动设备(如平板电脑和智能手机等)上运行绘图操作。)。由于在处理图像数据时,图像上的每一个像素都需要被处理,这是一个相当大的数据量,所以图像处理领域对计算加速有着最强烈的需求,gpu应运而生。
(cpu和gpu结构比较示意图,通过:baike.baidu)
通过比较中央处理器和图形处理器的结构,可以看出中央处理器有很多功能模块,能够适应复杂的计算环境;Gpu的组成相对简单,大多数晶体管主要用于构建控制电路(如分支预测等)。)和高速缓存,并且仅使用几个晶体管来完成实际操作。但是,gpu的控制相对简单,对缓存的需求也很小,所以大多数晶体管可以形成各种特殊的电路和多条流水线,这使得gpu的计算速度有了一个突破性的飞跃,具有更强的处理浮点运算的能力。目前,顶级cpu只有4核或6核,它模拟8或12个处理线程来执行操作,但普通级gpu包含数百个处理单元,甚至更多的高端处理单元,这对于多媒体计算中的大量重复处理过程具有内在优势。
就像在画图时,中央处理器用一支笔一个接一个地画,而图形处理器用多支笔同时画不同的位置,所以自然效率突飞猛进。
(英特尔中央处理器和NVIDIA图形处理器的性能对比图
虽然gpu是为图像处理而诞生的,但是通过前面的介绍,我们可以发现它在结构上没有专门用于图像服务的组件,而只是对cpu的结构进行了优化和调整,所以现在gpu不仅可以在图像处理领域展示其才能,还可以用于科学计算、密码破解、数值分析、海量数据处理(排序、地图还原等)。),金融分析和其他需要大规模并行计算的领域。因此,gpu也可以被视为一个更通用的芯片。
| fpga应运而生。随着人们的计算需求变得越来越专业化,人们希望拥有能够更好地满足我们专业需求的芯片。然而,考虑到硬件产品一旦形成就不能改变的特点,人们开始怀疑我们是否能生产一种芯片使其硬件可编程。也就是说——
此时此刻,我们需要一个适合图像处理的硬件系统,而在下一个时刻,我们需要一个适合科学计算的硬件系统,但我们不想焊接两块板,所以fpga应运而生。
Fpga是现场可编程门阵列的缩写,在中文中称为场效应可编程逻辑门阵列。它作为半定制电路出现在专用集成电路领域,不仅解决了完全定制电路的缺点,而且克服了原有可编程逻辑器件门数有限的缺点。
Fpga使用硬件描述语言(verilog或vhdl)来描述逻辑电路,通过使用逻辑综合和布局布线工具,可以将逻辑电路快速烧录到fpga上进行测试。人们可以根据需要通过可编辑的连接来连接fpga内部的逻辑块。这就像一个电路测试板被放在一个芯片上。成品fpga的逻辑块和连接可以根据设计者的需要而改变,因此fpga可以完成所需的逻辑功能。
(fpga结构图过孔:dps-az.cz/vyvoj)
Fpga作为一种硬件可编程特性,一经推出就广受欢迎,许多asic已经被fpga所取代。这里我们需要解释什么是asic。Asic是指根据不同产品要求定制的特殊规格集成电路,它是根据特定用户要求和特定电子系统的需要而设计和制造的。这里的特殊解释是因为我们下面介绍的tpu也可以看作是一个asic。
Fpga和asic芯片各有缺点。fpga通常比asic慢,不能完成更复杂的设计,并且会消耗更多的功率;然而,专用集成电路的生产成本非常高。如果装运量很小,使用asic在经济上是负担不起的。然而,如果在某个需求开始增加之后,asic的出货量开始增加,那么ASIC的诞生就是一个历史趋势,我认为这也是谷歌生产张量处理单元的一个重要起点。此时,tpu正站在历史舞台上。
随着越来越多的机器学习算法应用于各个领域并显示出优越的性能,如街景、智能邮件回复、语音搜索等。越来越需要支持机器学习算法的硬件。目前,大部分机器学习和图像处理算法运行在gpu和fpga上,但是从上面的描述中我们可以知道这两个芯片仍然是通用芯片,所以它们在效率和功耗方面不能更接近于机器学习算法。此外,谷歌一直认为,伟大的软件在伟大的硬件的帮助下会更加光彩照人,所以谷歌想知道我们是否能为机器学习算法制造一种特殊的芯片,于是tpu诞生了。
(tpu板图通过:cloudplatform.googleblog)
|谷歌想成为机器学习算法的特殊芯片——TPU。从名字上,我们可以看出tpu受到了谷歌开源深度学习框架tensorflow的启发,所以TPU目前仍然是谷歌唯一使用的芯片。
谷歌实际上已经在其内部数据中心运行tpu一年多了,其性能指数已经改善了硬件性能约七年,这大约是第三代摩尔定律。就性能而言,限制处理器速度的两个最大因素是发热和逻辑门延迟,其中发热是限制处理器速度的最重要因素。大多数处理器现在使用cmos技术,每个时钟周期都会产生能量耗散,因此速度越快,热量越大。以下是cpu时钟频率和能耗之间的关系。我们可以看到增长是指数级的。
(cpu时钟频率和功耗图通过:via:electronics.stackexchange)
从tpu的外观图中,我们可以看到一个巨大的金属片从中间突出,这是为了驱散tpu高速运行时产生的大量热量。
tpu的高性能也源于对低工作精度的容忍,这意味着tpu操作的每一步都需要更少的晶体管。在晶体管总容量不变的情况下,我们可以在单位时间内对这些晶体管进行更多的运算,这样我们就可以通过使用更复杂、更强大的机器学习算法,以更快的速度获得更智能的结果。我们在tpu的主板上看到了一张纸条,所以谷歌目前使用tpu的方式是将装有tpu的主板插入数据中心机柜的硬盘驱动器插槽。
我认为tpu的高性能也来自其数据的本地化。对于gpu来说,从内存中获取指令和数据需要花费大量的时间,但是机器学习大部分时间不需要从全局缓存中获取数据,所以结构设计的本地化也加快了tpu的运行速度。
(阿尔法戈对李师义的比赛中使用了tpu的发球台,我不知道为什么贴在旁边的围棋图片有一种可爱的感觉。via:googleblog)
在谷歌数据中心的过去一年里,tpu实际上做了很多事情,比如rankbrain,一个机器学习人工智能系统,用来帮助谷歌处理搜索结果,为用户提供更相关的搜索结果;还有街景,用来提高地图和导航的准确性;当然,还有阿尔法戈,一个玩围棋的电脑程序。事实上,还有一点非常有趣。我们在描述alphago的自然文章中看到,alphago只在CPU+GPU上运行。文章说,完整版的alphago使用40个搜索线程,运行在48个CPU和8个GPU上,而分布式版本的alphago使用更多的机器,40个搜索线程运行在1202个CPU和176个GPU上。这种配置是在与范辉比赛时使用的,所以李师义在看过阿尔法戈和范辉之间的比赛后,对人机战争充满信心。然而,在短短几个月内,谷歌将运行alphago的硬件平台改成了tpu,随后战斗形势变得艰难。
那么,除了能更好更快运行机器学习算法的tpu之外,谷歌发布它还有什么其他目的?我认为它更神秘。谷歌可能正在玩一个大游戏。
谷歌表示,他们的目标是在行业机器学习领域处于领先地位,让这种创新力量惠及每一个用户,让用户更好地利用张量积和云机器学习。事实上,就像微软为其全息透镜增强现实头部显示器配备全息处理单元(hpu)一样,像tpu这样的专业硬件只是其漫长旅程中的一小步,它不仅仅是为了超越公共云领域的市场领导者亚马逊网络服务(aws)。随着时间的推移,谷歌将发布更多的机器学习API。现在谷歌已经推出了云机器学习平台服务和可视化应用编程接口。我们可以相信,成为机器学习技术和市场的领导者是谷歌更大的目标。
雷锋网注:标题图片和第一张图片来自wingatewire。这篇文章是雷锋的初稿。搜索“雷锋”。com "公共号码)。请联系授权并保留完整信息。文章不得删除或修改。
标题:从CPU、GPU再到TPU Google的AI芯片是如何一步步进化过来的?
地址:http://www.j4f2.com/ydbxw/12957.html