深度学习的异构硬件加速:TPU 特性与数据中心的 ASIC 应用(概述篇)

一、背景

2017年4月,Google在arxiv上传了一篇文章“In Datacenter Performance Analysis of a Tensor Processing Unit1”,公布了部署两年的张量处理器——TPU的构架,以及在深度学习中的应用。5月的Google IO大会上,公布的第二代TPU(简称TPU2)。深度学习的降临伴同样伴随着以TPU为代表的计算平台的进步:

  • 16年3月,AlphaGo战胜李世石,使用了1202个CPU和176个GPU;
  • 其后,Google将AlphaGo部署于TPU;
  • 17年5月,AlphaGo战胜柯洁,其算法运行在云端单卡4片的TPU2上。

TPU的发力及其在深度学习领域的算力提升使寂寂的计算机体系结构学科焕发了生机,在业界引发了对非冯诺依曼计算体系的热议。

处理器的通用性越强,计算效率越低。尤其近年来,CPU与存储器发展的不平衡,高达64核的CPU依然采用传统的存储构架,带宽问题严重,使数据中心对高性能计算的缺口增加,以GPU为代表的非冯构架的异构处理器被广泛应用。

目前的异构处理器大致可分为三类,即量子计算,类脑计算,和领域计算。量子计算是一种利用量子力学规律调控量子信息的新型计算模式,尚未登场即展现了无限潜力,从学术界到工业界无不对其青眼有加,如Google、IBM、NASA等;类脑计算将神经突触及其脉冲传导机制引入ASIC,主要针对低功耗领域,以期实现人脑860亿神经元,功耗仅有20W的超高能效,如IBM的TrueNorth2。领域计算是指这样一类处理器,他们并不像传统ASIC那样处理特定问题,而是具备了一定的通用性,来处理一类问题。例如最常见的GPU,可以覆盖大部分的图像处理问题。相比于CPU,GPU在通用性上有所牺牲,却对以图像为代表的可并行的计算模式做了针对性优化,从而提升了性能和处理效率。TPU也是这样一类领域处理器。

二、TPU vs GPU:GPU在什么时候不达标

TPU(即Tensor Processing Unit,张量处理器),是Google针对深度学习相关应用而设计定制的ASIC。其设计不是针对某一种深度学习算法,而囊括了CNN、LSTM和MLP(即全连接层),在深度学习领域具备了一定的通用性,因此可称为领域处理器。Google早在2013年即意识到深度学习的价值,并有可能使数据中心的计算量翻倍,于是开始TPU的研发,以期实现10倍以上于GPU的处理能力。2013年,TPU立项,并于2015年完成部署,同时,TPU2也同步研发,于2017年5月前完成部署,并应用于搜索、地图、语音识别,以及无人驾驶等研究项目,如图1所示。

图1 TPU和TPU2的板卡

目前,GPU的生态已经非常完善了,从芯片、板卡、Cuda环境到社区,开发群体已经形成。那么,TPU存在的意义到底何在呢?GPU到底有什么问题?

首先,从计算能力上看,无论是CPU还是GPU,从内核数量上远没有达到极限,达到极限的是IO能力,也就是带宽。以腾讯云使用的GPU M40为例,峰值性能为2.2 TFLOPS,其中包含3072个Core。若这么多Core同时读写数据,对显存带宽的占用是相当恐怖的。因此,一方面GPU采用类似CPU片内多级缓存的方案,并通过几个Core之间的共享局部复用数据,减少对DDR显存的压力。

另一方面,采用最先进的存储器,增大带宽,从而在计算时可以跑满更多的Core。因此我们看到,显卡上的存储技术始终代表了存储器的最新成果。当还在使用DDR3内存时,显存已经上了DDR5和HBM(一种片内堆叠存储)。尤其是HBM的应用,首次采用低廉的方案使GB级别的存储可以在片内实现,其带宽不再受制于外部引脚数量,从而一举使GPU的峰值处理能力从10TFlops左右提升到120TFlops(Tesla V100,Tensor深度学习性能)。带宽瓶颈带来的另一个缺点,就是延迟。当众多Core同时访问显存时,队列机制导致对每个Core的请求无法第一时间响应,从而增大了任务处理的延迟。TPU的设计瓶颈也是带宽。其论文中曾酸酸的提到,如果能将DDR3的外存提升到对标的GPU K80的DDR5,性能会提升3倍。

其次,从定制性和计算粒度上看,处理器的性能有两个指标,即峰值计算能力,和计算效率。当处理能力≤最大带宽时,才能接近峰值算力,否则就存在资源跑不满的情况。然而对于GPU,其应用对象为通用并行计算,为了兼容更多的应用,在构架设计上存在一定的平衡和冗余,导致性能功耗比上相比于TPU并不占优势。TPU是根据深度学习的应用场景的定制处理器,相比于GPU具有更窄的通用性,更容易处理性能和带宽的平衡,定制更恰当的计算规模,实现更高的计算效率和性能功耗比。

最后,从交互方式和部署模式上,GPU采用PCIE接口并具备NVLink板间总线,支持8卡互联;TPU采用PCIE接口,TPU2采用专用网络互联接口,可以实现更多的芯片级互联,如图2-3所示。把任务完全部署到芯片上,从而取代了运算过程中因互联规模受限而导致的CPU交互,并将CPU的功耗进一步分摊。

图2 TPU2的板级部署,包括:单板4芯片(图中A),2组25GB/s专用网络(图中B),2个OPA(Omni-Path Architecture)接口(图中C),电源接口(图中D)。

图3 TPU2的整体部署,其中A、D为CPU机架,B、C为TPU2机架;其中蓝线为UPS,红色虚线为供电电源,绿色虚线为机架的网络切换配置。

三、TPU的成因:为何Google选择设计自己的领域处理器

设计并部署一款领域处理器芯片,制定各种指标,其核心是平衡,而不是将每个指标做到极致。常见的芯片指标如下:

功耗:芯片本身功耗,以及部署中的额外功耗,如GPU部署中应包含折算的服务器功耗;

峰值性能和吞吐量:峰值性能是指芯片结构中每秒计算操作数的总和,吞吐量为在实际运行中每秒完成任务的数量或输出的数据量。当完成处理单一任务的设计后,可通过复制该结构并行增加同时处理的任务路数,直至达到芯片的输入输出带宽。当然,处理规模的增加也会降低芯片的良品率;

面积:受到服务器板卡尺寸的限制,影响单卡上放置芯片的数量。芯片的面积不仅取决于内部处理构架的规模,还受限于芯片加工工艺,如20nm,16nm等。工艺越精密,芯片尺寸越小,功耗越低,发热量越小,成本越高。

灵活性和可编程能力:可编程能力以适用于更多的应用,是领域处理器不可或缺的能力。增加了可编程能力和兼容性,在单一任务中的性能会有所下降,但适用更多的应用场景。

成本:芯片制造的成本分为一次性投入的设计费用,和取决于数量的加工费用。其中前者比重较大。如Google在TPU的流片中,由于采用当时难度较高的28nm,设计费近千万刀。如果能保证更大的通用性,兼容更多的应用场景,就可提升TPU的部署数量。业界有句名言,当数量提升到足够量,芯片的成本接近沙子(硅,Si)。若TPU的部署数量增加到1万片,芯片成本限制到1K刀以内,成为取代GPU的关键论据。

综上所述,Google使用TPU的关键在于两个平衡:定制性和通用性的平衡,以及性能和带宽的平衡,其中前者对立项来说更为重要。对于TPU,为了提升部署数量,Google开辟了对内和对外两条应用路线。对内,即公司内部的深度学习应用场景,如搜索、地图、语音等;对外,推行自家的TensorFlow,并打通TensorFlow——编译——TPU片上算法部署的通路,如图4所示,实现明面推行TensorFlow,暗地打包推行TPU的模型,并向研究机构开放,营造深度学习端到端的生态链。TPU的部署数量上去了,低廉的成本加上生态和影响力的收益,Google自然盆满钵满。

图4 TensorFlow到TPU,软件到硬件资源的无缝连接

本文从应用背景的角度论述了Google研制TPU 并将其应用于数据中心的原因。在后续的技术篇中,会从技术架构的角度,并结合其论文加以讨论。

参考文献

1 Norman P. Jouppi etc. In-Datacenter Performance Analysis of a Tensor Processing Unit. ISCA 2017 .

2 Caulfield A M, Chung E S, Putnam A, et al. A cloud-scale acceleration architectureC. Microarchitecture (MICRO), 2016 49th Annual IEEE/ACM International Symposium on. IEEE, 2016: 1-13.

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯开源的专栏

道器相融,由 Angel 谈一个优秀机器学习平台的自我修养

随着人工智能时代来临,大数据平台发生了新的变化,企业该如何更好地利用机器学习、深度学习等人工智能技术从实时数据中高效挖掘有价值的信息?

4691
来自专栏企鹅号快讯

TESLA V100如何让质疑GPU的流言“失声”

【IT168 评论】GPU在人工智能来临的前夜火了,很多人的眼光也聚焦到了英伟达身上,随之而来的,流言也就多了起来。有人认为,GPU在人工智能的应用存在一定的局...

2019
来自专栏新智元

超越传统CPU?英特尔新一代AI芯片明年面世

1112
来自专栏ATYUN订阅号

MIT设计高机动性的自动驾驶船,旨在减轻水路众多的城市交通负担

阿姆斯特丹,曼谷和威尼斯等富含水路的城市,交通运输未来可能会是自动驾驶船,用它来运送货物和人员,帮助清理道路拥堵。

1244
来自专栏机器之心

业界 | 剖析用于深度学习的硬件:GPU、FPGA、ASIC和DSP

选自Medium 作者:Eugenio Culurciello 机器之心编译 参与:Rick R、吴攀 在这篇文章中,作者Eugenio Culurciel...

29810
来自专栏云计算D1net

云计算的小兄弟:雾计算和霾计算

云计算成名较早,现在是大名鼎鼎,经过这几年的努力,俨然成为了科学技术界的一名当红巨星。正所谓人红是非多,不少人也是盯着云计算,眼睛里揉沙子,找云计算身上的弱点。...

3504
来自专栏新智元

IBM 取得内存计算新突破,AI 训练能耗降低 80 倍

1693
来自专栏人工智能头条

探索物流预测珠峰:苏宁智能运输路线技术设计

953
来自专栏数据科学与人工智能

【数据科学】数据科学,你不可不读的十三本书!

大数据已经成为这个时代的标志,如何理解和运用大数据,也是我们这个时代的重中之重。今天,小编从“实战”和“拓展”两个方向,为各位推荐几本书,希望能够有助于你在大数...

2238
来自专栏企鹅号快讯

你了解你的数据吗

0x00 前言 你了解你的数据吗? 前几天突然来了点灵感,想梳理一下自己对数据的理解,因此便有了这篇博客或者说这系列博客来聊聊数据。 数据从业者有很多,比如说数...

20910

扫码关注云+社区