[论文解读] An OpenCL(TM) Deep Learning Accelerator on Arria 10
本论文提出了一种基于OpenCL的深度学习加速器(DLA),用于英特尔的Arria 10 FPGA,在AlexNet上实现了每秒1020张图像的处理速度,能效为23 img/s/W,通过在片上流缓冲区中缓存中间特征图,最大限度地减少了外部内存带宽,并利用Winograd变换降低了FLOPs。该DLA的吞吐量比先前的FPGA实现高出10倍,GFLOPS性能高出8.4倍,其能效与NVIDIA的TitanX GPU相当。
Convolutional neural nets (CNNs) have become a practical means to perform vision tasks, particularly in the area of image classification. FPGAs are well known to be able to perform convolutions efficiently, however, most recent efforts to run CNNs on FPGAs have shown limited advantages over other devices such as GPUs. Previous approaches on FPGAs have often been memory bound due to the limited external memory bandwidth on the FPGA device. We show a novel architecture written in OpenCL(TM), which we refer to as a Deep Learning Accelerator (DLA), that maximizes data reuse and minimizes external memory bandwidth. Furthermore, we show how we can use the Winograd transform to significantly boost the performance of the FPGA. As a result, when running our DLA on Intel's Arria 10 device we can achieve a performance of 1020 img/s, or 23 img/s/W when running the AlexNet CNN benchmark. This comes to 1382 GFLOPs and is 10x faster with 8.4x more GFLOPS and 5.8x better efficiency than the state-of-the-art on FPGAs. Additionally, 23 img/s/W is competitive against the best publicly known implementation of AlexNet on nVidia's TitanX GPU.
研究动机与目标
- 通过减少对外部内存的访问,克服基于FPGA的CNN推理中的内存带宽瓶颈。
- 与现有解决方案相比,提升FPGA加速CNN的能效和GFLOPS性能。
- 通过加速所有层(包括全连接层)实现在FPGA上的完整架构部署AlexNet。
- 在能效方面与高端GPU(如TitanX)相比具有竞争力。
- 为基于FPGA的DLA架构提供一种可扩展且经过分析优化的设计方法。
提出的方法
- DLA使用片上流缓冲区缓存中间特征图,将外部内存带宽降低一个数量级。
- 在全连接层中采用批处理技术,进一步减少片外内存访问。
- 通过向量化数据处理实现60%以上的DSP利用率,以最大化硬件效率。
- 在卷积运算中应用Winograd变换,以减少乘加操作的数量。
- 使用设计空间探索模型,针对给定的FPGA和CNN,分析性地优化资源使用和吞吐量。
- 整个系统使用OpenCL实现,以确保在Arria 10 FPGA上的可移植性和高级编程能力。
实验结果
研究问题
- RQ1在基于FPGA的CNN加速器中,对特征图进行片上缓存是否能显著降低外部内存带宽?
- RQ2在FPGA加速的卷积运算中,Winograd变换在多大程度上能降低计算复杂度?
- RQ3全流水线化、多层CNN加速器能否实现与高端GPU相当的性能和能效?
- RQ4内存优化与算法变换的结合如何提升FPGA上的GFLOPS和吞吐量?
- RQ5在Arria 10 FPGA上,如何实现资源利用率和向量化处理的最优配置以最大化吞吐量?
主要发现
- 当在Arria 10 1150 FPGA上以303 MHz运行时,该DLA在AlexNet基准测试中实现了每秒1020张图像的处理速度。
- 系统实现了每瓦23张图像的能效,与NVIDIA TitanX GPU的能效水平相当。
- DLA实现了1382 GFLOPS的性能,相比先前最先进的FPGA实现,吞吐量提高了10倍,GFLOPS性能高出8.4倍。
- 通过在片上流缓冲区中缓存特征图,外部内存带宽降低了整整一个数量级。
- Winograd变换减少了卷积运算中的乘加操作数量,从而提升了计算效率。
- 该设计实现了超过60%的DSP利用率,与先前的FPGA CNN加速器相比,显著提升了硬件资源效率。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。