[论文解读] PipeCNN: An OpenCL-Based FPGA Accelerator for Large-Scale Convolution Neuron Networks
本文提出 PipeCNN,一种基于 OpenCL 的 FPGA 加速器,用于大规模卷积神经网络(CNN),通过深度流水线内核和数据重用技术提升性能与资源效率。通过充分利用 FPGA 的流水线能力并优化内核映射,PipeCNN 在相比先前工作减少 34% DSP 使用量的前提下,实现 33.9 GOPS 的性能,同时支持全精度(32 位浮点)推理与训练兼容性。
Convolutional neural networks (CNNs) have been widely employed in many applications such as image classification, video analysis and speech recognition. Being compute-intensive, CNN computations are mainly accelerated by GPUs with high power dissipations. Recently, studies were carried out exploiting FPGA as CNN accelerator because of its reconfigurability and energy efficiency advantage over GPU, especially when OpenCL-based high-level synthesis tools are now available providing fast verification and implementation flows. Previous OpenCL-based design only focused on creating a generic framework to identify performance-related hardware parameters, without utilizing FPGA's special capability of pipelining kernel functions to minimize memory bandwidth requirement. In this work, we propose an FPGA accelerator with a new architecture of deeply pipelined OpenCL kernels. Data reuse and task mapping techniques are also presented to improve design efficiency. The proposed schemes are verified by implementing two representative large-scale CNNs, AlexNet and VGG on Altera Stratix-V A7 FPGA. We have achieved a similar peak performance of 33.9 GOPS with a 34% resource reduction on DSP blocks compared to previous work. Our design is openly accessible and thus can be reused to explore new architectures for neural network accelerators.
研究动机与目标
- 解决 GPU 基于 CNN 加速器在嵌入式系统中功耗高且可扩展性有限的问题。
- 克服先前基于 OpenCL 的 FPGA 设计在流水线和内存带宽优化方面利用不足的局限性。
- 开发一种高性能、可扩展且可重用的 FPGA 加速器,用于大规模 CNN,基于 OpenCL 和高层次综合技术。
- 探索并优化 Stratix-V A7 FPGA 上流水线内核用于 CNN 推理的设计空间。
- 为未来神经网络加速器设计研究提供开源、可重用的框架。
提出的方法
- 该架构使用四个 OpenCL 内核——卷积、池化、局部响应归一化(LRN)和全连接层——通过 OpenCL 通道连接,实现数据流处理。
- 采用深度流水线内核设计,以最大化吞吐量并最小化内存带宽压力。
- 应用数据重用和任务映射技术,减少冗余内存访问并提升数据局部性。
- 使用 32 位浮点精度,以确保与训练中前向传播和反向传播的完全兼容。
- 在 LRN 内核中采用分段线性逼近(pwlf)方法,以极小的面积开销高效计算归一化。
- 通过调整向量大小(VEC_SIZE)和计算单元数量(CU_NUM)进行设计空间探索,以优化性能与资源使用。
实验结果
研究问题
- RQ1如何有效利用流水线 OpenCL 内核,以减少基于 FPGA 的 CNN 加速器中的内存带宽压力?
- RQ2在 Stratix-V A7 FPGA 上,向量大小与计算单元数量的最优配置为何,可实现性能与资源效率的最大化?
- RQ3基于 OpenCL 的 FPGA 加速器是否能实现与先前 HSL 设计相当的性能,同时显著降低 DSP 资源使用?
- RQ4在基于 FPGA 的 CNN 加速器中,全精度(32 位浮点)计算在性能与资源利用方面的影响程度如何?
- RQ5与现有基于 FPGA 的 CNN 加速器相比,所提出的架构在性能密度(每 DSP 的 GOPS)方面表现如何?
主要发现
- PipeCNN 在 Stratix-V A7 FPGA 上实现峰值性能 33.9 GOPS,性能与先前工作相当,但使用的 DSP 块显著减少。
- 与 FPGA2016 工作相比,DSP 使用量降低 34%,性能密度达 0.21 GOPS/DSP,较基线提升 60%。
- DE5-net 板卡的最优配置为 VEC_SIZE=8 和 CU_NUM=16,AlexNet 推理时间达 43 ms,VGG-16 为 718 ms。
- 在较高 CU 数量下,内存带宽成为瓶颈,12.8 GB/s 的 DRAM 限制导致流水线停顿,性能提升趋于平缓。
- AlexNet 功耗为 27.3W,VGG-16 为 29.8W,尽管采用全精度计算,设计仍保持高效率。
- 该设计开源,可被未来神经网络加速器开发研究复用与扩展。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。