从架构、工艺到能效表现,全面了解LLM硬件加速,这篇综述就够了

机器之心报道

编辑:陈陈、杜伟

对人类语言进行大规模建模是一个复杂的过程,研究人员花了几十年的时间才开发出来。这项技术最早可追溯于 1950 年,当时克劳德・香农将信息理论应用于人类语言。从那时起,翻译和语音识别等任务取得了长足的进步。

在这个过程中,人工智能 (AI) 和机器学习 (ML) 是技术进步的关键。ML 作为 AI 的一个子集,其允许计算机从数据中进行学习。一般来说,ML 模型要么是有监督的,要么是无监督的。

在接下来要介绍的这篇论文中《 Hardware Acceleration of LLMs: A comprehensive survey and comparison 》,来自西阿提卡大学的研究者重点介绍了有监督模型。

论文地址:https://arxiv.org/pdf/2409.03384

根据论文介绍,深度学习模型分为生成式和判别式。生成式人工智能是深度学习的一个子集,它使用神经网络来处理标记和未标记的数据。大型语言模型 (LLM) 有助于理解字符、单词和文本。

2017 年,Transformer 彻底改变了语言建模。Transformer 是一种神经网络,它使用注意力机制处理长期文本依赖关系。谷歌于 2017 年创建了第一个用于文本翻译的 Transformer 模型。Transformer 此后不断发展,改进了注意力机制和架构。发展到今天,OpenAI 发布的 ChatGPT 是一个著名的 LLM,它可以预测文本并能回答问题、总结文本等。

本文对使用硬件加速器来加速 Transformer 网络所做的一些研究工作进行了全面的调查。该调查介绍了已提出的框架,然后对每个框架的技术、处理平台(FPGA、ASIC、内存、GPU)、加速、能源效率、性能(GOP)等进行了定性和定量比较。

FPGA 加速器

在这一部分中,作者以 A-T 编号的方式列举了有关 FPGA 的研究,可谓调查的非常详细。每项研究都用简短的几句话概括,阅读起来简单又清晰。举例来说:

FTRANS 。2020 年,Li 等人提出了一种硬件加速框架 FTRANS,旨在加速基于 Transformer 的大规模语言表示。FTRANS 显著提高了速度和能效,超越了 CPU 和 GPU 实现,在一系列比较后显示 FTRANS 比其他方案快 81 倍,能效高 9 倍,特别是与使用 VCU118 (16nm) 的 GPU 处理器 RTX5000 相比。该加速器的性能速率为 170 GOP,能效率为 6.8 GOP/W。

多头注意力。2020 年,Lu 等人提出了一种基于 FPGA 的架构,用于加速 Transformer 网络中计算最密集的部分。在他们的工作中,他们为两个关键组件提出了一种新型硬件加速器,即多头注意力 (MHA) ResBlock 和位置前馈网络 (FFN) ResBlock,它们是 Transformer 中最复杂的两个层。所提出的框架是在 Xilinx FPGA 上实现的。根据性能评估,与 V100 GPU 相比,所提出的设计实现了 14.6 倍的加速。

FPGA NPE。2021 年,Khan 等人提出了一种用于语言模型的 FPGA 加速器,称为 NPE。NPE 的能源效率比 CPU(i7-8700k)高约 4 倍,比 GPU(RTX 5000)高约 6 倍。

除此以外,文中还介绍了 ViA 、 FPGA DFX 、 FPGA OPU 等研究,这里就不再详细介绍了。

基于 CPU 和 GPU 的加速器

TurboTransformer。2021 年,Jiarui Fang 和 Yang Yu 推出了 TurboTransformers 加速器,这是一种在 GPU 上专为 Transformer 模型打造的技术。TurboTransformers 在可变长度输入的延迟和性能方面优于 PyTorch 和 ONNXRuntime,速度提高了 2.8 倍。

Jaewan Choi。2022 年,研究员 Jaewan Choi 发表了题为「Accelerating Transformer Networks through Rewiring of Softmax Layers」的研究,文中提出了一种加速 Transformer 网络中 Softmax 层的方法。该研究引入了一种重新布线技术来加速 Transformer 网络中的 Softmax 层,随着 Transformer 模型处理更长的序列以提高准确率,这项技术变得越来越重要。所提出的技术将 Softmax 层划分为多个子层,更改数据访问模式,然后将分解的 Softmax 子层与后续和前面的过程合并。该方法分别将 BERT、GPT-Neo、BigBird 和 Longformer 在当前 GPU 上的推理速度加快了 1.25 倍、1.12 倍、1.57 倍和 1.65 倍,显著减少了片外内存流量。

SoftMax。2022 年,Choi 等人提出了一种通过重组 Softmax 层加速 Transformer 网络的新框架。Softmax 层将注意力矩阵的元素归一化为 0 到 1 之间的值。此操作沿注意力矩阵的行向量进行。根据分析,缩放点积注意力 (SDA) 块中的 softmax 层分别使用了 BERT、GPT-Neo、BigBird 和 Longformer 总执行时间的 36%、18%、40% 和 42%。Softmax 重组通过显著减少片外内存流量,在 A100 GPU 上对 BERT、GPT-Neo、BigBird 和 Longformer 进行推理时实现了高达 1.25 倍、1.12 倍、1.57 倍和 1.65 倍的加速。

此外,论文还介绍了 LightSeq2 、 LLMA 、 vLLMs 等研究。

ASIC 加速器

A3。2020 年,Hma 等人提出了一项关于 Transformer 网络加速的早期研究,称为 A3 。不过,研究人员所提出的方案尚未在 FPGA 上实现。基于性能评估,与 Intel Gold 6128 CPU 实现相比,所提出的方案可实现高达 7 倍的加速,与 CPU 实现相比,能效可提高 11 倍。

ELSA。2021 年,Ham 等人提出了一种用于加速 Transformer 网络的硬件 - 软件协同设计方法,称为 Elsa 。ELSA 大大减少了自注意力操作中的计算浪费。

SpAtten。2021 年,Want 等人提出了一种用于大型语言模型加速的框架 Spatten。SpAtten 采用新颖的 NLP 加速方案,以减少计算和内存访问。SpAtten 分别比 GPU(TITAN Xp)和 Xeon CPU 实现了 162 倍和 347 倍的加速。在能源效率方面,与 GPU 和 CPU 相比,SpAtten 实现了 1193 倍和 4059 倍的节能。

在这部分,作者还列举了加速 transformer 网络的新方法 Sanger、用于提高自然语言处理中 transformer 模型效率的 AccelTran 等多项研究。

内存硬件加速器

ATT。2020 年,Guo 等人提出了一种基于注意力的加速器加速方法,称为 ATT,该方法基于电阻性 RAM。根据性能评估,ATT 与 NVIDIA GTX 1080 Ti GPU 相比,可以实现 202 倍的加速。

ReTransformer。2020 年,Yang 等人提出了一种用于加速 Transformer 的内存框架,称为 ReTransformer。ReTransformer 是一种基于 ReRAM 的内存架构,用于加速 Transformer,它不仅使用基于 ReRAM 的内存架构加速 Transformer 的缩放点积注意力,而且还通过使用提出的矩阵分解技术避免写入中间结果来消除一些数据依赖性。性能评估表明,与 GPU 相比,ReTransformer 可以实现高达 23.21 倍的加速,而相应的整体功率降低了 1086 倍。

iMCAT。2021 年,Laguna 等人提出了一种用于加速长句 Transformer 网络的新型内存架构,称为 iMCAT。该框架结合使用 XBar 和 CAM 来加速 Transformer 网络。性能评估表明,对于长度为 4098 的序列,这种方法实现了 200 倍的加速和 41 倍的性能改进。

除此以外,该章节还介绍了 iMCAT 、 TransPIM 、 iMTransformer 等研究。

定量比较

下表 I 列出了目前所有的硬件加速器以及各自的主要特性,包括加速器名称、加速器类型(FPGA/ASIC/In-memory)、性能和能效。

在某些情况下,当提出的架构与 CPU、GPU 进行比较时,以往的工作也会提及加速这一指标。不过,由于每种架构的基线比较不同,因而本文只展示了它们的绝对性能和能效,而没有涉及加速。

性能定量比较

下图 1 展示了不同工艺技术下,每种加速器的性能;图 2 展示了更加清楚的对数尺度性能。

我们可以看到,采用 14nm 工艺的 AccelTran(服务器)实现最高性能,达到了 372000 GOPs,而 ReTransformer 模型的性能最低。此外,ViA、Me-ViT 和 Ftrans 等采用相同工艺技术的模型并没有实现相似的性能。

不过,对于没有采用相同工艺技术的加速器,则很难进行公平比较。毕竟,工艺技术会对硬件加速器性能产生显著的影响。

能效 vs 工艺技术

下图 3 展示了大多数硬件加速器的能效(GOPs/W)水平,图 4 展示了对数尺度层面的能效。由于很多架构没有测量能效,因而本文只列出了提供了能效的加速器。当然,很多加速器采用了不同的工艺技术,因此很难进行公平比较。

结果显示,以内存为主(In-Memory 加速器)的模型具有更好的能效表现。原因在于数据传输减少了,并且这种特定的架构允许数据在内存中直接处理,而不需要从内存传输到 CPU。

16nm 工艺下的加速比较

下表 II 展示了 16nm 工艺下,不同硬件加速器的外推性能。

下图 5 展示了当在相同的 16nm 工艺技术下外推性能时,不同硬件加速器的绝对性能,其中 AccelTran 的性能水平最高。

实验外推

本文针对 FPGA 架构进行了实验外推,并测试了 20nm、28nm、40nm、 55nm、65nm 和 180nm 工艺下技术不同的矩阵乘法代码,以验证 16nm 工艺的理论转换效果。研究者表示,FPGA 技术上的矩阵乘法结果有助于外推不同硬件加速器在相同工艺技术上的结果。

下表 III 展示了不同 FPGA 设备、工艺技术以及矩阵乘法 IP 核的结果。

下图 6 展示了每种 FPGA 设备和矩阵乘法工艺技术的最大时钟频率。由于 FPGA 的性能依赖于最大时钟频率,因此外推性能使得不同工艺技术下架构之间能够实现公平比较。

更多实验细节请参阅原论文。