Google专门用于机器学习的ASIC比GPU快十倍



四年前,Google意识到了在其应用程序中使用神经网络的真正潜力。 然后,她开始在各处进行介绍,包括文本翻译,带语音识别的语音搜索等。但是,很明显,神经网络的使用大大增加了Google服务器的负载。 粗略地说,如果每个人每天只在Android上执行一次语音搜索(或具有语音识别功能的口述文本),那么Google必须将数据中心的数量增加一倍(!),以便神经网络能够处理如此数量的语音流量。

必须要做的事情-Google找到了解决方案。 2015年,她开发了自己的机器学习硬件架构(张量处理单元,TPU),在性能上比传统GPU和CPU快70倍,在每瓦特计算量上快196倍。 传统的GPU / CPU指通用处理器Xeon E5 v3(Haswell)和Nvidia Tesla K80 GPU。

TPU架构本周首次在科学论文(pdf)中进行了描述,该论文将在2017年6月26日在多伦多举行的第44届国际计算机体系结构研讨会(ISCA)上发表。 70多位科学著作的主要作者,著名工程师Norman Jouppi(他是MIPS处理器的创建者之一)在接受 The Next Platform 采访时用自己的话解释了独特的TPU架构的功能,该架构实际上是一种专用ASIC,即专用集成电路。

与传统的FPGA或高度专业化的ASIC不同,TPU模块的编程方式与GPU或CPU相同;它不是用于单个神经网络的窄范围设备。 Norman Yuppy说TPU支持针对不同类型的神经网络的CISC指令:卷积神经网络,LSTM模型以及大型的完全连接模型。 因此,它仍然保持可编程状态,仅将矩阵用作基本体,而不使用矢量或标量基本体。

Google强调,尽管其他开发人员正在针对卷积神经网络优化其微芯片,但这种神经网络仅提供了Google数据中心5%的负载。 Google的大多数应用程序都使用多层Rumelhart感知器 ,因此创建一个更通用的体系结构而不是仅对卷积神经网络“锐化”非常重要。


该体系结构的元素之一是脉动数据流引擎,它是一个256×256的数组,它从左侧神经元接收激活(权重),然后一切都逐步移动,再乘以单元中的权重。 事实证明,脉动矩阵每个周期执行65 536次计算。 该体系结构是神经网络的理想选择。

根据Uppy的说法,TPU的体系结构与FPU协处理器相比,与常规的GPU更相似,尽管用于乘法的众多矩阵本身并不存储任何程序,它们只是执行从主机接收的指令。


所有TPU架构,DDR3内存除外。 指令从主机(左)发送到队列。 然后,根据指令,控制逻辑可以重复运行每个逻辑

尚不知道此体系结构的可伸缩性。 雅皮说,在具有这种主机的系统中,总会存在某种瓶颈。



与传统的CPU和GPU相比,Google的机器架构性能要好十倍。 例如,具有18个内核,时钟频率为2.3 GHz,64位浮点的Haswell Xeon E5-2699 v3处理器每秒执行1.3兆操作(TOPS),数据传输速率为51 GB / s。 在这种情况下,芯片本身消耗145瓦,其上的整个系统具有256 GB内存-455瓦。

为了进行比较,在具有256 GB外部存储器和32 GB内部存储器的8位操作上的TPU演示了以34 GB / s的内存进行交换的速度,但与此同时,该卡的执行速度为92 TOPS,即比Haswell处理器快约71倍。 TPU上的服务器功耗为384瓦。



下图比较了带GPU的服务器(蓝色列),TPU上的服务器(红色)相对于CPU上的服务器的每瓦相对性能。 它还比较了具有TPU的服务器相对于GPU上的服务器(橙色)的每瓦相对性能,以及相对于CPU上的服务器(绿色)和GPU上的服务器(紫色)的TPU改进版本。



应当指出的是,Google在TensorFlow上的应用测试中与相对较旧的Haswell Xeon进行了比较,而在较新版本的Broadwell Xeon E5 v4中,由于体系结构的改进,每个周期的指令数量增加了5%,而在Skylake Xeon E5 v5的版本中, ,预计在夏天,每个周期的指令数量可能会再增加9-10%。 随着Skylake中内核数量从18个增加到28个,英特尔处理器在Google测试中的整体性能可以提高80%。 但是,即便如此,TPU仍将存在巨大的性能差异。 在具有32位浮点的测试版本中,TPU和CPU之间的差异减少到大约3.5倍。 但是大多数模型可以完美量化到8位。

自2006年以来,谷歌就一直在考虑如何在其数据中心中使用GPU,FPGA和ASIC,但是直到上一次将机器学习引入许多实际任务时才找到它们,随着来自用户数十亿的请求,这些神经网络的负担开始增长。 现在,该公司别无选择,只能摆脱传统的CPU。

该公司不打算将其处理器出售给任何人,但希望与2015 ASIC的科学合作能够使其他人改进其架构并创建改进的ASIC版本,从而“进一步提高标准”。 Google本身可能已经在开发新版本的ASIC。

Source: https://habr.com/ru/post/zh-CN402955/


All Articles