随着AI对算力的需要一直增长,以TPU为代表的面向DNN的特定畛域架构为DNN计算提供了几十倍的性能晋升以及能效优化。本文基于谷歌实在业务场景数据,介绍了TPU绝对CPU/GPU的理论性能、能效指标。原文: A Domain-Specific Architecture for Deep Neural Networks
摩尔定律的终结使人们意识到特定畛域架构才是计算的将来。谷歌的张量处理单元(TPU)就是一个开创性的例子,自从2015年首次部署以来,曾经为超过10亿人提供了服务。TPU运行深度神经网络(DNN)的速度比同时代CPU和GPU要快15到30倍,能效比同类技术的CPU和GPU高30到80倍。
所有指数定律都有终结的时候[26]。
1965年,Gordon Moore预测芯片的晶体管数量将每一两年翻一番。只管Communications杂志2017年1月的封面报道认为:"对于摩尔定律死亡的报道被大大夸张了",但摩尔定律的确正在终结。2014年推出的DRAM芯片蕴含80亿个晶体管,而160亿个晶体管的DRAM芯片要到2019年才量产,但摩尔定律预测DRAM芯片的规模应该会扩充4倍。2010年的英特尔至强E5微处理器有23亿个晶体管,而2016年的至强E5有72亿个晶体管,与摩尔定律相差2.5倍。半导体技术依然在持续演进,但比过来慢很多。
另一个没那么闻名但同样重要的察看是Dennard Scaling。Robert Dennard在1974年发现,当晶体管变小时,功率密度是不变的。如果晶体管的线性尺寸放大2倍,那就能够提供4倍的晶体管数量。如果电流和电压也都放大2倍,那么功率就会降落4倍,从而在雷同频率下失去雷同的功率。Dennard Scaling在首次被察看到30年后就完结了,不是因为晶体管没有持续放大,而是因为电流和电压无奈在保障牢靠的状况下一直降落。
计算机架构师们利用摩尔定律和Dennard Scaling通过减少资源、采纳简单的处理器设计和内存层次结构,进步指令的并行性,从而在程序员不知情的状况下晋升了性能。可怜的是,架构师们最终耗尽了能够无效利用的指令级并行性。2004年,Dennard Scaling的完结和不足更多(无效的)指令级并行性,迫使业界从单核处理器芯片转向多核处理器。
重要见解
- 尽管TPU是特定利用集成电路,但通过反对基于TensorFlow框架编程的神经网络,用以驱动谷歌数据中心的许多重要利用,包含图像识别、语言翻译、搜寻和游戏。
- 通过利用专门用于神经网络的芯片资源,TPU在寰球超过10亿人日常应用的理论数据中心工作负载上比通用计算机进步了30-80倍的性能。
- 神经网络推理阶段通常须要遵从严格的响应工夫限度,这升高了通用计算机技术的有效性,这些计算机通常运行速度较快,但在某些状况下性能不佳。
Gene Amdahl在1967年提出的一个观点当初来看依然正确,这一观点阐明减少处理器数量带来的收益会逐步递加。Amdahl定律说,并行化的实践速度晋升受到工作程序局部的限度,如果工作的1/8是串行的,即便其余部分很容易并行,而且架构师减少可能减少100个处理器,其速度晋升最多是原来性能的8倍。
图1显示了过来40年里这三个定律对处理器性能的影响。依照目前的速度,规范处理器基准性能在2038年前不会翻倍。
![图1. 依照Hennessy和Patterson[17]的说法,咱们绘制了过来40年32位和64位处理器内核每年最高SPECCPUint性能;面向吞吐量的SPECCPUint_rate也反映了相似的状况,并在几年后逐步安稳。](https://files.mdnice.com/user/28815/748eabf2-3f66-40b9-80a4-5...)
因为晶体管技术没有多大提高(反映了摩尔定律的终结),每平方毫米芯片面积的峰值功率在减少(因为Dennard Scaling的终结),但每芯片功率估算没有减少(因为电迁徙和机械及热限度),而且芯片设计师曾经转向多核(受Amdahl定律的限度),架构师们普遍认为在性能-老本-能耗方面进行重大改良的惟一路径是特定畛域架构[17]。
云上大型数据集和为其提供能源的泛滥计算机之间的合作使机器学习获得了显著提高,特地是在DNN方面。与其余畛域不同,DNN具备宽泛的适用性。DNN的冲破包含将语音辨认的单词错误率绝对传统办法升高了30%,这是20年来最大的提高[11]; 将2011年以来进行的图像识别较量的错误率从26%升高到3.5%16[34]; 在围棋中击败人类冠军[32]; 进步搜寻排名; 等等。尽管DNN架构只能实用于某个较小的畛域,但依然有许多利用。
神经网络以相似大脑的性能为指标,基于简略的人工神经元: 基于非线性函数(例如$max(0, value)$)及其输出的加权和(weighted sum of the inputs)。这些人工神经元按层组织,一个层的输入成为下一层的输出,DNN的"深度"局部就来自于多层的解决。因为云上大型数据集容许通过应用额定的更大的层来捕获更高层次的模式或概念来建设更准确的模型,而GPU可能提供足够的算力来开发这些模型。
DNN的两个阶段被称为训练(或学习)和推理(或预测),相似于开发和生产。训练DNN个别须要几天工夫,但训练好的DNN能够在几毫秒内实现推理或预测。开发者抉择层数和DNN类型(见"深度神经网络的类型"),训练决定权重。简直所有训练都是以浮点形式进行的,这也是GPU在训练中如此受欢迎的起因之一。
深度神经网络的类型
目前有三种DNN在谷歌数据中心很受欢迎:
- 多层感知器(MLP, Multi-layer perceptron) 。对于多层感知器,每个新层都是一组由先前所有输入(齐全连贯)的加权和组成的非线性函数;
- 卷积神经网络(CNN, Convolutional neural network) 。在卷积神经网络中,前面的每个层是一组来自前一层输入的空间上邻近的子集的加权和的非线性函数,权重在空间上重复使用; 以及
- 循环神经网络(RNN), Recurrent neural network) 。对于RNN,每个后续层是前一层状态的加权和的非线性函数的汇合。最风行的RNN是长短期记忆(LSTM, long short-term memory),LSTM的艺术在于决定要遗记什么,以及把什么作为状态传递到下一层。权重在不同步骤中被重复使用。
一个被称为"量化(quantization)"的步骤将浮点数转化为足以用于推理的窄整数(通常只有8位)。与IEEE 754的16位浮点乘法相比,8位整数乘法所需能耗和芯片面积可缩小6倍,而整数加法的劣势是能耗缩小13倍,面积缩小38倍[10]。
表1针对三种类型的DNN别离例举了两个例子,代表了2016年谷歌数据中心95%的DNN推理工作量,咱们将其作为基准。这些DNN通常是用TensorFlow编写的[1],代码很短,只有100到1500行。这些例子代表了在主机服务器上运行的较大应用程序的小组件,这些应用程序可能是数千到数百万行的C++代码,通常是面向最终用户的,从而须要严格的响应工夫限度。
![表1. 截至2016年7月,6个DNN利用(每种DNN类型2个利用)代表了TPU 95%的工作量。列是DNN名称; 代码行数; DNN类型和层数; FC是全连贯; Conv是卷积; Vector是二进制运算; Pool是pooling,在TPU上做非线性裁剪; 非线性函数; 权重数; 运算强度; 批量大小; 以及截至2016年7月的TPU利用遍及度。多层感知器(MLP)是RankBrain[9]; 长短时记忆(LSTM)是GNM Translate的一个子集[37]; 卷积神经网络(CNN)是Inception和DeepMind AlphaGo19。ReLU代表Rectified Linear Unit,是函数$max(0, value)$。](https://files.mdnice.com/user/28815/a43b255e-97f9-4afc-b8b4-c...)
如表1所示,每个模型须要500万到1亿权重,须要耗费大量工夫和资源来拜访(参见"能耗比例")。为了摊派拜访老本,推理或训练期间,通过在独立示例之间重用雷同的权重从而进步性能。
能耗比例(Energy Proportionality)\
热设计功率(TDP, Thermal design power)影响到电源供给老本,数据中心必须在硬件满功率运行时能力提供足够的电力和制冷。然而因为一天中的工作负荷并不相同,电力老本是基于均匀耗费的。Barroso和Hölzle[4]发现服务器只有在不到10%的工夫里是100%忙碌的,因而提出了能耗比例,认为服务器耗电量应与工作量成正比。图4中对能耗的预计基于谷歌数据中心TDP的一部分。
因为工作负载利用率不同,咱们测量了运行生产程序CNN0的三台服务器的性能和功率,而后基于服务器芯片数量将其归一化。\
上图显示,TPU功率最低,每芯片40W,但能耗比例很差(谷歌TPU设计工夫较短,无奈纳入许多节能性能)。Haswell CPU在2016年有最好的能耗比例。在TPU-Haswell组合零碎中,CPU的工作量缩小了,因而CPU功率也缩小了。因而,Haswell服务器加上四个低功耗TPU应用不到20%的额定功率,但因为有四个TPU和两个CPU,运行CNN0比独自的Haswell服务器快80倍。
TPU的起源、架构和实现
早在2006年开始,谷歌就思考在其数据中心部署GPU、现场可编程门阵列(FPGA, , field programmable gate array)或特定利用集成电路(ASIC, application-specific integrated circuit)。论断是,多数能够在非凡硬件上运行的利用能够利用谷歌大型数据中心的过剩容量收费实现,而且很难在此基础上有所改进。这种状况在2013年产生了变动,过后有一个预测,即谷歌用户每天应用3分钟基于语音辨认DNN的语音搜寻,使谷歌数据中心的计算需要减少了一倍,因而应用传统CPU将会十分低廉。于是谷歌启动了一个高优先级我的项目,疾速生产用于推理的定制芯片,并购买现成的GPU用于训练,其指标是将性价比进步10倍。因为这一工作,只花了15个月的工夫就实现了TPU的设计、验证、制作和部署。
为了升高提早部署的危险,谷歌工程师将TPU设计成I/O总线上的协处理器,而没有与CPU严密集成,使其可能像GPU一样插入现有服务器中。此外,为了简化硬件设计和调试,主机服务器向TPU发送指令供其执行,而不是本人获取。因而,TPU在概念上更靠近浮点单元(FPU, floating-point unit)协处理器,而不是GPU。
谷歌工程师从零碎角度优化了设计。为了缩小与主机CPU的互动,TPU运行整个推理模型,但不止反对2013年的DNN,还提供了匹配2015年及当前的DNN的灵活性。
图2是TPU的框图。TPU指令通过PCIe Gen3 x16总线从主机发送至指令缓冲区,外部块通常由256字节宽的门路连贯在一起。从右上角开始,矩阵乘法单元是TPU的外围,有256×256个MAC,能够对有符号或无符号整数进行8位乘法和加法。16位的乘积被收集在矩阵单元上面的4M字节32位累加器中,4M代表4,096个256元素的32位累加器。矩阵单元每周期产生一个256元素的局部和。
矩阵单元权重通过片上"权重FIFO"分阶段进行,该FIFO从咱们称之为"权重存储器"的片外8GB字节DRAM读取。对于推理,权重是只读的,8GB字节反对许多同时沉闷的模型。权重FIFO的深度为4层,两头后果被保留在24M字节的片上"对立缓冲区"中,能够作为矩阵单元的输出。可编程DMA控制器将数据传入或传出CPU主机存储器和对立缓冲区。为了可能在大规模牢靠部署,内外部存储器内置了硬件谬误检测和纠正性能。
TPU微架构背地的理念是让矩阵单元放弃繁忙。为了达到这个目标,读取权重的指令遵循解耦拜访/执行的理念[33],因而能够在发送地址后以及从权重存储器获取权重前实现。如果没有沉闷输出或权重数据没有筹备好,矩阵单元将暂停执行。
因为读取大型动态随机存取存储器(SRAM, static random-access memory)比计算的能耗更大,矩阵单元通过"膨胀执行(systolic execution)",即通过缩小对立缓冲区的读写来节俭能耗[23],因而依赖不同起源的数据以固定工夫距离达到阵列单元,并将其合并。体现为给定65,536个元素的向量矩阵乘法操作以对角线波阵的模式在矩阵中挪动。权重被事后加载,并随着新区块的第一个数据的推动波失效。管制和数据是流水线式的,这给程序员一种错觉,即256个输出被一次性读取,并立刻更新256个累加器中的一个地位。从正确性的角度来看,软件不晓得矩阵单元的膨胀性,但为了性能,必须思考单元的提早。
TPU软件堆栈必须与那些为CPU和GPU开发的软件兼容,以便应用程序能够疾速移植到TPU上。在TPU上运行的那局部应用程序通常是用TensorFlow编写的,并被编译成能够在GPU或TPU上运行的API[24]。
CPU, GPU, TPU平台
大多数架构钻研论文都基于模仿运行小型、容易移植的基准测试,预测可能的性能。本文不是这样,而是对2015年以来在数据中心运行的实在大型生产工作负载的机器进行回顾性评估,其中一些机器由超过10亿人惯例应用。如表1所示,这6个利用代表了2016年TPU数据中心95%的使用量。
因为咱们要测量的是生产工作负载,所以比拟的基准平台也必须能够部署在谷歌数据中心,和生产工作负载运行环境统一。谷歌数据中心的大量服务器和大规模利用的可靠性要求意味着机器必须至多能对内存谬误做出查看。因为Nvidia Maxwell GPU和最近的Pascal P40 GPU不查看外部内存谬误,因而没法满足谷歌大规模部署的严格可靠性要求。
表2显示了部署在谷歌数据中心的服务器,用于与TPU进行比拟。传统CPU服务器的代表是英特尔的18核双插槽Haswell处理器,这个平台也是GPU或TPU的主机服务器,谷歌工程师在服务器中应用四个TPU芯片。
表3. 2015年至2017年,Nvidia GPU公布与云计算部署之间的差距[5。GPU的世代是Kepler、Maxwell、Pascal和Volta。](https://files.mdnice.com/user/28815/3c3cddb0-f94c-4cd8-bc62-2...)
一些计算机架构师对于从颁布产品直到芯片、板卡和软件都筹备好并能牢靠服务于数据中心客户所须要的工夫没有概念。表3指出,从2014年到2017年,商业云公司部署GPU的时间差是5到25个月。因而,与2015年的TPU相比,对应的GPU显然是Nvidia K80,它采纳雷同的半导体工艺,并在TPU部署前六个月公布。
每块K80卡蕴含两个芯片,并在外部存储器和DRAM上内置了谬误检测和纠正性能。每台服务器最多能够装置8个K80芯片,这就是咱们的基准配置。CPU和GPU都应用大型芯片封装,大概为600$mm^2$,是Core i7的三倍。
性能: Roofline模型, 响应工夫, 吞吐量
为了阐明上述6个利用在3类处理器上的性能,咱们采纳了高性能计算(HPC, high-performance computing)中的Roofline性能模型[36]。尽管不是完满的视觉模型,但能够洞察到性能瓶颈的起因。该模型背地的假如是,利用不适宜在片上缓存,所以要么计算受限,要么内存带宽受限。对于HPC来说,Y轴是每秒浮点运算的性能,因而峰值计算率形成了屋顶的平坦局部。X轴是计算强度(operational intensity),以每个浮点操作拜访的DRAM字节来掂量。因为(FLOPS/s)/(FLOPS/Byte)=Bytes/s,因而内存带宽的单位是字节/秒,从而形成屋顶的斜面局部。如果没有足够的计算强度,程序就会受到内存带宽的限度,停留在屋顶的斜面局部。
利用理论的每秒操作数与其下限之间的差距显示了在不涉及计算强度的状况下进一步调整性能的潜在益处,减少计算强度的优化(如缓存模块化)可能会实现更好的性能。
为了将Roofline模型利用于TPU,当DNN利用被量化时,首先用整数运算取代浮点运算。因为权重通常不适用于DNN利用的片上存储器,第二个变动是从新定义计算强度为每字节读取权重的整数乘积操作,如表1所示。
图3显示了TPU、CPU和GPU在对数尺度上的单芯片Roofline模型。TPU的屋顶有很长的歪斜局部,计算强度意味着性能受限于内存带宽,而不是峰值计算量。6个利用中有5个无奈涉及上线,MLP和LSTM受内存限度,而CNN受计算限度。
与图3的TPU相比,6个DNN利用广泛低于其在Haswell和K80的下限,起因是因为响应工夫。这些DNN利用中有许多是面向终端用户服务的,钻研人员曾经证实,即便是响应工夫的小幅减少也会导致客户缩小应用服务。尽管训练可能没有严格的响应工夫限度,但推理通常会有,或者说推理更偏向于提早而不是吞吐量[28]。
例如,依照利用开发者的要求,MLP0的P99响应工夫限度为7ms。(每秒的推理和7ms的提早蕴含服务器主机和加速器的执行工夫)。如果放宽响应工夫限度,Haswell和K80的运行速度别离只有MLP0可实现的最高吞吐量的42%和37%。这些限度也影响到了TPU,但在80%的状况下,其运行速度更靠近TPU的最大MLP0吞吐量。与CPU和GPU相比,单线程TPU没有任何简单的微架构个性,这些个性耗费晶体管和能量来改善均匀状况,但不是99%的状况。也就是说,没有缓存、分支预测、失序执行、多解决、投机预取、地址凝聚、多线程、上下文切换等等。极简主义是特定畛域处理器的一大美德。
表4显示了每个芯片的绝对推理性能的底线,包含两个加速器与CPU的主机服务器开销,显示了6个DNN利用的绝对性能加权平均值,表明K80芯片的速度是Haswell芯片的1.9倍,而TPU芯片的速度是其29.2倍,因而TPU芯片的速度是GPU芯片的15.3倍。
性能开销(Cost-Performance), TCO, 每瓦性能(Performance/Watt)
当购买大量计算机时,性能开销胜过性能。数据中心的最佳老本指标是总领有老本(TCO, total cost of ownership)。如谷歌这样的组织为成千上万的芯片领取的理论价格取决于相干公司之间的会谈,因为商业秘密的起因,咱们无奈颁布这类价格信息或可能用于推导这类信息的数据。然而,功率与总领有老本相干,而且咱们能够颁布每台服务器的功率,所以咱们在这里应用每瓦性能(performance/Watt)作为性能/TCO的代表。咱们在本节中比拟了整个服务器,而不是单个芯片。
图4显示了K80 GPU和TPU绝对于Haswell CPU的均匀每瓦性能。咱们提出了两种不同的每瓦性能计算方法。第一种"总量",在计算GPU和TPU的每瓦性能时蕴含主机CPU服务器耗费的功率。第二种"增量",从GPU和TPU中减去主机CPU服务器的功率。
就每瓦总性能而言,K80服务器是Haswell的2.1倍。就每瓦增量性能而言,如果疏忽Haswell服务器的功率,K80服务器是Haswell的2.9倍。TPU服务器的每瓦总性能比Haswell高34倍,使得TPU服务器的每瓦性能是K80服务器的16倍。TPU的绝对每瓦增量性能(谷歌定制ASIC的理由)是83倍,从而使TPU的每瓦性能达到GPU的29倍。
另一种TPU代替计划的评估
与FPU一样,TPU协处理器也比拟容易评估,所以咱们为6个利用建设了性能模型,模型后果与硬件性能计数器之间的差别均匀不到10%。
如果咱们有超过15个月的工夫,就能够用同样的工艺技术来设计一款新芯片TPU',咱们用性能模型来评估这款实践上的芯片。更踊跃的逻辑合成和模块设计依然能够将时钟频率进步50%。就像K80那样为GDDR5内存设计一个接口电路,能够将加权内存带宽进步5倍以上,将其roofline最高点从1350降到250。
将时钟速度进步到1050MHz,但不改善内存,这样影响不会太大。而如果咱们将时钟速度放弃在700MHz,但应用GDDR5(双数据率5型同步图形随机存取存储器)作为加权存储器,加权平均值就会跳到3.9。做到这两点并不扭转平均值,所以实践上的TPU'只是领有更快的内存。
仅仅用K80一样的GDDR5内存替换DDR3加权内存,须要将内存通道的数量增加一倍,达到四个,这一改良将使芯片尺寸扩充约10%。因为每台服务器有四个TPU,GDDR5还将使TPU零碎的功率估算从861W减少到大概900W。
图4报告了TPU的每芯片的每瓦绝对总性能,比Haswell跃升86倍,比K80跃升41倍。增量指标绝对Haswell达到惊人的196倍,绝对K80高达68倍。
探讨
本节遵循Hennessy和Patterson的舛误-易犯谬误-反驳(fallacy-and-pitfall-with-rebuttal)模式[17]:
舛误(Fallacy)。数据中心的DNN推理利用器重吞吐量和响应工夫。 咱们感到诧异的是,因为有人在2014年提出,批量大小足以使得TPU达到峰值性能(或者对提早要求不那么严格),因而谷歌TPU开发人员对响应工夫有着强烈的要求。其中一个驱动利用是离线图像处理,谷歌开发人员的直觉是,如果交互业务也想要TPU,大多数人只会积攒更大的批处理。即便到2014年某个关怀响应工夫的利用(LSTM1)的谷歌开发人员也说,限度是10ms,但在理论移植到TPU时缩减到了7ms。许多这样的服务对TPU的意外需要,加上对疾速响应工夫的影响和偏好,扭转了均衡,利用开发者往往抉择缩小提早,而不是期待积攒更大的批次。侥幸的是,TPU有一个简略、可反复的执行模型,以帮忙满足交互业务的响应工夫指标,以及顶峰值吞吐量,即便是绝对较小的批次规模,也能带来比当代CPU和GPU更高的性能。
舛误(Fallacy)。K80 GPU架构非常适合DNN推理。 咱们看到5个具体起因,即TPU在性能、能耗和老本方面都比K80 GPU更有劣势。首先,TPU只有一个处理器,而K80有13个,用单线程更容易达到严格的提早指标。其次,TPU有十分大的二维乘法单元,而GPU有13个较小的一维乘法单元。DNN的矩阵乘法强度适宜排列在二维阵列中的算术逻辑单元。第三,二维数组还能实现系统化,通过防止寄存器拜访来进步能源效率。第四,TPU的量化利用应用K80上不反对的8位整数,而不是GPU的32位浮点数。较小的数据不仅进步了计算的能源效率,而且使加权FIFO的无效容量和加权存储器的无效带宽翻了两番。(这些利用经过训练,只管只应用8位,却能提供与浮点数雷同的精度)。第五,TPU省略了GPU须要但DNN不应用的性能,因而放大了芯片面积,节俭了能源,并为其余降级留出了空间。TPU芯片的尺寸简直是K80的一半,通常以三分之一的功率运行,但蕴含3.5倍内存。这五个因素解释了TPU在能源和性能方面30倍的劣势。
易犯谬误(Pitfall)。在设计特定畛域架构时,漠视架构历史。 那些在通用计算中没有胜利的想法可能是特定畛域架构的现实抉择。对于TPU来说,有三个重要的架构特色能够追溯到20世纪80年代初: 膨胀阵列(systolic arrays)[23]、解耦拜访/执行[33]和简单指令集[29]。第一个特色缩小了大型矩阵乘法单元的面积和功率; 第二个特色在矩阵乘法单元的操作中同时获取权重; 第三个特色更好利用了PCIe总线的无限带宽来传递指令。因而,具备历史意识、特定畛域的架构师能够领有竞争劣势。
舛误(Fallacy)。如果谷歌更无效的应用CPU,那么CPU的后果将与TPU相当。 咱们最后在CPU上只有一个DNN的8位后果,这是因为须要做大量工作来无效应用高级向量扩大(AVX2)的整数反对,这样做大概能取得3.5倍益处。以浮点形式出现所有的CPU后果,而不是让一个例外情况有本人的顶线,这样比拟不容易混同(而且须要更少的空间)。如果所有DNN都有相似的减速,每瓦性能将从41-83倍降落到12-24倍。
舛误(Fallacy)。如果谷歌能应用适当的较新版本,GPU的后果将与TPU相匹配。 表3显示了GPU的公布和能够在云端被客户应用之间的工夫差别。较新的TPU能够与较新GPU偏心比拟,而且,只有减少10W,咱们就能够通过应用K80的GDDR5内存将28纳米、0.7GHz、40W的TPU的性能进步两倍。将TPU转移到16纳米工艺将进一步提高其每瓦性能。16纳米的Nvidia Pascal P40 GPU的峰值性能是原来TPU的一半,但250W的功率却比原来多出许多倍[15]。如前所述,不足谬误查看意味着谷歌无奈在其数据中心部署P40,因而无奈在其上运行生产工作负载以确定其理论绝对性能。
相干工作
两篇考察文章证实定制DNN ASIC至多能够追溯到20世纪90年代初3。正如2016年Communications杂志所介绍的,反对四种DNN体系架构的DianNao家族通过对DNN利用中的内存拜访模式提供高效的体系架构反对,最大限度的缩小了片上和内部DRAM的内存拜访7。原生DianNao应用64个16位整数乘法累加单元。
DNN的特定畛域架构依然是计算机架构师的热门话题,其中一个次要焦点在于稠密矩阵架构,呈现于2015年首次部署TPU之后。高效推理引擎基于第一道程序,通过独立步骤过滤掉十分小的值,将权重数量缩小大概10[13]倍,而后应用Huffman编码进一步放大数据,以进步推理性能[14]。Cnvlutin[1]通过防止激活输出为零时的乘法(大略有44%的乘法是这种类型,其起因可能局部因为调整线性单元、ReLU、非线性函数,将负值转化为零),均匀进步1.4倍性能。Eyeriss是新型低功耗数据流架构,通过运行长度编码数据利用零值,以缩小内存占用,并通过防止输出为零时的计算来节省能源[8]。Minerva是一个逾越算法、架构和电路学科的代码设计零碎,通过局部修剪具备小值的激活数据和局部量化数据实现8倍功率的升高。2017提出的SCNN[27]是一个用于稠密和压缩卷积神经网络(CNN)的加速器。权重和激活函数都被压缩在DRAM和外部缓冲区中,从而缩小数据传输所需的工夫和能耗,并容许芯片存储更大的模型。
2016年以来的另一个趋势是用于训练的特定畛域架构。例如,ScaleDeep[35]是针对DNN训练和推理而设计的高性能服务器,蕴含成千上万的处理器。每个芯片蕴含重度计算模块和重度存储模块,比例为3:1,性能比GPU高出6倍到28倍,以16位或32位浮点运算进行计算。芯片通过高性能互连拓扑构造连贯,与DNN的通信模式相似。像SCNN一样,这种拓扑构造齐全是在CNN上评估的。2016年,CNN在谷歌数据中心的TPU工作负荷中仅占5%。计算机架构师们期待着在其余类型的DNN上评估ScaleDeep,并期待呈现硬件实现。
DNN仿佛是FPGA作为数据中心计算平台的一个很好的用例,一个理论倍部署的例子是Catapult[30]。尽管Catapult在2014年公开公布,但它和最新的TPU产品是同一代的,2015年微软在数据中心部署了28nm Stratix V FPGA。Catapult运行CNN的速度比服务器快2.3倍。兴许Catapult和TPU之间最重要的区别是,为了达到最佳性能,用户必须用低级硬设计语言Verilog编写长程序,而不是用高级的TensorFlow框架编写短程序。也就是说,TPU软件绝对FPGA固件提供了更好的"可编程性"。
论断
只管I/O总线和绝对无限的内存带宽限度了TPU的利用率(6个DNN利用中有4个是内存受限的),但正如Roofline性能模型所证实的那样,某些计算的能力晋升绝对还是比拟大的,比方每周期能够实现65,536次乘法。这一结果表明Amdahl定律的一个推论: 大量便宜资源的低利用率依然能够提供高性价比的性能。
咱们晓得推理利用往往是面向终端用户的利用的一部分,因而对响应工夫有很高的要求,所以DNN架构须要在99%的状况下体现出良好的提早个性。
TPU芯片利用其在MAC和片上存储器方面的劣势,运行面向特定畛域的TensorFlow框架编写的短程序的速度比K80 GPU芯片快15倍,从而使每瓦性能劣势晋升29倍,从而优化了性能/总领有老本。与Haswell CPU芯片相比,相应晋升了29和83倍。
五个架构因素能够解释这种能效差距:
繁多处理器。 TPU只有一个处理器,而K80有13个,CPU有18个。单线程使零碎更容易保障固定的提早限度。
大型二维乘法单元。 TPU有一个十分大的二维乘法单元,而CPU和GPU别离有18和13个较小的一维乘法单元,二维乘法硬件单元更适宜于计算矩阵乘法。
压缩数组。 对二维组织进行阵列膨胀,以缩小寄存器拜访和能量消耗。
8位整数。 TPU利用应用8位整数运算而不是32位浮点运算,以进步计算和内存的效率。
放弃额定性能。 TPU放弃了CPU和GPU须要而DNN不须要的性能,使TPU老本更低,同时节省能源,并容许晶体管被从新用于特定畛域的片上存储器。
尽管CPU和GPU在将来必定会以更快的速度运行推理,但从新设计的TPU通过应用2015年左右的GPU内存将性能晋升了三倍,并将每瓦性能劣势晋升到K80的70倍以及Haswell的200倍。
至多在过来十年里,计算机架构钻研人员始终在发表基于模仿的翻新成绩,应用无限基准,并宣称基于通用处理器的改良幅度不超过10%,而咱们当初能够说,部署在实在硬件中的特定畛域架构的改良幅度超过了10倍[17]。
商业产品之间的数量级差别在计算机架构中比拟常见,甚至可能导致TPU成为该畛域将来工作的原型。咱们预计,今后很多人都会构建相似的架构,并将规范提得更高。
致谢
感激TPU团队所有成员在我的项目中的奉献[20]。设计、验证和实现相似TPU这样的零碎硬件和软件,并制作、部署和大规模利用,须要很多人共同努力,正如咱们在谷歌看到的那样。
参考文献
- Abadi, M. et al. Tensorflow: Large-scale machine learning on heterogeneous distributed systems. arXiv preprint, 2016; https://arxiv.org/abs/1603.04467
- Albericio, J., Judd, P., Hetherington, T., Aamodt, T., Jerger, N.E., and Moshovos, A. 2016 Cnvlutin: Ineffectual-neuron-free deep neural network computing. In Proceedings of the 43rd ACM/IEEE International Symposium on Computer Architecture (Seoul, Korea), IEEE Press, 2016.
- Asanovic´, K. Programmable neurocomputing. In The Handbook of Brain Theory and Neural Networks, Second Edition, M.A. Arbib, Ed. MIT Press, Cambridge, MA, Nov. 2002; https://people.eecs.berkeley.edu/~krste/papers/neurocomputing...
- Barroso, L.A. and Hölzle, U. The case for energyproportional computing. IEEE Computer 40, 12 (Dec. 2007), 33–37.
- Barr, J. New G2 Instance Type for Amazon EC2: Up to 16 GPUs. Amazon blog, Sept. 29, 2016; https://aws.amazon.com/about-aws/whats-new/2015/04/introducin...
- Barr, J. New Next-Generation GPU-Powered EC2 Instances (G3). Amazon blog, July 13, 2017; https://aws.amazon.com/blogs/aws/new-next-generationgpu-power...
- Chen, Y., Chen, T., Xu, Z., Sun, N., and Teman, O. DianNao Family: Energy-efficient hardware accelerators for machine learning. Commun. ACM 59, 11 (Nov. 2016), 105–112.
- Chen, Y.H., Emer, J., and Sze, V. Eyeriss: A spatial architecture for energy-efficient dataflow for convolutional neural networks. In Proceedings of the 43rd ACM/IEEE International Symposium on Computer Architecture (Seoul, Korea), IEEE Press, 2016.
- Clark, J. Google turning its lucrative Web search over to AI machines. Bloomberg Technology (Oct. 26, 2015).
- Dally, W. High-performance hardware for machine learning. Invited talk at Cadence ENN Summit (Santa Clara, CA, Feb. 9, 2016); https://ip.cadence.com/uploads/presentations/1000AM_Dally_Cad...
- Dean, J. Large-Scale Deep Learning with TensorFlow for Building Intelligent Systems. ACM webinar, July 7, 2016; https://www.youtube.com/watch?v=vzoe2G5g-w4
- Hammerstrom, D. A VLSI architecture for high-performance, low-cost, on-chip learning. In Proceedings of the International Joint Conference on Neural Networks (San Diego, CA, June 17–21). IEEE Press, 1990.
- Han, S., Pool, J., Tran, J., and Dally, W. Learning both weights and connections for efficient neural networks. In Proceedings of Advances in Neural Information Processing Systems (Montreal Canada, Dec.) MIT Press, Cambridge, MA, 2015.
- Han, S., Liu, X., Mao, H., Pu, J., Pedram, A., Horowitz, M.A., and Dally, W.J. EIE: Efficient Inference Engine on compressed deep neural network. In Proceedings of the 43rd ACM/IEEE International Symposium on Computer Architecture (Seoul, Korea). IEEE Press, 2016.
- Huang, J. AI Drives the Rise of Accelerated Computing in Data Centers. Nvidia blog, Apr. 2017; https://blogs.nvidia.com/blog/2017/04/10/ai-drives-riseaccele...
- He, K., Zhang, X., Ren, S., and Sun, J. Identity mappings in deep residual networks. arXiv preprint, Mar. 16, 2016; https://arxiv.org/abs/1603.05027
- Hennessy, J.L. and Patterson, D.A. Computer Architecture: A Quantitative Approach, Sixth Edition. Elsevier, New York, 2018.
- Ienne, P., Cornu, T., and Kuhn, G. Special-purpose digital hardware for neural networks: An architectural survey. Journal of VLSI Signal Processing Systems for Signal, Image and Video Technology 13, 1 (1996), 5–25.
- Jouppi, N. Google Supercharges Machine Learning Tasks with TPU Custom Chip. Google platform blog, May 18, 2016; https://cloudplatform.googleblog.com/2016/05/Google-superchar...
- Jouppi, N. et al, In-datacenter performance of a tensor processing unit. In Proceedings of the 44th International Symposium on Computer Architecture (Toronto, Canada, June 24–28). ACM Press, New York, 2017, 1–12.
- Keutzer, K. If I could only design one circuit ... Commun. ACM 59, 11 (Nov. 2016), 104.
- Krizhevsky, A., Sutskever, I., and Hinton, G. Imagenet classification with deep convolutional neural networks. In Proceedings of Advances in Neural Information Processing Systems (Lake Tahoe, NV). MIT Press, Cambridge, MA, 2012.
- Kung, H.T. and Leiserson, C.E. Algorithms for VLSI processor arrays. Chapter in Introduction to VLSI systems by C. Mead and L. Conway. Addison-Wesley, Reading, MA, 1980, 271–292.
- Lange, K.D. Identifying shades of green: The SPECpower benchmarks. IEEE Computer 42, 3 (Mar. 2009), 95–97.
- Larabel, M. Google Looks to Open Up StreamExecutor to Make GPGPU Programming Easier. Phoronix, Mar. 10, 2016; https://www.phoronix.com/scan.php?page=news_item&px=Google-St...
- Metz, C. Microsoft bets its future on a reprogrammable computer chip. Wired (Sept. 25, 2016); https://www.wired.com/2016/09/microsoftbets-future-chip-repro...
- Moore, G.E. No exponential is forever: But ‘forever’ can be delayed! In Proceedings of the International SolidState Circuits Conference (San Francisco, CA, Feb. 13). IEEE Press, 2003.
- Parashar, A., Rhu, M., Mukkara, A., Puglielli, A., Venkatesan, R., Khailany, B., Emer, J., Keckler, S.W., and Dally, W.J. SCNN: An accelerator for compressedsparse convolutional neural networks. In Proceedings of the 44th Annual International Symposium on Computer Architecture (Toronto, ON, Canada, June 24–28). IEEE Press, 2017, 27–40.
- Patterson, D.A. Latency lags bandwidth. Commun. ACM 47, 10 (Oct. 2004), 71–75.
- Patterson, D.A. and Ditzel, D.R. The case for the reduced instruction set computer. SIGARCH Computer Architecture News 8, 6 (Sept. 1980), 25–33.
- Putnam, A. et al. A reconfigurable fabric for accelerating large-scale datacenter services. Commun. ACM 59, 11 (Nov. 2016), 114–122.
- Reagen, B., Whatmough, P., Adolf, R., Rama, S., Lee, H., Lee, S.K., Hernández-Lobato, J.M., Wei, G.Y., and Brooks, D. Minerva: Enabling low-power, highly accurate deep neural network accelerators. In Proceedings of the 43rd ACM/IEEE International Symposium on Computer Architecture (Seoul, Korea), IEEE Press 2016.
- Silver, D. et al. Mastering the game of Go with deep neural networks and tree search. Nature 529, 7587 (Sept. 20, 2016).
- Smith, J.E. Decoupled access/execute computer architectures. In Proceedings of the 11th Annual International Symposium on Computer Architecture (Austin, TX, Apr. 26–29). IEEE Computer Society Press, 1982.
- Szegedy, C. et al. Going deeper with convolutions. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (Boston, MA, June 7–12). IEEE Computer Society Press, 2015.
- Venkataramani, S. et al. ScaleDeep: A scalable compute architecture for learning and evaluating deep networks. In Proceedings of the 44th Annual International Symposium on Computer Architecture (Toronto, ON, Canada, June 24–28). ACM Press, New York, 2017, 13–26.
- Williams, S., Waterman, A., and Patterson, D. Roofline: An insightful visual performance model for multi-core architectures. Commun. ACM 52, 4 (Apr. 2009), 65–76.
- Wu, Y. et al. Google’s neural machine translation system: Bridging the gap between human and machine translation. arXiv preprint, Sept. 26, 2016; arXiv:1609.08144
作者
Norman P. Jouppi (jouppi@google.com) 谷歌卓越硬件工程师\
Cliff Young (cliffy@google.com) 谷歌大脑团队成员\
Nishant Patil (nishantpatil@google.com) 谷歌技术主管\
David Patterson (pattrsn@cs.berkeley.edu) 加州大学伯克利分校电子工程与计算机科学学院Pardee荣誉传授,谷歌卓越工程师
*你好,我是俞凡,在Motorola做过研发,当初在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓重的趣味,平时喜爱浏览、思考,置信继续学习、一生成长,欢送一起交流学习。 \
微信公众号:DeepNoMind*
本文由mdnice多平台公布