【文献阅读】[非线性模块]NPE: An FPGA-based Overlay Processor for Natural Language

题目:NPE: An FPGA-based Overlay Processor for Natural Language
时间:2021
会议/期刊:
研究机构:UCLA Lei He

NPE: An FPGA-based Overlay Processor for Natural Language

Abstract

近年来,基于Transformer的模型已经显示出自然语言处理 (NLP) 的最新成果。特别是,BERT 语言模型的引入带来了诸如问答和自然语言推理等任务的突破,推进了允许人类与嵌入式设备自然交互的应用程序。基于 FPGA 的 overlay processors已被证明是边缘图像和视频处理应用的有效解决方案,这些应用主要依赖于低精度线性矩阵运算。相比之下,基于Transformer的 NLP 技术采用了各种具有更高频率的更高精度的非线性运算。我们展示了 NPE,这是一种基于 FPGA 的覆盖处理器,可以有效地执行各种 NLP 模型。 NPE 为最终用户提供了类似软件的可编程性,并且与为每个非线性功能实现专用加速器的 FPGA 设计不同,它可以针对未来的 NLP 模型进行升级,而无需重新配置。我们证明了 NPE 可以满足 BERT 语言模型的实时对话 AI 延迟目标,其功耗比 CPU 低 4 倍,比 GPU 低 6 倍。我们还表明,与文献中可比较的 BERT 网络特定加速器相比,NPE 使用的 FPGA 资源少了 3 倍。 NPE 为边缘的自然语言处理提供了一种经济高效且节能的基于 FPGA 的解决方案。
Key Words: NLP, FPGA, Overlay, Processor, Accelerator, Nonlinear, BERT, Machine Learning

1. Introduction

最常见的自然语言处理 (NLP) 任务之一是序列转换,将输入序列转换为输出序列。传统上,卷积神经网络 (CNN) 和循环神经网络 (RNN) 已用于此任务 [9, 10]。 Transformer 架构 [22] 移除了所有循环和卷积组件,而是依赖于自我注意机制,通常显示出更好的计算时间和性能。变压器由编码器和解码器两部分组成。来自 Transformers 的双向编码器表示 (BERT) 模型 [6] 结合了来自 Transformers 的编码器,以生成最先进的语言表示模型。首次推出时,BERT 打破了 11 个不同 NLP 任务的记录。从那时起,诸如 RoBERTa [18] 和 DistilBERT [20] 等 BERT 的变体已经显示出更好的性能和准确性。实施有效的加速器来推断这些变压器模型已被证明是一项具有挑战性的任务。

基于 FPGA 的覆盖处理器为边缘上的 CNN 和其他网络推理提供了有效的解决方案,允许跨网络的灵活性,而无需重新配置 FPGA [24-26]。 CNN 主要由线性矩阵运算组成,如卷积和池化,并且一直表现出对极端量化的弹性。然而,使用现有的 CNN FPGA 加速器无法有效加速 BERT 及其后继者 [13、15、18、20]。尽管它们计算了许多矩阵乘法,但 Transformer 模型也引入了复杂的非线性运算,这些运算需要更高的精度,并且调用频率更高。例如,在每个编码器中对 BERT 执行 softmax 和层归一化 [2] 多次,并阻止后续计算,直到它们完成处理。因此,必须在保持高吞吐量的同时有效地计算它们。对于性能敏感的应用程序,必须在设备上计算这些非线性,因为发送到 CPU 会导致显着的延迟开销,并且在边缘不实用。

大多数现有的加速器 [11, 19] 包括用于计算每种类型的非线性的专门单元。例如,FTRANS [17] 是之前唯一发布的用于变压器的 FPGA 加速器,包括单独的 softmax 和层归一化模块。由于 NLP 是一个不断发展的领域,可能会引入不同类型的非线性,因此这种专门的方法意味着 FPGA 设计可能需要重新配置其他 NLP 网络。它还导致非线性操作中不必要的区域开销和未充分利用的资源。

在本文中,我们提出了 NPE,这是一种基于 FPGA 的覆盖处理器,用于在边缘进行 NLP 模型推理。如图 1 所示,与大多数其他加速器不同,NPE 采用一种通用方法来高效、准确地逼近不同的非线性函数,而不会增加开销。我们工作的主要贡献如下:
【文献阅读】[非线性模块]NPE: An FPGA-based Overlay Processor for Natural Language_第1张图片
• 我们设计了一个软件可编程的特定领域覆盖处理器,带有一个矩阵乘法单元和一个用于 NLP 处理的多精度向量单元。

• 我们采用统一的分段多项式方法进行非线性函数逼近,以允许对未来可能需要的非线性函数进行扩展。

• 我们证明我们提出的加速器可以满足对话式 AI 的实时延迟限制,同时保持比 GPU 和 CPU 分别低 4 倍和 6 倍的功耗。与类似的网络专用变压器 FPGA 加速器相比,我们的设计使用的 FPGA 资源少 3 倍。

2. Related Work

虽然 BERT 在软件层面针对 CPU 和 GPU 进行了高度优化,但很少有与任何基于变压器的网络的定制硬件加速相关的工作发表,特别是在 FPGA 上。最近提出了两种 ASIC,OPTIMUS [19] 和 3 [11],它们各自加速了变压器推理的不同部分。 OPTIMUS 通过利用稀疏性优化变压器的矩阵乘法。它具有用于非线性的专用指数、除法器和平方根分量,导致面积浪费,因为每个分量只使用一小部分时间。 3 使用各种近似方法加速注意力机制。它有一个专门用于注意力的非常深的管道,从整体设计的角度来看,这是低效的,因为即使其他矩阵乘法也不能重用乘法器和函数逼近单元。特别是,3 需要与传统的矩阵乘法加速器配对才能实现 BERT。在任何时候,3 单元或主加速器都会进行计算,从而导致许多空闲资源和性能潜力的浪费。

据我们所知,FTRANS [17] 是目前唯一发布的用于 BERT 和相关变压器网络的 FPGA 加速器。 FTRANS 采用非常专业的方法来实现转换器,其中它具有专用的编码器和解码器模块。这些模块中的每一个都有许多专门的组件。例如,注意力头模块包含用于 softmax 和层归一化的组件,以及五个独特的 PE 库来执行所需的每个矩阵乘法子例程(参见表 1 中的注意力层计算)。虽然实现变压器就足够了,但 FTRANS 不够灵活,无法处理任何非变压器网络。随着 NLP 最先进技术的发展和新网络变体的出现,FTRANS 架构可能必须进行广泛的重新设计以适应。

3. Background

3.4 Throughput Requirements of Nonlinear Operations

由于矩阵乘法运算依赖于先前非线性运算的结果,非线性处理需要具有足够高的吞吐量才能不增加显着的延迟开销。非线性操作的吞吐量要求可以由我们需要处理的元素数量和可用于处理的周期来确定。我们将非线性运算的周期预算定义为前面的矩阵乘法处理的周期数,给定矩阵乘法维度和每个周期的乘法数。对于 BERTBASE,给定每个周期 2048 次乘法和 512 的序列长度,我们在表 2 中显示了每个非线性的吞吐量要求。Attention后的层归一化和 GELU 之后的层归一化分别显示,因为它们具有不同的吞吐量要求。
【文献阅读】[非线性模块]NPE: An FPGA-based Overlay Processor for Natural Language_第2张图片
表 2 的最后一列表示依赖于每个非线性计算的总周期百分比。具体来说,该值显示了非线性跟随的整体矩阵乘法周期的百分比。例如,我们看到总周期时间的 30% 用于计算 GELU 操作的矩阵乘法输入。

从表 2 中,我们看到,Layer Normalization 和 GELU 都需要每个周期的平均吞吐量少于三个元素,而 softmax 每个周期需要 32 个元素来匹配矩阵乘法运算的吞吐量。从这个角度来看,这意味着如果没有额外的优化,我们需要在 16 个周期内对 512 个元素的向量执行 softmax。

4. Nonlinearity Processing

5. Accelerator Architecture

在本节中,我们将介绍 NPE 的整体架构,这是我们用于 NLP 的 FPGA 覆盖处理器。 NPE 采用了 OPU [24] 中的几个组件,包括矩阵乘法单元 (MMU)。 图 3 显示了加速器的架构。
【文献阅读】[非线性模块]NPE: An FPGA-based Overlay Processor for Natural Language_第3张图片

你可能感兴趣的:(加速器,fpga开发)