【技术实现步骤摘要】
一种基于FPGA的神经网络运算方法、装置及设备
本申请涉及人工智能领域,特别是涉及一种基于FPGA的神经网络运算方法、装置及设备。
技术介绍
由于FPGA(FieldProgrammableGateArray,现场可编程逻辑门阵列),具有并行执行数据运算的能力,并且结构灵活,能够实现数据运算的流水线设计,因此当前往往使用FPGA对训练得到的神经网络模型进行推理运算。FPGA的片上内存是设置于FPGA芯片上的内存介质,具有较高的数据读写效率,进而在通过FPGA进行神经网络模型的推理运算时,均会使用FPGA的片上内存为计算逻辑提供数据,但由于FPGA的片上内存的额定资源有限,因此在对神经网络模型进行推理运算时,可能无法将神经网络模型完整写入单个FPGA的片上内存,进而难以确保基于FPGA执行神经网络模型的推理运算的整体效率。由此可见,提供一种基于FPGA的神经网络运算方法,以相对确保基于FPGA执行神经网络模型的推理运算的整体效率,是本领域技术人员需要解决的问题。
技术实现思路
本申请的目的是 ...
【技术保护点】
1.一种基于FPGA的神经网络运算方法,其特征在于,包括:/n获取神经网络模型;/n统计多个FPGA对应的片上内存容量;/n根据各所述FPGA的片上内存容量,将所述神经网络模型拆分为具有相应数据量的子模型;其中,各所述子模型的数据量不大于所对应的所述FPGA的片上内存容量;/n将所述子模型分配至对应所述FPGA的片上内存;/n根据各所述子模型之间的执行顺序设定相应各所述FPGA之间的数据流向,并根据所述执行顺序依次控制各所述FPGA基于相应的所述子模型执行神经网络运算。/n
【技术特征摘要】
1.一种基于FPGA的神经网络运算方法,其特征在于,包括:
获取神经网络模型;
统计多个FPGA对应的片上内存容量;
根据各所述FPGA的片上内存容量,将所述神经网络模型拆分为具有相应数据量的子模型;其中,各所述子模型的数据量不大于所对应的所述FPGA的片上内存容量;
将所述子模型分配至对应所述FPGA的片上内存;
根据各所述子模型之间的执行顺序设定相应各所述FPGA之间的数据流向,并根据所述执行顺序依次控制各所述FPGA基于相应的所述子模型执行神经网络运算。
2.根据权利要求1所述的基于FPGA的神经网络运算方法,其特征在于,所述根据各所述FPGA的片上内存容量,将所述神经网络模型拆分为具有相应数据量的子模型,包括:
统计所述神经网络模型中各网络层的层数据量;
基于各所述网络层的层数据量以及各所述FPGA的片上内存容量,依次计算各所述FPGA对应的目标网络层;
在所述神经网络模型中拆分得到各所述目标网络层对应的所述子模型。
3.根据权利要求2所述的基于FPGA的神经网络运算方法,其特征在于,所述层数据量包括参数量以及过程数据量;其中,所述过程数据量为相应所述网络层执行神经网络运算过程中产生数据的数据量。
4.根据权利要求3所述的基于FPGA的神经网络运算方法,其特征在于,统计所述神经网络模型中各网络层的参数量以及过程数据量,包括:
基于所述神经网络模型中各所述网络层的过滤器数量、通道数量以及卷积核尺寸统计得到相应的所述参数量,以及基于各所述网络层中所述过滤器数量以及中间数据的尺寸统计得到相应的所述过程数据量。
5.根据权利要求1所述的基于FPGA的神经网络运算方法,其特征在于,在所述统计多个FPGA对应的片上内存容量之前,所述方法还包括:
判断所述神经网络模型的数据量是否大于一个FPGA的片上内存容量;
如果所述神经网络模型的数据量大于一个FPGA的片上内存容量,则执行所述统计多个FPGA对应的片上内存容量的步骤。
6....
【专利技术属性】
技术研发人员:仝培霖,朱克峰,赵红博,
申请(专利权)人:浪潮北京电子信息产业有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。