一种基于多块FPGA协同处理的神经网络加速方法技术

技术编号:21142208 阅读:22 留言:0更新日期:2019-05-18 05:28
本发明专利技术公开一种基于多块FPGA协同处理的神经网络加速方法,涉及神经网络优化领域;建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。

A Neural Network Acceleration Method Based on Multi-block FPGA Cooperative Processing

【技术实现步骤摘要】
一种基于多块FPGA协同处理的神经网络加速方法
本专利技术公开一种基于多块FPGA协同处理的神经网络加速方法,涉及神经网络优化领域。
技术介绍
神经网络(NeuralNetworks,NN)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统。神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。现有的神经网络模型中的一层还不能完善利用一块FPGA上进行并行实现,因此需要进行串行处理时降低了神经网络的处理性能,而采用多块FPGA的流水线分层实现就可以大大提升神经网络的处理性能。本专利技术提供一种基于多块FPGA协同处理的神经网络加速方法,利用本专利技术方法将所要实现的神经网络根据需要分层,以FPGA为基本单元进行流水化处理,实现在多块FPGA上分级数据处理,并可根据需要灵活实现最大吞吐量和最小延迟间的转换,提高了神经网络的能效比。SoC称为系统级芯片,也称片上系统,它是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。
技术实现思路
本专利技术针对现有技术的问题,提供一种基于多块FPGA协同处理的神经网络加速方法,可以大大实现提升神经网络的处理性能。本专利技术提出的具体方案是:一种基于多块FPGA协同处理的神经网络加速方法,建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。所述的方法中ZYNQ芯片根据参数分解的层次划分FPGA的流水级数,并且每一流水级数不止一个FPGA。所述的方法中每一流水级数的每个FPGA只实现整个神经网络的部分层的计算处理。所述的方法中具体步骤为:ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,判断实现网络模型以及实现神经网络是吞吐量优先还是延迟优先,ZYNQ芯片根据优先级将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,ZYNQ芯片将待处理的数据发送到流水级数为第一级的FPGA中,第一级的FPGA进行神经网络某一层或几层的计算处理,处理之后将第一级FPGA处理结果发送到第二级FPGA,第二级FPGA进行神经网络某一层或几层的计算处理,直至流水级数为最后一级的FPGA处理数据完成。所述的方法中网络模型的参数分解的层次小于设定值时,每一块FPGA只进行神经网络一层的计算处理,使吞吐量最大化。一种基于多块FPGA协同处理的神经网络加速器,包括神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。所述的加速器中神经网络加速板卡上的ZYNQ芯片根据参数分解的层次划分FPGA的流水级数,并且每一流水级数不止一个FPGA。所述的加速器中通过高速网口进行神经网络加速板卡间板级互联,所述的加速器能处理更大规模的神经网络。本专利技术的有益之处是:本专利技术提供一种基于多块FPGA协同处理的神经网络加速方法,建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成;利用本专利技术方法将所要实现的神经网络根据需要分层,以FPGA为基本单元进行流水化处理,实现在多块FPGA上分级数据处理,并可根据需要灵活实现最大吞吐量和最小延迟间的转换,提高了神经网络的能效比。附图说明图1是本专利技术方法流程示意图;图2是本专利技术加速器板卡上芯片连接示意图。具体实施方式本专利技术提供一种基于多块FPGA协同处理的神经网络加速方法,建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。同时提供与上述方法相对应的一种基于多块FPGA协同处理的神经网络加速器,包括神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定。利用本专利技术方法或加速器,处理某一神经网络的数据,过程如下:建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片同各个FPGA芯片通过高速串行接口连接到互联芯片进行互联,ZYNQ上的ARM处理器运行LINUX系统,ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,判断实现网络模型以及实现神经网络是吞吐量优先还是延迟优先,ZYNQ芯片根据优先级将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,每块FPGA实现神经网络所需的卷积、池化、激活等基本单元,按照参数分解的层次ZYNQ芯片下发相应参数到相应流水级数的FPGA的外部存储中,ZYNQ芯片根据网络模型下发指令组合FPGA实现神经网络各层的网络,每一流水级数的每个FPGA只实现整个神经网络的部分层的计算处理,ZYNQ芯片根据流水级数,将数据处理需要的FPGA依次上电,对不需要的FPGA不启动,同时根据神经网络模型将指令发送到各个FPGA的FIFO中进行存储,以决定每次启动哪些卷积计算单元,ZYNQ随后将待处理的数据发送到流水级数为第一级的FPGA中,第一级的FPGA进行神本文档来自技高网...

【技术保护点】
1.一种基于多块FPGA协同处理的神经网络加速方法,其特征是建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。

【技术特征摘要】
1.一种基于多块FPGA协同处理的神经网络加速方法,其特征是建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。2.根据权利要求1所述的方法,其特征是ZYNQ芯片根据参数分解的层次划分FPGA的流水级数,并且每一流水级数不止一个FPGA。3.根据权利要求1或2所述的方法,其特征是每一流水级数的每个FPGA只实现整个神经网络的部分层的计算处理。4.根据权利要求3所述的方法,其特征是具体步骤为:ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,判断实现网络模型以及实现神经网络是吞吐量优先还是延迟优先,ZYNQ芯片根据优先级将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,ZYNQ芯片将待处理的数据发送到流水级数为第一级的FPGA...

【专利技术属性】
技术研发人员:秦刚姜凯于治楼
申请(专利权)人:济南浪潮高新科技投资发展有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1