Design and Implementation of an FPGA-Based Hardware Accelerator for Transformer

📄 arXiv: 2503.16731v3 📥 PDF

作者: Richie Li, Sicheng Chen

分类: cs.AR, cs.CL, cs.LG

发布日期: 2025-03-20 (更新: 2025-05-20)

备注: 7 pages, 4 figures, 2 tables. Prepared in ACM conference style. Preprint under review


💡 一句话要点

针对Transformer的QKV投影,提出一种高效FPGA硬件加速器设计。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: FPGA加速器 Transformer模型 矩阵乘法 硬件加速 边缘计算

📋 核心要点

  1. Transformer模型中的矩阵乘法是性能瓶颈,尤其是在资源受限的边缘设备上。
  2. 论文提出一种基于FPGA的硬件加速器,通过两级分块和片上存储优化数据重用。
  3. 实验表明,该加速器在DistilBERT的QKV投影上实现了显著的加速和能效提升。

📝 摘要(中文)

基于Transformer的大型语言模型(LLM)严重依赖于注意力机制和前馈层中的密集矩阵乘法,其中多头自注意力(MHA)模块中的Q、K和V线性投影构成了决定性的性能瓶颈。本文在资源受限的Xilinx KV260 FPGA上,提出了一种高度优化的分块矩阵乘法加速器,它不仅解决了这一挑战,而且为效率和性能树立了新标准。我们的设计利用持久的片上存储、用于最大化数据重用的强大两级分块策略,以及类似 systolic 的展开计算引擎,共同实现了无与伦比的速度和能源效率。通过与DistilBERT集成用于Q、K和V投影,我们的加速器在ARM CPU实现(PyTorch)上实现了7倍的速度提升,并且比naive NumPy实现了200倍的改进,在100 MHz的保守频率下,对于(64,768) x (768,3072)矩阵的矩阵乘法,吞吐量高达3.1 GFLOPs。这些结果明确地证明了基于FPGA的加速对于关键Transformer操作的变革潜力,为边缘设备上可扩展且节能的深度学习推理铺平了道路。

🔬 方法详解

问题定义:Transformer模型,特别是大型语言模型,在推理过程中需要大量的矩阵乘法运算,尤其是在多头自注意力机制中的Q、K、V投影步骤。这些计算密集型操作成为性能瓶颈,限制了模型在资源受限设备上的部署。现有的软件实现(如NumPy)效率低下,而CPU实现虽然有所改进,但仍无法满足实时性需求。

核心思路:论文的核心思路是利用FPGA的可重构特性,设计专用的硬件加速器来优化矩阵乘法运算。通过充分利用片上存储资源,并采用高效的数据重用策略,减少对外部存储器的访问,从而提高计算速度和能效。

技术框架:该加速器的整体架构包含以下主要模块:数据输入模块、片上存储模块、两级分块模块、计算引擎模块和数据输出模块。数据首先被分块并加载到片上存储器中,然后通过两级分块策略进一步细化数据块,以便在计算引擎中进行高效的矩阵乘法运算。计算引擎采用类似 systolic 阵列的结构,实现并行计算。最后,计算结果被输出。

关键创新:该论文的关键创新在于以下几个方面:1) 提出了针对FPGA的定制化两级分块策略,最大化数据重用,减少了对外部存储器的访问;2) 设计了高效的 systolic-like 展开计算引擎,实现了并行计算,提高了计算吞吐量;3) 充分利用了片上存储资源,减少了数据传输延迟。

关键设计:两级分块策略是关键设计之一,它将矩阵划分为多个较小的块,以便在片上存储器中进行缓存。第一级分块将矩阵划分为较大的块,第二级分块将这些块进一步划分为更小的块,以便在计算引擎中进行并行计算。计算引擎采用 systolic 阵列结构,每个处理单元执行乘法累加运算。论文还优化了数据流,以减少数据传输延迟。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

该FPGA加速器在Xilinx KV260 FPGA上实现,针对DistilBERT的Q、K、V投影,相较于ARM CPU(PyTorch)实现,取得了7倍的速度提升,相较于naive NumPy实现,取得了200倍的改进。在100 MHz的保守频率下,对于(64,768) x (768,3072)矩阵的矩阵乘法,吞吐量高达3.1 GFLOPs。这些结果表明,该加速器具有显著的性能优势。

🎯 应用场景

该研究成果可应用于边缘设备的深度学习推理加速,例如智能手机、无人机、机器人等。通过将Transformer模型部署在这些设备上,可以实现本地化的自然语言处理和计算机视觉应用,提高响应速度和用户体验。此外,该加速器设计也可用于其他需要高性能矩阵乘法运算的领域,如科学计算、图像处理等。

📄 摘要(原文)

Transformer-based large language models (LLMs) rely heavily on intensive matrix multiplications for attention and feed-forward layers, with the Q, K, and V linear projections in the Multi-Head Self-Attention (MHA) module constituting a decisive performance bottleneck. In this work, we introduce a highly optimized tiled matrix multiplication accelerator on a resource-constrained Xilinx KV260 FPGA that not only addresses this challenge but sets a new standard for efficiency and performance. Our design exploits persistent on-chip storage, a robust two-level tiling strategy for maximal data reuse, and a systolic-like unrolled compute engine that together deliver unparalleled speed and energy efficiency. Integrated with DistilBERT for Q, K, and V projections, our accelerator achieves an unequivocal 7x speedup over ARM CPU implementations (PyTorch) and an extraordinary 200x improvement over naive NumPy, reaching a throughput of up to 3.1~GFLOPs for matrix multiplications on (64,768) x (768,3072) matrices while operating at a conservative 100 MHz. These results decisively demonstrate the transformative potential of FPGA-based acceleration for critical Transformer operations, paving the way for scalable and energy-efficient deep learning inference on edge devices.