共计 18667 个字符,预计需要花费 47 分钟才能阅读完成。
随着 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 多平台公布