当前位置: 首页 > 科技观察

CPU、GPU和TPU是如何工作的?有什么不同?TPU为什么能碾压GPU?

时间:2023-03-12 17:37:08 科技观察

很多读者可能分不清CPU、GPU和TPU的区别,所以谷歌云将在这篇博客中简单介绍一下它们之间的区别,并讨论一下为什么TPU可以加速深度学习。张量处理单元(TPU)是一种定制ASIC芯片,由Google专门为机器学习工作负载重新设计。TPU为谷歌的主要产品提供计算支持,包括翻译、照片、搜索助手和Gmail等。CloudTPU使用TPU作为可扩展的云计算资源,为所有在GoogleCloud上运行高级ML模型的开发人员和数据科学家提供计算资源。在GoogleNext’18上,我们宣布TPUv2现已广泛提供给用户,包括免费试用的用户,而TPUv3目前处于内部测试阶段。第三代CloudTPU是上面tpudemo.com的截图,网站PPT解释了TPU的特性和定义。在本文中,我们将重点介绍TPU的一些特定属性。神经网络如何工作在比较CPU、GPU和TPU之前,我们可以先了解机器学习或神经网络需要什么样的计算。如下图,假设我们使用单层神经网络来识别手写数字。如果图片是28×28像素的灰度图,可以转化为784个元素的向量。神经元取所有784个值并将它们与参数值(上图红线)相乘,因此它可以识别“8”。参数值的作用类似于使用“过滤器”从数据中提取特征,因此可以计算输入图像与“8”的相似度:这是神经网络对数据进行分类的最基本解释,即数据和对应的参数(上图中两种颜色的点)相乘并相加(计算结果收集在上图右侧)。如果我们能得到最好的预测值,那么我们就会发现输入数据与对应的参数匹配得很好,这就是最有可能的正确答案。简单来说,神经网络在数据和参数之间执行大量乘法和加法。我们通常将这些乘法和加法组合成矩阵运算,这是我们大学线性代数中涵盖的。所以关键是我们如何快速执行大型矩阵运算,同时仍然需要更少的能量消耗。CPU是如何工作的那么CPU是如何执行这么大的矩阵运算任务的呢?通用CPU是基于冯·诺依曼架构的通用处理器,即CPU与软件和内存的运行方式如下:中央处理器。CPU最大的优点就是灵活性。借助冯诺依曼架构,我们可以为数百万种不同的应用程序加载任何软件。我们可以使用CPU来处理文字、控制火箭发动机、执行银行交易或使用神经网络对图像进行分类。然而,由于CPU非常灵活,硬件在读取软件的下一条指令之前无法始终知道下一次计算是什么。CPU必须在内部将每次计算的结果存储在内存(也称为寄存器或L1缓存)中。内存访问成为CPU架构中的缺陷,称为冯诺依曼瓶颈。虽然神经网络的大量操作中的每一步都是完全可以预测的,但CPU的每个算术逻辑单元(ALU,控制乘法器和加法器的组件)只能一个接一个地执行它们,一次一个。需要访问内存,限制整体吞吐量,并且需要大量功耗。GPU的工作原理为了实现比CPU更高的吞吐量,GPU使用了一个简单的策略:在单个处理器中使用数千个ALU。现代GPU通常在单个处理器中有2500-5000个ALU,这意味着您可以同时执行数千次乘法和加法。GPU的工作原理:此动画仅用于概念目的。不反映真实处理器的实际工作方式。这种GPU架构在具有大量并行化的应用程序中运行良好,例如神经网络中的矩阵乘法。事实上,在深度学习的典型训练工作负载中,GPU可以实现比CPU高几个数量级的吞吐量。这正是GPU成为深度学习首选处理器架构的原因。然而,GPU仍然是一种通用处理器,必须支持数百万种不同的应用程序和软件。这让我们回到了根本问题,即冯·诺依曼瓶颈。在数千个ALU的每次计算中,GPU需要访问寄存器或共享内存来读取和保存中间计算结果。由于GPU在其ALU上执行更多的并行计算,它也会按比例花费更多的能量来访问内存,同时由于复杂的布线也会增加GPU的物理占用空间。TPU的工作原理当谷歌设计TPU时,我们构建了一个特定领域的架构。这意味着我们设计的不是通用处理器,而是专用于神经网络工作负载的矩阵处理器。TPU无法运行文本处理软件、控制火箭发动机或执行银行业务,但它们可以处理神经网络的大量乘法和加法运算,而且速度非常快,功耗极低,占用的物理空间也更少。造成这种情况的主要原因是冯诺依曼瓶颈的大幅简化。由于处理器的主要任务是矩阵处理,因此TPU的硬件设计人员了解流程的每一步。因此,他们放置了数千个乘法器和加法器,并将它们直接连接起来,以构建这些运算符的物理矩阵。这称为脉动阵列架构。在CloudTPUv2的情况下,有两个128X128脉动阵列在单个处理器中集成了32768个ALU16位浮点值。让我们看一下脉动阵列如何执行神经网络计算。首先,TPU将内存中的参数加载到乘法器和加法器矩阵中。然后TPU从内存中加载数据。在执行每个乘法时,其结果将在执行加法时传递给下一个乘法器。所以结果将是所有数据和参数的乘积之和。在整个繁重的计算和数据传输过程中,不需要进行内存访问。这就是为什么TPU可以在神经网络操作上实现高计算吞吐量,同时消耗非常少的能量和物理空间。好处:成本降低到1/5,所以使用TPU架构的好处是:成本降低。以下是截至2018年8月(撰写本文时)的CloudTPUv2使用价格。CloudTPUv2价格截至2018年8月。斯坦福大学发布了DAWNBench,这是一个用于深度学习和推理的基准套件。您可以在上面找到不同任务、模型、计算平台及其各自基准测试结果的组合。DAWNBench:https://dawn.cs.stanford.edu/benchmark/在2018年4月的DAWNBench比赛结束时,非TPU处理器上的最佳训练成本为72.40美元(使用实时示例训练ResNet-50达到93%准确性)。借助CloudTPUv2抢先定价,您只需12.87美元即可获得相同的训练结果。这相当于非TPU成本的不到1/5。这就是神经网络领域特定架构的力量所在。原文链接:https://cloud.google.com/blog/products/ai-machine-learning/what-makes-tpus-fine-tuned-for-deep-learning翻译,微信公众号》机器之心(id:almosthuman2014)"]点此查看该作者更多好文