论文部分内容阅读
近年来,卷积神经网络已广泛应用于计算机视觉领域,随着网络深度的加深和相应数据库的增大,对硬件计算能力的需求也是成倍增长。同时随着IC设计和制造工艺的进步,具有高速、高密度的FPGA芯片得到了快速发展,主流的FPGA芯片通过集成大量的DSP硬核实现了高性能的乘法计算,使得FPGA芯片特别适合网络并行计算结构的实现,所以本文基于FPGA平台对卷积神经网络的加速计算进行了深入研究,主要研究内容包括以下3个方面:首先,卷积神经网络的各个硬件计算单元的计算效率决定着整个网络硬件架构的性能,所以如何设计和优化网络的各个硬件计算单元是首先需要解决的问题。本文通过对卷积神经网络算法的研究和实验,优化并减少了网络计算的复杂度,省去了在硬件上设计和实现复杂的计算模块,为卷积神经网络的硬件实现降低了难度,然后通过对各个方案的性能对比,本文选择了卷积层、池化层和全连接层的最优神经元硬件计算单元模块的设计方案。其次,应用场景的改变会使卷积神经网络的拓扑结构做出相应的调整,所以如何实现卷积层、池化层和全连接层的硬件计算模块参数化和通用性的设计同样是一个需要解决的问题。根据卷积神经网络前向传播过程的Verilog HDL代码结构,本文通过C++设计一个小型的中间件实现了网络各模块的参数化封装和网络计算模块的通用性设计,通过调用中间件里的函数生成所需要的Verilog HDL代码的顶层模块、中间层模块和底层模块。最后,由于FPGA芯片的片上资源是有限的,如何充分利用FPGA芯片上的资源实现最优的卷积神经网络计算加速架构是一个关键问题。本文首先通过实验分析卷积层、池化层和全连接层的硬件资源和并行神经元个数的关系曲线,然后在FPGA芯片资源约束条件下,通过资源占用的关系曲线建立卷积神经网络的最小前向传播时间和对应的各层并行神经元个数关系的数学模型,最后针对本文所选用的Virtex-7 XC7VX485T芯片,通过该数学模型实现最优的网络计算加速方案设计,本文方案的计算性能优于之前文献的方案,而能效比也和其他文献方案基本一致。