以在现场可编程门阵列(FPGA)上部署卷积神经网络为背景,提出了卷积神经网络在硬件上进行并行加速的方案.主要是通过分析卷积神经网络的结构特点,对数据的存储、读取、搬移以流水式的方式进行,对卷积神经网络中的每一层内的卷积运算单元进行展开,加速乘加操作. 基于FPGA特有的并行化结构和流水线的处理方式可以很好地提升运算效率,从对ciafr-10数据集的物体分类结果看,在不损失正确率的前提下,当时钟工作在800 MHz时,相较于中端的Intel处理器,可实现4倍左右的加速.卷积神经网络通过循环展开并行处理以及多级流水线的处理方式,可以加速卷积神经网络的前向传播,适合于实际工程任务中的需要.
In this paper, the convolutional neural network is deployed on the Field Programmable Gate Array(FPGA). As a background, a convolutional neural network is proposed to accelerate hardware. The paper analyzes the structural characteristics of convolutional neural networks, stores, reads, and moves data in a stream-style manner. Next, the convolution unit in each layer of the convolutional neural network is expanded to speed up the multiplication and addition operations. Based on the(FPGA)unique parallel structure, pipeline processing method can effectively improve the efficiency of the operation. From object classification results for the ciafr-10 dataset, at 800MHz operating frequency and without loss of accuracy, FPGA compared to General purpose processor can achieve 4 times speed up, Convolutional neural network through parallel process and multi-stage pipeline process can accelerate forward propagation of convolutional neural networks, being suitable for the demand of practical engineering tasks.
[1] LI H, FAN X, JIAO L, et al. A high performance FPGA-based accelerator for large-scale convolutional neural networks[C] //IEEE, 26th International Conference on Field Programmable Logic and Applications, 2016:1-9. DOI: 10.1109/FPL. 2016. 7577308.
[2] ZHANG C, LI P, SUN G, et al. Optimizing FPGA-based accelerator design for deep convolutional neural networks[C] //ACM, Proceedings of the 2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, 2015:161-170. DOI: 10.1145/2684746. 2689060.
[3] FARABET C, POULET C, HAN J Y, et al. CNP: An FPGA-based processor for convolutional networks[C] // IEEE, International Conference on Field Programmable Logic and Applications, 2009:32-37. DOI: 10.1109/FPL. 2009. 5272559.
[4] PERKO M, FAJFAR I, TUMA T, et al. Low-cost, high-performance CNN simulator implemented in FPGA[C] //IEEE, Proceedings of the 2000 6th IEEE International Workshop on Cellular Neural Networks and Their Applications, 2000:277-282. DOI: 10. 1109/CNNA. 2000. 876858.
[5] FARABET C, POULET C, LECUN Y. An FPGA-based stream processor for embedded real-time vision with Convolutional Networks[C] // IEEE, 12th International Conference on Computer Vision Workshops, 2009:878-885. DOI: 10. 1109/ICCVW. 2009. 5457611.
[6] SANKARADAS M, JAKKULA V, CADAMBI S, et al. A massively parallel coprocessor for convolutional neural networks[C] //IEEE, 20th IEEE International Conference on Application-Specific Systems, Architectures and Processors, 2009:53-60. DOI: 10.1109/ASAP.2009.25.
[7] MA Y, CAO Y, VRUDHULA S, et al. Optimizing loop operation and dataflow in FPGA acceleration of deep convolutional neural networks[C] //ACM, Proceedings of the 2017 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, 2017:45-54. DOI:10.1145/3020078.3021736.
[8] CHANG J W, KANG S J. Optimizing FPGA-based convolutional neural networks accelerator for image super-resolution[C] //IEEE Press, Proceedings of the 23rd Asia and South Pacific Design Automation Conference, 2018: 343-348. DOI: 10.1109/ASPDAC.2018.8297347.
[9] GARCIA C, DELAKIS M. A neural architecture for fast and robust face detection [C] //IEEE, 16th International Conference on Pattern Recognition. 2002, 2(11):44-47. DOI: 10.1109/ICPR.2002.1048232.
[10] DELAKIS M, GARCIA C. Text detection with convolutional neural networks[C] // Proceedings of the Third International Conference on Computer Vision Theory and Applications, 2008:290-294.
[11] ZHANG C, LI P, SUN G, et al. Optimizing FPGA-based accelerator design for deep convolutional neural networks[C] //ACM, Proceedings of the 2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, 2015:161-170. DIO: 10.1145/2684746.2689060.
[12] PEEMEN M, SETIO A A A, MESMAN B, et al. Memory-centric accelerator design for convolutional neural networks[C] //Proceedings of the 2013 IEEE 31th International Conference on Computer Design, 2013:13-19. DOI: 10.1109/ICCD.2013.6657019.
[13] LI N, TAKAKI S, TOMIOKAY Y, et al. A multistage dataflow implementation of a deep convolutional neural network based on FPGA for high-speed object recognition[C] //IEEE, 2016 IEEE Southwest Symposium on Image Analysis and Interpretation, 2016:165-168. DOI: 10.1109/SSIAI.2016.7459201.
[14] BACIS M, NATALE G, SOZZO E D, et al. A pipelined and scalable dataflow implementation of convolutional neural networks on FPGA[C] //IEEE, Parallel and Distributed Processing Symposium Workshops, 2017:90-97. DOI:10.1109/IPDPSW.2017.44.
[15] NATALE G, BACIS M, SANTAMBROGIO M D. On how to design dataflow FPGA-based accelerators for convolutional neural networks[C] //IEEE, 2017 IEEE Computer Society Annual Symposium on VLSI, 2017:639-644. DOI: 10.1109/ISVLSI.2017.126.