本文作为Data Science Blogathon的一部分发表。
介绍
本文将简要讨论在深度学习应用中使用图形处理单元和张量处理单元的一些研究论文。
什么是GPU?
它代表图形处理单元(Graphic Processing Unit),是一种专门的硬件,用于加速各种计算机应用程序中的图形渲染。它可以同时、快速、有效地处理多条数据。它用于训练多个重机器学习和深度学习应用程序。此外,它在游戏中被大量使用。
什么是TPU?
它代表张量处理单元。它还专门用于加速机器学习模型训练的硬件。但与GPU相比,它们更适用于特定应用。GPU对不规则计算显示出更大的灵活性。另一方面,TPU由于其特殊设计的矩阵乘法单元,在处理大批量CNN时得到了良好的优化。

来源:https://www.hpcwire.com/2018/02/12/ai-cloud-competition-heats-googles-tpus-amazon-building-ai-chip/

来源:https://www.hp.com/us-en/shop/tech-takes/gpu-buying-guide
我们在本文中使用的研究论文有:
论文1: Specialized Hardware And Evolution In TPUs For Neural Networks
论文2: Performance Analysis and CPU vs GPU Comparison for Deep Learning
论文3:Motivation for and Evaluation of the First Tensor Processing Unit
让我们开始吧。
论文1
摘要:
本文讨论了TPU从第一代TPU到边缘TPU的发展及其体系结构。本研究考察了CPU、GPU、FPGA和TPU及其硬件设计、异同。现代神经网络现在被广泛应用,尽管它们需要更多的时间、处理和能量。由于市场需求和经济考虑,几种类型的ASIC(专用集成电路)的生产和该领域的研究正在增加。许多CPU、GPU和TPU模型被用来帮助这些网络,并改进训练和推理阶段。英特尔创建了CPU,NVIDIA创建了GPU,谷歌创建了云TPU。CPU和GPU可能会出售给公司,而谷歌则从云端为每个人提供TPU处理。当我们将数据从计算源移开时,会增加总成本。因此,组织在ALU附近采用内存管理和缓存解决方案来降低成本。
缺点:
人工智能是工业中应用最广泛的技术,神经网络应用非常广泛。CPU可以处理神经网络,但处理它们需要很多时间。这是关于CPU的第一个缺点。另一方面,在深度学习和神经网络中,GPU的速度是CPU的200-250倍,但在价格方面,这些对CPU来说是非常昂贵的。这是第二个缺点。在这种情况下,TPU比GPU快得多。TPU的速度几乎是GPU的十倍。但是,为了简化设计和调试,TPU不直接获取要执行的指令,而是主机服务器向TPU发送教育。同样,成本是TPU的另一个缺点。正如我们所知,谷歌已经开发了TPU,因此,它只存在于谷歌数据中心。我们不能使用TPU。就个人而言,这属于TPU的第三个缺点,但我们也可以通过名为google Colab的google服务访问TPU服务器。
今后的工作:
TPU将在未来用于神经网络,因为TPU是为这些特定目的而设计的。因此,它们降低了深度神经网络的整体训练成本。我们希望它能以我们周围负担得起的价格实现通用。此外,它还可以包括广泛的机器学习模型,并可用于人工智能(AI)的其他方面,包括智能相机等。此外,它应该具有弹性,并适应未来的技术,包括量子计算机。
论文2
摘要:
在本文中,我们对深度学习进行了性能分析和CPU与GPU的比较。使用深度学习应用程序对网页进行分类,进行性能分析测试。已经检查了一些性能相关的超参数。此外,测试在云中运行的CPU和GPU服务器上进行,测试用例影响不同的CPU规格、批量大小、隐藏层大小和转移学习。根据研究结果,增加堆芯的数量可以减少运行时间。类似地,增加中心工作频率提高了系统的工作速度。他们通过增加批量大小来提高流程的并行能力。在这一点上,在具有大批量的GPU上进行的测试表明,系统得到了加速。系统学习单词向量的试验的成功率逐渐增加。因此,存在大量的时代。可能需要进行培训以达到预期的成功水平。即使在低时代,我们也可以使用迁移学习来创建成功率高的模型。总的来说,在GPU上运行的所有测试都比在CPU上运行的快。
缺点:
GPU的一个显著缺点是,它们最初被构建为实现图形管道,而不是深度学习。GPU用于深入理解,因为它使用相同类型的计算(矩阵乘法)。我们还在这些实验中测试了一些性能分析实例,如批量大小、隐藏层大小和转移学习。使用隐藏层的主要缺点是,随着隐藏层数量的增加,必须学习的参数也随之增加。因此,培训的持续时间延长了。虽然增加层数会延长网页分类问题的训练周期,但不会影响成功率。此外,另一个缺点是,在系统学习单词向量的测试中,成功率缓慢增加。因此,我们需要更多的培训时间来达到目标成功水平。随着历元训练的增加,计算时间也会增加,这也会导致显著的发热,并且还会导致过拟合。过拟合在数据科学中用于描述统计模型何时完美地拟合其训练数据。该模型在记忆噪声时“过拟合”,与训练集过于接近,不能充分推广到新数据。
今后的工作:
计划优化性能分析,以提高后续实验的成功率,这些实验将很快进行。继GPU之后,谷歌未来的下一个重大举措是TPU(张量处理单元)。在使用神经网络推理的生产AI应用中,TPU比当前的GPU和CPU快15到30倍。TPU在能源效率方面也优于传统处理器,每瓦所需能量的处理能力提高了30倍至80倍(每瓦所需要的处理能力为万亿次或10^12次)。
论文3
摘要:
这项研究解释了TPU为什么有用,并将其性能与GPU和CPU在著名的神经网络基准上进行了比较。由于各种原因,TPU在深度神经网络中具有优势,包括其专门设计的矩阵乘法单元(也称为TPU的心脏)在O(n)时间内执行2D阵列的矩阵链乘法。相比之下,传统方法需要O(n3)时间来完成相同的乘法。此外,TPU硬件组件的设计方式使矩阵乘法单元始终处于忙碌状态,以获得最佳效果。TPU也没有与CPU紧密集成。相反,它们使用PCI Express I/O总线连接到现有服务器,类似于GPU。本文还使用ML应用程序(如MLP、LSTM和CNN)评估了TPU、Haswell CPU和K80 GPU的性能。根据我们的发现,TPU的每个芯片的TDP(热设计功率)大大低于CPU和GPU。TPU在屋顶线性能(即,TB/s)方面优于CPU和GPU。此外,他们没有提到TPU的实际成本和成本性能比,TPU再次表现出色。最后,这项工作旨在理解DSA(设计特定架构)的重要性,如TPU,以及它们如何帮助完成特定任务。
缺点:
本研究中提出的TPU是第一代TPU(TPU v1),它只能从已经训练的模型中预测新数据。它不能从头训练新的机器学习模型。要做到这一点,TPU架构需要进一步改进。TPU还将平均IEEE 32位浮点数转换为8位整数,这在降低精度的同时节省了能量并减小了芯片尺寸。此外,TPU的成本没有披露,这使得我们难以确定最佳设计。另一个缺点是,TPU是一种特定于格式的架构,因此它可能会丢弃深度神经网络不使用的CPU和GPU所需的功能。它仅在图像处理应用中表现出色。此外,我们目前使用的TPU仅支持Tensorflow;它不支持其他Python库,如Keras。
今后的工作:
我们可以使用TPU的改进版本,如TPUv2或TPUv3,利用TPU从头开始训练机器学习模型。他们有一个大的散热器,每个板上有四个芯片,而不是一个。我们可以将其用于培训和测试。此外,我们可以将32位浮点数转换为16位整数,而不是8位整数,从而获得最佳精度和功耗。TPU的开发方式也可以使其优于非神经网络应用。此外,TPU必须得到图书馆的广泛支持,以便对其进行更多的工作。
比较
抽象:
在论文1中,我们比较了CPU、GPU和TPU的硬件结构以及TPU多年来的发展。
在论文2中,我们使用递归神经网络架构在网页分类数据集上测试了CPU和GPU的性能。
在论文3中,我们比较了CPU、GPU和TPU在多层感知器、长短时记忆和卷积网络等标准深度学习应用中的性能。
方法:
在论文1的方法中,我们讨论了TPU、GPU和CPU的硬件结构,并对其进行了详细说明。在这方面,我们发现CPU使用一个1D阵列一次执行一条指令,GPU使用多个1D数组一次管理一条指令;TPU使用单个2D矩阵一次执行指令。
在论文2的方法中,我们准备了数据集并对其进行预处理,以在深度学习、单词嵌入和测试用例转移学习中使用RNN架构实现最佳结果。
在论文3的方法中,我们探讨了TPU的基本原理、摩尔定律、TPU中的矩阵链乘法、TPU的设计分析以及TPU优于其他TPU的原因。
观察:
在论文1中,我们对CPU、GPU和TPU的硬件结构进行了分类。此外,我们发现,在深度学习和神经网络方面,CPU的效率远远低于GPU,而TPU是专门为这些任务设计的。因此,与CPU和GPU相比,TPU的速度非常快。
在论文2中,我们使用不同CPU规格、批处理大小、隐藏层大小和转移学习的测试用例,比较了CPU和GPU的性能分析,发现GPU明显快于CPU。
在论文3中,我们检查了提供的神经网络设计上的CPU、GPU和TPU,发现TPU在性能、功耗和芯片面积大小方面都优于TPU。
结论
在本文中,我们讨论了该技术是如何发展的,以便训练深度学习模型的处理变得更快、更准确。我们已经看到,TPU带有一个专门的矩阵乘法单元,它在线性时间内执行矩阵链乘法。然而,传统的CPU可能需要三次时间才能完成相同的乘法运算。
如今,GPU和TPU都可以采用即插即用模式,即我们可以使用PCle Express端口将它们插入现有的CPU硬件。这可以启用这些设备的水平和垂直缩放,以便我们可以根据计算要求添加或删除它们。
本文的主要收获:
1.第一篇论文讨论了CPU、GPU和TPU之间的基本区别。有处理能力和一些基本的架构设计。
2.第二篇论文讨论了图形处理单元,特别是在深度学习应用中。它还通过改变批量大小、周期数、学习率等来研究性能的变化。
3.第三篇论文深入讨论了张量处理单元的体系结构设计。其功耗、热设计、面积要求等是什么?
4.最后,我们对所有研究论文进行了基本比较。
今天就到此为止。我希望你喜欢这篇文章。你也可以在LinkedIn上与我联系。
本文中显示的媒体并非Analytics Vidhya所有,由作者自行决定使用。
原文标题:Evolution of TPUs and GPUs in Deep Learning Applications
原文作者:Aryan Garg
原文链接:https://www.analyticsvidhya.com/blog/2022/08/evolution-of-tpus-and-gpus-in-deep-learning-applications/




