许多读者或许分不清楚 CPU、GPU 和 TPU 之间的差异,因而 Google Cloud 将在这篇博客中扼要介绍它们之间的差异,并评论为什么 TPU 能加快深度学习。
张量处理单元(TPU)是一种定制化的 ASIC 芯片,它由谷歌从头规划,并专门用于机器学习作业负载。TPU 为谷歌的主要产品供给了核算支撑,包括翻译、相片、查找助理和 Gmail 等。Cloud TPU 将 TPU 作为可扩展的云核算资源,并为一切在 Google Cloud 上运转顶级 ML 模型的开发者与数据科学家供给核算资源。在 Google Next’18 中,咱们宣告 TPU v2 现在现已得到用户的广泛运用,包括那些免费试用用户,而 TPU v3 现在现已发布了内部测试版。
第三代 Cloud TPU
如上为 tpudemo.com 截图,该网站 PPT 解说了 TPU 的特性与界说。在本文中,咱们将重视 TPU 某些特定的特点。
神经网络怎么运算
在咱们比照 CPU、GPU 和 TPU 之前,咱们能够先了解究竟机器学习或神经网络需求什么样的核算。如下所示,假定咱们运用单层神经网络辨认手写数字。
假如图画为 28×28 像素的灰度图,那么它能够转化为包括 784 个元素的向量。神经元会接纳一切 784 个值,并将它们与参数值(上图红线)相乘,因而才干辨认为「8」。其间参数值的效果类似于用「滤波器」从数据中抽取特征,因而能核算输入图画与「8」之间的相似性:
这是对神经网络做数据分类最根底的解说,行将数据与对应的参数相乘(上图两种色彩的点),并将它们加在一起(上图右侧搜集核算成果)。假如咱们能得到最高的猜测值,那么咱们会发现输入数据与对应参数十分匹配,这也就最或许是正确的答案。
简略而言,神经网络在数据和参数之间需求履行很多的乘法和加法。咱们一般会将这些乘法与加法组合为矩阵运算,这在咱们大学的线性代数中会说到。所以要害点是咱们该怎么快速履行大型矩阵运算,一起还需求更小的能耗。
CPU 怎么运转
因而 CPU 怎么来履行这样的大型矩阵运算使命呢?一般 CPU 是根据冯诺依曼架构的通用处理器,这意味着 CPU 与软件和内存的运转方法如下:
CPU 怎么运转:该动图仅展现了概念性原理,并不反映 CPU 的实践运算行为。
CPU 最大的优势是灵敏性。经过冯诺依曼架构,咱们能够为数百万的不同运用加载任何软件。咱们能够运用 CPU 处理文字、操控火箭引擎、履行银行买卖或许运用神经网络分类图画。
可是,由于 CPU 十分灵敏,硬件无法一向了解下一个核算是什么,直到它读取了软件的下一个指令。CPU 有必要在内部将每次核算的成果保存到内存中(也被称为寄存器或 L1 缓存)。内存拜访成为 CPU 架构的缺乏,被称为冯诺依曼瓶颈。尽管神经网络的大规模运算中的每一步都是彻底可猜测的,每一个 CPU 的算术逻辑单元(ALU,操控乘法器和加法器的组件)都只能一个接一个地履行它们,每一次都需求拜访内存,约束了整体吞吐量,并需求很多的能耗。
GPU 怎么作业
为了取得比 CPU 更高的吞吐量,GPU 运用一种简略的战略:在单个处理器中运用不计其数个 ALU。现代 GPU 一般在单个处理器中具有 2500-5000 个 ALU,意味着你能够一起履行数千次乘法和加法运算。
GPU 怎么作业:这个动画仅用于概念展现。并不反映实在处理器的实践作业方法。
这种 GPU 架构在有很多并行化的运用中作业得很好,例如在神经网络中的矩阵乘法。实践上,比较 CPU,GPU 在深度学习的典型练习作业负载中能完结高几个数量级的吞吐量。这正是为什么 GPU 是深度学习中最受欢迎的处理器架构。
可是,GPU 仍然是一种通用的处理器,有必要支撑几百万种不同的运用和软件。这又把咱们带回到了根底的问题,冯诺依曼瓶颈。在每次几千个 ALU 的核算中,GPU 都需求拜访寄存器或同享内存来读取和保存中心核算成果。由于 GPU 在其 ALU 上履行更多的并行核算,它也会成份额地消耗更多的能量来拜访内存,一起也由于杂乱的线路而添加 GPU 的物理空间占用。
TPU 怎么作业
当谷歌规划 TPU 的时分,咱们构建了一种范畴特定的架构。这意味着,咱们没有规划一种通用的处理器,而是专用于神经网络作业负载的矩阵处理器。TPU 不能运转文本处理软件、操控火箭引擎或履行银行业务,但它们能够为神经网络处理很多的乘法和加法运算,一起 TPU 的速度十分快、能耗十分小且物理空间占用也更小。
其主要助因是对冯诺依曼瓶颈的大幅度简化。由于该处理器的主要使命是矩阵处理,TPU 的硬件规划者知道该运算进程的每个过程。因而他们放置了不计其数的乘法器和加法器并将它们直接连接起来,以构建那些运算符的物理矩阵。这被称作脉动阵列(Systolic Array)架构。在 Cloud TPU v2 的比如中,有两个 128X128 的脉动阵列,在单个处理器中集成了 32768 个 ALU 的 16 位浮点值。
咱们来看看一个脉动阵列怎么履行神经网络核算。首要,TPU 从内存加载参数到乘法器和加法器的矩阵中。
然后,TPU 从内存加载数据。当每个乘法被履行后,其成果将被传递到下一个乘法器,一起履行加法。因而成果将是一切数据和参数乘积的和。在很多核算和数据传递的整个进程中,不需求履行任何的内存拜访。
这便是为什么 TPU 能够在神经网络运算上到达高核算吞吐量,一起能耗和物理空间都很小。
优点:本钱下降至 1/5
因而运用 TPU 架构的优点便是:下降本钱。以下是到 2018 年 8 月(写这篇文章的时分)Cloud TPU v2 的运用价格。
Cloud TPU v2 的价格,到 2018 年 8 月。
斯坦福大学发布了深度学习和推理的基准套装 DAWNBench。你能够在上面找到不同的使命、模型、核算渠道以及各自的基准成果的组合。
在 DAWNBench 竞赛于 2018 年 4 月完毕的时分,非 TPU 处理器的最低练习本钱是 72.40 美元(运用现场实例练习 ResNet-50 到达 93% 准确率)。而运用 Cloud TPU v2 抢占式计价,你能够在 12.87 美元的价格完结相同的练习成果。这仅相当于非 TPU 的不到 1/5 的本钱。这正是神经网络范畴特定架构的威力之地点。