[发明专利]一种基于FPGA的神经网络运算方法、装置及设备在审
申请号: | 202010614610.6 | 申请日: | 2020-06-30 |
公开(公告)号: | CN111860810A | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 仝培霖;朱克峰;赵红博 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06F15/78 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 丁曼曼 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 神经网络 运算 方法 装置 设备 | ||
本申请公开了一种基于FPGA的神经网络运算方法、装置、设备及存储介质。该方法的步骤包括:获取神经网络模型;统计多个FPGA对应的片上内存容量;根据各FPGA的片上内存容量,将神经网络模型拆分为具有相应数据量的子模型;其中,各子模型的数据量不大于所对应的FPGA的片上内存容量;将子模型分配至对应FPGA的片上内存;根据各子模型之间的执行顺序设定相应各FPGA之间的数据流向,并根据执行顺序依次控制各FPGA基于相应的子模型执行神经网络运算。确保了基于FPGA执行神经网络模型的推理运算的整体效率。此外,本申请还提供一种基于FPGA的神经网络运算装置、设备及存储介质,有益效果同上所述。
技术领域
本申请涉及人工智能领域,特别是涉及一种基于FPGA的神经网络运算方法、装置及设备。
背景技术
由于FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列),具有并行执行数据运算的能力,并且结构灵活,能够实现数据运算的流水线设计,因此当前往往使用FPGA对训练得到的神经网络模型进行推理运算。
FPGA的片上内存是设置于FPGA芯片上的内存介质,具有较高的数据读写效率,进而在通过FPGA进行神经网络模型的推理运算时,均会使用FPGA的片上内存为计算逻辑提供数据,但由于FPGA的片上内存的额定资源有限,因此在对神经网络模型进行推理运算时,可能无法将神经网络模型完整写入单个FPGA的片上内存,进而难以确保基于FPGA执行神经网络模型的推理运算的整体效率。
由此可见,提供一种基于FPGA的神经网络运算方法,以相对确保基于FPGA执行神经网络模型的推理运算的整体效率,是本领域技术人员需要解决的问题。
发明内容
本申请的目的是提供一种基于FPGA的神经网络运算方法,以相对确保基于FPGA执行神经网络模型的推理运算的整体效率。
为解决上述技术问题,本申请提供一种基于FPGA的神经网络运算方法,包括:
获取神经网络模型;
统计多个FPGA对应的片上内存容量;
根据各FPGA的片上内存容量,将神经网络模型拆分为具有相应数据量的子模型;其中,各子模型的数据量不大于所对应的FPGA的片上内存容量;
将子模型分配至对应FPGA的片上内存;
根据各子模型之间的执行顺序设定相应各FPGA之间的数据流向,并根据执行顺序依次控制各FPGA基于相应的子模型执行神经网络运算。
优选地,根据各FPGA的片上内存容量,将神经网络模型拆分为具有相应数据量的子模型,包括:
统计神经网络模型中各网络层的层数据量;
基于各网络层的层数据量以及各FPGA的片上内存容量,依次计算各FPGA对应的目标网络层;
在神经网络模型中拆分得到各目标网络层对应的子模型。
优选地,层数据量包括参数量以及过程数据量;其中,过程数据量为相应网络层执行神经网络运算过程中产生数据的数据量。
优选地,统计神经网络模型中各网络层的参数量以及过程数据量,包括:
基于神经网络模型中各网络层的过滤器数量、通道数量以及卷积核尺寸统计得到相应的参数量,以及基于各网络层中过滤器数量以及中间数据的尺寸统计得到相应的过程数据量。
优选地,在统计多个FPGA对应的片上内存容量之前,方法还包括:
判断神经网络模型的数据量是否大于一个FPGA的片上内存容量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010614610.6/2.html,转载请声明来源钻瓜专利网。