论文部分内容阅读
随着人工智能和大数据时代的到来,卷积神经网络(convolutional neural network,CNN)的关注度越来越高。卷积神经网络是一种多层神经网络,对其进行深入的研究在图像分类、模式识别[1]、物体检测、视频监控[2]、机器视觉[3]和科学计算等领域具有重要的研究意义和应用价值。卷积神经网络是一种前馈网络结构,层与层之间计算相互独立,具有很高的并行性[4]。因此越来越多的研究者采用FPGA开发基于卷积神经网络的应用[5][6][7]。现场可编辑门阵列(Field Programmable Gate Array,FPGA)作为一种可编程的逻辑器件具有可编程逻辑资源丰富、高性能、低功耗等优点。而基于FPGA+CPU的异构计算采用了面向OpenCL(Open Computing Language,开放运算语言)标准的开发方式,不仅充分利用了FPGA高度并行性和低功耗的特点,而且具有更短的开发周期和良好的性能。本文首先对卷积神经网络的基本概念以及应用场景进行了研究分析。由于卷积神经网络具有独特的网络拓扑结构,因此紧接着对卷积神经网络的结构特点及其工作原理进行了分析。CNN特有的结构特性,使其存在多种并行模式,充分开发卷积神经网络的并行特性对于CNN的并行运算至关重要。因此本文对CNN不同层之间、卷积计算之间等各种并行模型的优缺点进行了详细的分析。本文采用的是CPU+FPGA的异构计算方式对卷积神经网络进行优化加速的,因此本文对OpenCL标准的基本结构模型进行了分析,并给出数据并行、任务并行和访存的优化策略。然后利用DE5-NET FPGA开发板搭建了CPU+FPGA的异构实验平台。并针对FPGA特有的逻辑结构,设计了基于FPGA异构计算的设计流程和总体架构。本文最后以无人车的卷积神经网络算法为实验对象,分析该算法的内在并行性,并在DE5-NET FPGA开发平台上用OpenCL标准实现内核算法。采用局部内存、向量化和计算单元复制以及循环展开的优化策略对无人车CNN的内核代码进行优化。经过优化后的算法处理单张道路图像的运算时间达到了96.85ms,实际吞吐量可以达到49.5GFLOP。最后与CPU平台对比加速效果和运算功耗,实验结果表明,采用CPU+FPGA的异构计算方法实现无人车CNN获得的加速效果是CPU的3.19倍,而功耗却是CPU的10/186。结果表明,与传统的方式相比,本文设计的基于FPGA平台的面向OpenCL标准的并行加速体系在保证算法正确性的基础上,有效的提高了计算效率,并明显的降低了系统的功耗,为实现大规模卷积神经网络提供了理论指导。