[论文解读] A Design Methodology for Efficient Implementation of Deconvolutional Neural Networks on an FPGA
本文提出了一种三步法FPGA设计方法,用于高效实现反卷积神经网络(DCNNs),通过反向循环、步长孔跳过和VLSI优化,加速反卷积运算。该方法在Xilinx Zynq-7000 FPGA上实现了0.012 GOPs/DSP的峰值性能密度,位宽分析表明12位精度在生成质量与资源效率之间达到最佳平衡。
In recent years deep learning algorithms have shown extremely high performance on machine learning tasks such as image classification and speech recognition. In support of such applications, various FPGA accelerator architectures have been proposed for convolutional neural networks (CNNs) that enable high performance for classification tasks at lower power than CPU and GPU processors. However, to date, there has been little research on the use of FPGA implementations of deconvolutional neural networks (DCNNs). DCNNs, also known as generative CNNs, encode high-dimensional probability distributions and have been widely used for computer vision applications such as scene completion, scene segmentation, image creation, image denoising, and super-resolution imaging. We propose an FPGA architecture for deconvolutional networks built around an accelerator which effectively handles the complex memory access patterns needed to perform strided deconvolutions, and that supports convolution as well. We also develop a three-step design optimization method that systematically exploits statistical analysis, design space exploration and VLSI optimization. To verify our FPGA deconvolutional accelerator design methodology we train DCNNs offline on two representative datasets using the generative adversarial network method (GAN) run on Tensorflow, and then map these DCNNs to an FPGA DCNN-plus-accelerator implementation to perform generative inference on a Xilinx Zynq-7000 FPGA. Our DCNN implementation achieves a peak performance density of 0.012 GOPs/DSP.
研究动机与目标
- 为解决反卷积神经网络(DCNNs)缺乏高效FPGA加速器的问题,而DCNNs在图像超分辨率和图像到图像翻译等生成视觉任务中至关重要。
- 开发一种系统化的设计方法,通过平衡性能、功耗和资源利用率,优化FPGA上的DCNN推理。
- 通过有限精度算术下生成质量的定量分析,识别DCNN推理中最经济高效的位宽精度。
- 通过硬件感知的算法适配和VLSI级优化,实现在FPGA上高吞吐量、低延迟的反卷积运算。
提出的方法
- 提出一种采用反向循环和步长孔跳过的反卷积加速器,以高效处理分步反卷积中的复杂内存访问模式,复用卷积加速器架构。
- 采用三步法方法:(1) 使用RMMD检验进行统计分析,评估不同位宽下的生成质量;(2) 基于屋顶线模型的设计空间探索,以平衡内存带宽与吞吐量;(3) 通过循环展开、流水线、寄存器插入和内存分区实现VLSI优化。
- 使用12位定点数算术运算,通过p值与功耗权衡分析确定为最优,并使用Vivado HLS实现所有操作,采用ap_fixed.h和流式数据结构。
- 通过Zynq-7000系统将训练好的基于GAN的DCNN(在MNIST和CelebA数据集上)映射到FPGA,其中ARM处理器负责数据传输和配置,加速器负责计算。
- 对内层循环应用循环展开和流水线,实现恒定周期执行,并插入寄存器以减少BRAM写入并改善关键路径时序。
- 通过带有AXI-Stream接口和基于BRAM的片上内存的框图验证设计,实现48% LUT、95% DSP和48% BRAM利用率。
实验结果
研究问题
- RQ1在FPGA上实现DCNN推理时,何种位宽精度能最佳平衡生成质量与硬件效率?
- RQ2鉴于反卷积运算具有复杂的内存访问模式,如何高效地将其映射到FPGA硬件?
- RQ3何种设计空间探索策略能实现DCNN中内存带宽与加速器吞吐量之间的最优权衡?
- RQ4VLSI级优化(如循环展开和寄存器插入)在不增加资源开销的前提下,能在多大程度上提升性能?
主要发现
- 12位定点精度被确定为最优,其p值×最小松弛和p值/功耗权衡指标最高,表明在生成质量与效率之间达到最佳平衡。
- 所提出的反卷积加速器在Xilinx Zynq-7000 FPGA上实现了0.012 GOPs/DSP的峰值性能密度,优于以往基于FPGA的CNN加速器,效率更高。
- 基于屋顶线模型的设计空间探索识别出CelebA DCNN第一层的最优配置,最佳解位于屋顶线左上角,表明高吞吐量和低内存带宽压力。
- 视觉评估显示,12位精度下图像质量退化可忽略,仅在8位精度时出现显著退化,证实了统计分析结果。
- 布局布线后的资源利用率显示:95% DSP、48% LUT、29% FF和48% BRAM,表明资源映射高效,通过乒乓缓冲技术仍有进一步优化空间。
- 该方法成功实现在FPGA上的高质量生成推理,MNIST和CelebA数据集生成的面部和数字图像在12位精度下表现出良好的视觉保真度。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。