Skip to main content
QUICK REVIEW

[论文解读] Recurrent Neural Networks Hardware Implementation on FPGA

Andre Xian Ming Chang, Berin Martini|arXiv (Cornell University)|Nov 17, 2015
Advanced Neural Network Applications参考文献 21被引用 85
一句话总结

本文在 Xilinx Zynq 7020 FPGA 上实现了具有 128 个隐藏单元的两层长短期记忆(LSTM)网络的硬件加速,相较于嵌入式 ARM Cortex-A9 CPU 实现了超过 21 倍的性能提升。该设计采用并行化的矩阵-向量运算与 AXI DMA 实现高带宽数据流,成功实现了字符级语言建模的实时推理,且误差传播极小。

ABSTRACT

Recurrent Neural Networks (RNNs) have the ability to retain memory and learn data sequences. Due to the recurrent nature of RNNs, it is sometimes hard to parallelize all its computations on conventional hardware. CPUs do not currently offer large parallelism, while GPUs offer limited parallelism due to sequential components of RNN models. In this paper we present a hardware implementation of Long-Short Term Memory (LSTM) recurrent network on the programmable logic Zynq 7020 FPGA from Xilinx. We implemented a RNN with $2$ layers and $128$ hidden units in hardware and it has been tested using a character level language model. The implementation is more than $21 imes$ faster than the ARM CPU embedded on the Zynq 7020 FPGA. This work can potentially evolve to a RNN co-processor for future mobile devices.

研究动机与目标

  • 解决传统嵌入式处理器(如 CPU 和 GPU)在处理 RNN 时因序列依赖性与并行性受限导致的计算效率低下问题。
  • 设计一种面向 LSTM 网络的定制化 FPGA 硬件加速器,以实现在移动与嵌入式系统中高性能、低功耗的推理能力。
  • 在 Zynq 7020 平台上通过硬件实现的 LSTM 实现字符级语言模型的实时推理。
  • 评估 FPGA 实现与 CPU 和 GPU 基线在准确性、延迟和能效方面的表现。

提出的方法

  • 采用定点数算术实现标准 LSTM 架构(无窥视孔连接),以提升硬件效率。
  • 通过流水线乘法器与加法器设计并行化的硬件模块,实现四个 LSTM 门(输入门、遗忘门、输出门、候选单元)的并行处理。
  • 利用 AXI DMA 接口在 FPGA 与外部 DDR3 内存之间以 142 MHz 的频率流式传输输入序列、权重和隐藏状态。
  • 通过使用四个并发 DMA 通道优化内存访问,实现峰值带宽 3.8 GB/s,减少瓶颈。
  • 将 LSTM 计算映射至 Zynq 7020 SoC,其中双核 ARM Cortex-A9 处理器负责控制与数据流管理。
  • 使用在 Torch7 上训练的字符级语言模型对设计进行验证,将 FPGA 输出与 CPU 参考结果进行对比。

实验结果

研究问题

  • RQ1基于 FPGA 的硬件加速器是否能在嵌入式平台上实现显著高于通用 CPU 的 LSTM 推理吞吐量?
  • RQ2FPGA 实现的 LSTM 在准确性上与软件实现相比如何,特别是在长序列中是否存在误差累积?
  • RQ3内存带宽对 FPGA 上并行 LSTM 模块可扩展性有何影响?
  • RQ4对于无法从 GPU 加速中获益的小型 RNN 模型,该硬件设计是否能保持低延迟与高吞吐量?
  • RQ5与 CPU 和 GPU 平台相比,FPGA 实现的单位功耗性能表现如何?

主要发现

  • 在相同 Zynq 7020 平台下,基于 FPGA 的 LSTM 实现相较于 ARM Cortex-A9 CPU,对两层、128 个单元的字符级语言模型实现了 21.3 倍的性能提升。
  • 隐藏状态(h_t)的平均误差百分比为 2.8%,单元状态(c_t)为 3.9%,在 1000 个时间步内未观察到显著的误差累积。
  • 通过四个 AXI DMA 通道,系统实现了峰值内存带宽 1.236 GB/s,但由于外部内存限制,限制了并行 LSTM 模块的数量。
  • FPGA 实现优于 MacBook Pro 2016 上的 GPU,后者耗时 0.569 秒,而 CPU 仅需 0.304 秒,原因在于小模型存在较高的内存复制开销。
  • FPGA 的单位功耗性能显著优于 CPU 或 GPU,表明其在嵌入式推理中具备出色的能效优势。
  • FPGA 与 CPU 实现生成的文本在定性上相似,均生成类似莎士比亚风格的对白,验证了功能正确性。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。