论文部分内容阅读
卷积神经网络(Convolutional Neural Network,CNN)是深度学习的一个分支,这种网络擅长图像的解析与识别。它使用了其独特的网络结构,改善了传统的算法对大批量图像处理识别结果,运用其权值共享、子采样等技术,有效地解决了图像形变和位移等非线性特征提取和识别的问题。鉴于图像卷积计算的特性,海量以及重复的乘加运算需要极大的运算资源和大规模带宽存储资源。近年来,随着人工智能的发展热潮,为深度神经网络寻找和设计性能和效率更适合的引擎逐渐随之成为了一个热点。由此,本文从卷积神经网络的模型特点出发,结合了 FPGA硬件的优势,从软件算法和硬件资源两个层次重新分析模型的并行性,设计了一种基于FPGA的卷积网络加速引擎。首先为了提高卷积网络的处理速度,本文提出了一种将卷积核循环映射到实际电路中的整体加速方案。因FPGA片上资源限制,全并行CNN网络无法实现,只能将部分功能移植到FPGA中加速计算。在后面的实验部分着重比较了在资源约束的情况下不同方案的计算结构带来的性能差异,实现了最大化加速计算,提升计算数据吞吐率,降低无效数据搬运带来的效能损耗。其次针对以往嵌入式FPGA异构架构开发过程慢的过程进行体验与改进,基于最新的SDSoC全系统优化编译器,设计了卷积神经网络C++代码,加快整体开发周期。在实验验证环节,提出了一种基于Xilinx的Zedboard平台简单有效地网络模型Lenet-5模型。在针对MINST数据集的测试中,达到了相对于单纯CPU平台比较好的加速效果。通过使用Vivado HLS高层次综合工具,针对卷积网络的卷积和池化操作,采用流水线、循环展开、数组分块等加速策略,设计实现了效率优化的加速器IP核。全系统设计连接方案将会使用Xilinx SDSoC,比较不同数据通路带来的效能影响,探索数据传输和数据处理的最优化方案。实验结果显示,通过并行化卷积IP和整体架构设计,能以较高的数据吞吐率和较好的并行性,卷积网络处理速度达到了满意效果。