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

TPU、GPU和CPU中哪个是最好的深度学习平台?有人做过benchmark测试,研究

时间:2023-03-14 09:42:25 科技观察

GPU、TPU、CPU都可以用于深度学习模型的训练,那么这些平台分别适合哪些模型,各自的瓶颈是什么?在这篇文章中,来自哈佛大学的研究人员设计了一个用于深度学习的参数化基准套件ParaDnn,以系统地对这些深度学习平台进行基准测试。ParaDnn能够为完全连接(FC)、卷积(CNN)和递归(RNN)神经网络生成端到端模型。研究人员使用六个真实模型对谷歌的CloudTPUv2/v3、Nvidia的V100GPU和英特尔的SkylakeCPU平台进行了基准测试。他们深入研究了TPU的架构,揭示了它的瓶颈,并强调了可用于未来专业系统设计的宝贵经验。他们还提供了平台的综合比较,发现每个平台对于某些类型的模型都有其独特的优势。最后,他们量化了专用软件堆栈为TPU和GPU平台提供的快速性能改进。论文:BenchmarkingTPU,GPU,andCPUPlatformsforDeepLearning论文链接:https://arxiv.org/pdf/1907.10701.pdf常见的硬件和基准有哪些?TPUv2于2017年5月发布。它是一种定制的专用集成电路(ASIC)。每个TPUv2设备可以在单板上提供180TFLOPS的峰值计算能力。一年后,TPUv3发布,将峰值性能提高到420TFLOPS。CloudTPU于2018年2月可供学术访问。本文使用CloudTPU。Nvidia的TeslaV100TensorCore是Volta架构的GPU,于2017年发布。该CPU已被证明更适合在某些用例中进行训练,因此它也是一个重要的平台,应该纳入比较。这项研究表明,没有哪个平台适合所有场景。基于各自的特点,不同的平台可以为不同的模型提供优势。此外,由于深度学习模型的快速改进和变化,基准测试也必须不断更新和频繁执行。最近的基准测试似乎仅限于任意少数DNN模型。仅仅盯着ResNet50和Transformer等知名模型可能会得出误导性的结论。例如,大型全连接模型Transformer在TPU上的训练速度比在GPU上快3.5倍;然而,关注这一模型并没有揭示严重的内存带宽瓶颈。这突出了为某些模型过度优化硬件和/或编译器的风险。下一代硬件基准测试为了对最先进的深度学习平台进行基准测试,本文提出了一套用于训练的深度学习模型。为了支持广泛而全面的基准测试研究,研究人员引入了参数化深度学习基准测试组件ParaDnn。ParaDnn能够无缝生成数千个参数化的多层模型,包括全连接(FC)模型、卷积神经网络(CNN)和递归神经网络(RNN)。ParaDnn允许对参数大小接近6个数量级的模型进行系统基准测试,这超出了现有基准测试的范围。研究人员将这些参数模型与六个真实世界的模型结合起来,作为广泛模型中的独特点,以提供硬件平台的综合基准测试。表1总结了本文中描述的10个14个观察结果和见解,它们可以为未来特定领域的架构、系统和软件设计提供信息。表1:本文部分分组的主要观察结果和见解摘要研究人员故意标记了通过ParaDnn获得的见解。他们从论文的第4节开始深入讨论TPUv2和v3的架构,揭示了计算能力、内存带宽、多切片负载和设备-主机平衡方面的架构瓶颈(观察1到5)。论文的第五部分提供了TPU和GPU性能的综合比较,突出了两个平台之间的重要差异(观察6到11)。最后3个观察结果在论文的第VI部分中有详细说明,该部分探讨了专用软件堆栈和量化数据类型带来的性能改进。澄清这项研究的局限性很重要。本白皮书重点介绍了可以在当前架构和系统设计中进行优化的可能性,因为它们为未来的设计提供了宝贵的经验教训。优化的细节不在本文讨论范围之内。例如,本文的分析仅侧重于训练而非推理。作者没有研究多GPU平台或256节点TPU系统的性能,这可能会得出不同的结论。深度学习基准测试深度学习(DL)最近的成功推动了对基准测试组件的研究。现有组件主要有两类:一类是MLPerf、Fathom、BenchNN、BenchIP等实际基准;另一种是像DeepBench和BenchIP这样的微基准测试,但它们都有一定的局限性。这些组件仅包含当今存在的深度学习模型,随着深度学习模型的快速发展,这些模型可能会过时。此外,它们没有揭示深度学习模型属性和硬件平台性能之间的深刻见解,因为基准只是广阔的深度学习空间中的稀疏点。ParaDnn补充了本研究现有的基准组件。它具有上述方法的优点。目标是提供一个可以涵盖现有和未来应用程序的“端到端”模型,并对模型进行参数化。探索更大的深度神经网络特性设计空间。图1:本文中所有负载的可训练参数数量。如图所示,ParaDnn中的模型参数范围从一万到近十亿,比实际的模型参数范围要大,如图中的点所示。硬件平台作者对硬件平台的选择反映了论文提交时云平台上广泛可用的最新配置。模型的详细指标如表3所示。表3:作为研究对象的硬件平台实验图。图2(a)–(c)显示这三种方法的FLOPS利用率随着批量大小的增加而增加。此外,全连接网络的FLOPS利用率随着每层节点数量的增加而增加(图2(a));卷积神经网络的FLOPS利用率随着filter的增加而增加,而循环神经网络的FLOPS利用率随着embeddingsize的增加而增加。图2(a)-(c)中的x轴和y轴是图2(d)-(f)中绝对值最大的超参数。图2:FLOPS利用率及其与超参数的相关性。(a)–(c)表示参数模型的FLOPS利用率。(d)–(f)使用线性回归权重量化模型超参数对FLOPS利用率的影响。图3:TPU上的全连接网络和卷积神经网络的Roofline。矩阵乘法(MatMul)运算的负载是计算密集型的。即使像Transformer和ResNet-50这样的计算密集型模型也有10%以上的内存绑定操作。(a)和(c)显示了实际模型的参数化模型和屋顶线。(b)和(d)显示了操作的分解。图4:多芯片系统中的通信开销不可忽略,但随着批量大小的增加而减少。图5:使用float32和bfloat16的真实模型的FLOPS利用率(顶部)和馈送时间(设备等待数据的时间)有和没有数据准备(底部)。喂养时间百分比较大的模型,如RetinaNet和SqueezeNet,受数据喂养的限制。图6:(a)是运行端到端模型时TPUv3与v2相比的加速。(b)和(c)是全连接和卷积神经网络的加速比。TPUv3更大的内存支持两倍的批处理大小,因此内存受限的操作如果具有更大的批处理大小,则可以获得三倍的加速,如果没有,则可以获得1.5倍的加速。v3上计算密集型操作的2.3倍加速。红线(75Ops/Byte)是TPUv2的roofline的拐点。图7:具有固定层的完全连接模型的示例/秒(64)。Examples/second随着节点数量的增加而减少,随着batchsize的增加而增加。白色方块表示模型遇到了内存不足的问题。CPU平台运行最大的模型,因为它有最多的内存。图8:具有大批量的小型全连接模型更喜欢TPU,而具有小批量的大型模型更喜欢GPU,这意味着收缩数组更适合大矩阵,而变换小矩阵在GPU上更灵活。图9:具有大批次大小的大型全连接模型比CPU更适合GPU,因为它们有更好的架构来利用额外的并行性。图10:(a)–(c):对于大型卷积神经网络,TPU是比GPU更好的选择,这意味着TPU针对卷积神经网络进行了高度优化。(d)–(e):虽然TPU是RNN更好的选择,但它在嵌入向量计算方面不如GPU灵活。图11:(顶部)TPU与GPU在所有工作负载上的加速比。需要注意的是,实际工作负载会在TPU上使用比在GPU上更大的batchsize。ResNet-50的NVIDIAGPU版本来自[9]。(底部)所有平台的FLOPS利用率比较。图12:(a)TPU性能随TensorFlow版本更新而变化。所有ParaDnn模型都得到了提升:Transformer、RetinaNet和ResNet-50提升了稳定性。(b)GPU在不同版本的CUDA和TF上的加速。CUDA9.2比其他ParaDnn模型更多地改进了卷积神经网络,并且比其他真实模型更多地改进了ResNet-50。CUDA10不提升RNN和SqueezeNet。