Skip to main content
QUICK REVIEW

[论文解读] Automatic Compiler Based FPGA Accelerator for CNN Training

Shreyas Kolala Venkataramanaiah, Yufei Ma|arXiv (Cornell University)|Aug 15, 2019
Advanced Neural Network Applications被引用 5
一句话总结

本文提出了一种基于编译器的自动FPGA加速器,用于端到端的CNN训练,采用16位定点精度。该方法利用可配置的RTL编译器和优化的硬件库,生成针对FPGA优化的加速器,支持完整的训练流程(前向传播、反向传播和权重更新),在Intel Stratix 10 GX FPGA上对具有200万参数的CIFAR-10网络实现了高达479 GOPS的性能。

ABSTRACT

Training of convolutional neural networks (CNNs)on embedded platforms to support on-device learning is earning vital importance in recent days. Designing flexible training hard-ware is much more challenging than inference hardware, due to design complexity and large computation/memory requirement. In this work, we present an automatic compiler-based FPGA accelerator with 16-bit fixed-point precision for complete CNNtraining, including Forward Pass (FP), Backward Pass (BP) and Weight Update (WU). We implemented an optimized RTL library to perform training-specific tasks and developed an RTL compiler to automatically generate FPGA-synthesizable RTL based on user-defined constraints. We present a new cyclic weight storage/access scheme for on-chip BRAM and off-chip DRAMto efficiently implement non-transpose and transpose operations during FP and BP phases, respectively. Representative CNNs for CIFAR-10 dataset are implemented and trained on Intel Stratix 10-GX FPGA using proposed hardware architecture, demonstrating up to 479 GOPS performance.

研究动机与目标

  • 解决在资源受限的嵌入式平台中部署灵活且能效高效的CNN训练的挑战。
  • 克服基于GPU的训练在功耗效率和设备端学习能力方面的局限性。
  • 设计一种完全自动化的FPGA加速器,支持各种CNN架构的随机梯度下降(SGD)训练全过程。
  • 通过循环存储方案,实现前向传播、反向传播和权重更新阶段的高效内存访问与计算映射。
  • 在保持与浮点训练相当的精度的同时,实现高吞吐量和高能效。

提出的方法

  • 开发了面向训练的RTL模块库,包含用于前向传播、反向传播和权重更新操作的参数化Verilog模块。
  • 构建了一个RTL编译器,能够从高级CNN配置和设计约束自动生成可综合的FPGA RTL代码。
  • 实现了基于片上BRAM和片外DRAM的循环权重存储/访问方案,以高效处理非转置(前向)和转置(反向)操作。
  • 采用分块和双缓冲技术,隐藏DRAM延迟并减少片上缓冲区使用量。
  • 通过在MAC阵列之间实现负载均衡,将权重更新层的逻辑延迟降低了4倍。
  • 在PyTorch中设计了自定义的定点训练模型,以验证FPGA实现的功能正确性。
Figure 1: SGD based CNN training dataflow illustrated for a simple 2C-2P-1FC model.
Figure 1: SGD based CNN training dataflow illustrated for a simple 2C-2P-1FC model.

实验结果

研究问题

  • RQ1如何自动生成支持不同网络规模的FPGA加速器,以实现完整的CNN训练?
  • RQ2在前向传播、反向传播和权重更新阶段,何种内存访问模式和数据流优化最有效于降低延迟?
  • RQ3所提出的循环存储方案如何提升转置与非转置操作的内存带宽利用率?
  • RQ4与基于GPU的解决方案相比,完全自动化的FPGA加速器在吞吐量和能效方面能达到何种水平?
  • RQ5在FPGA上实现高吞吐量训练的同时,定点精度在多大程度上能保持模型精度?

主要发现

  • 该FPGA加速器在Intel Stratix 10 GX FPGA上,以240 MHz主频运行4倍CIFAR-10 CNN模型时,吞吐量最高达到479 GOPS。
  • 对于批量大小为40的情况,加速器实现了13.45 GOPS/W的能效,优于Titan XP GPU在小批量大小下的能效表现。
  • 权重更新层占每轮批量迭代总延迟的51%,主要由于对历史梯度和权重的DRAM访问。
  • 双缓冲技术通过隐藏内存访问延迟,将权重更新层的延迟降低了11%。
  • 1X CNN模型在50个周期后达到73%的CIFAR-10准确率,学习率为0.002,批量大小为40,与浮点基线性能一致。
  • 系统在小批量大小下表现出稳定可靠的训练性能,此类设置可提供更及时的梯度估计。
(a) Feedforward convolutions.
(a) Feedforward convolutions.

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

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