论文部分内容阅读
随着物联网、自动驾驶、智能安防等人工智能应用新兴领域的快速发展,与此对应的数据体量和计算量增长对处理器计算性能的要求不断增高。类似卷积神经网络这种面向数据计算密集型任务,对单块计算设备的硬件资源要求极高。为此,本文采用多板异构的方式,提出了一种让FPGA集群作为神经网络的加速设备。一方面多块FPGA可以灵活提高可使用的硬件资源,一方面具有较好的能效比。本文重点从FPGA集群异构平台设计,面向卷积神经网络FPGA集群异构平台的实现和面向卷积神经网络的FPGA集群异构平台优化三个关键问题入手,完成基于FPGA集群异构平台的卷积神经网络优化设计。论文的主要工作如下:1.面向卷积神经网络的硬件加速需求,提出了一种基于FPGA集群异构平台的模块级流水线结构。该方法将FPGA集群作为神经网络的推断加速器,可以根据不同的神经网络规模灵活地调整算力,并同时兼具高能效比的特点。将对外连接主节点FPGA上的ARM核作为异构平台的控制端,负责板内数据传输和与上位机通讯。将FPGA集群作为异构结构的协处理器端,主要负责卷积神经网络的执行。在FPGA集群处理过程,采取一种模块级流水线的优化策略,将卷积神经网络按运行时间拆分为子模块,由不同节点分别执行。从单次处理流程看,任务是由不同模块按顺序执行。在大规模任务处理情况下,模块间采取流水线思想,各模块可以并行处理。并在后续基于Le Net-5和Alex Net网络实现验证。2.完成了FPGA集群异构平台的设计实现与验证分析。结果表明:对于Le Net-5网络,相比于单块FPGA执行方式,使用FPGA集群异构方法在处理时间缩短到单板开发所需时间的38.94%。本文设计的最大吞吐率提高到单板开发方式的2.57倍,查找表(LUT)的资源转换效率提高到单板开发的2.61倍,能效比方面提高到单板开发的2.82倍。对于Alex Net网络,相比于单块FPGA执行方式,使用FPGA集群异构方法在处理时间缩短到单板开发所需时间的17.74%。本文设计最大吞吐率提高到单板开发方式的5.64倍,DSP的资源转换效率提高到单板开发的3.11倍,查找表(LUT)的资源转换效率提高到单板开发的2.39倍,能效比方面提高到单板开发的1.05倍,满足设计要求。3.完成了吞吐率和能效比的优化设计。基于协处理器中模块级流水线的处理方式,在定量分析板间的数据传输延时的基础上,提出了将板间通信延时作为流水线一级的优化设计方案。同时,本文提出资源转换效率(RCE)的评价方式,定量地衡量单位资源对于吞吐率的贡献程度。结果表明:对于实现Alex Net的FPGA集群异构平台,使用该优化设计将吞吐率提升到了该方案已有程度的105.19%,满足设计要求。4.针对卷积神经网络模块划分的优化,提出了一种基于二分法的任务匹配优化设计。该设计将卷积神经网络的不同层为不可拆分的最小单元,并通过屋顶线模型分析不同情况时的吞吐率瓶颈,并借鉴二分法思想迭代计算得出最优划分结果,并建立了总时间离散程度(TTD)的定量评估方法。结果表明:对于实现Le Net的FPGA集群异构平台,使用该优化设计将吞吐率提升到了该方案已有程度的109.68%;对于实现Alex Net的FPGA集群异构平台,使用该优化设计将吞吐率提升到了该方案已有程度的106.07%,满足设计要求。