[发明专利]一种基于FPGA的神经网络计算器生成方法及装置在审
申请号: | 201911002447.1 | 申请日: | 2019-10-21 |
公开(公告)号: | CN111027688A | 公开(公告)日: | 2020-04-17 |
发明(设计)人: | 罗国杰;戴拓;章嘉玺;张文泰 | 申请(专利权)人: | 浙江省北大信息技术高等研究院;杭州未名信科科技有限公司 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/10 |
代理公司: | 北京辰权知识产权代理有限公司 11619 | 代理人: | 刘广达 |
地址: | 311200 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 神经网络 计算器 生成 方法 装置 | ||
本发明公开了一种基于FPGA的神经网络计算器生成方法及装置,方法包括:确定神经网络中各网络层的依赖关系;对各网络层进行分组,每个分组中的网络层的依赖关系均相同,并确定每个分组需要的阵列块大小;依据各分组中的网络层的依赖关系和各分组需要的阵列块大小部署部署FPGA以得到所述神经网络的计算器。通过分析神经网络的依赖关系,将互不依赖(即依赖关系均相同)的网络层划为一分组,以在为其分配的阵列块中能实现并行计算,有效缩短关键路径长度,提升计算效率。另外根据依赖关系在FPGA上布局各分组需要的阵列块的位置,可以减少阵列间的数据交换,进一步提升计算效率。
技术领域
本发明涉及脉动阵列应用技术领域,具体涉及一种基于FPGA的神经网络计算器生成方法及装置。
背景技术
神经网络是在深度学习应用中常用的计算结构,这种计算结构的实现是在使用脉动阵列计算架构的FPGA上实现的。而使FPGA上的脉动阵列架构可以快速准确地进行大规模神经网络计算,是具有挑战性的设计问题,这需要考虑计算和通信两方面因素。
在现有技术中,为神经网络设计的计算架构包括的多块阵列中,通常存在阵列需串行计算的问题,导致关键路径长度较长,计算架构的计算效率较低,进而降低了脉动阵列架构的使用效率。
发明内容
本发明的目的是针对上述现有技术的不足提出的一种基于FPGA的神经网络计算器生成方法及装置,该目的是通过以下技术方案实现的。
本发明的第一方面提出了一种基于FPGA的神经网络计算器生成方法,所述方法包括:
确定神经网络中各网络层的依赖关系;
对各网络层进行分组,每个分组中的网络层的依赖关系均相同,并确定每个分组需要的阵列块大小;
依据各分组中的网络层的依赖关系和各分组需要的阵列块大小部署FPGA以得到所述神经网络的计算器。
本发明的第二方面提出了一种基于FPGA的神经网络计算器生成装置,所述装置包括:
第一确定模块,用于确定神经网络中各网络层的依赖关系;
第二确定模块,用于对各网络层进行分组,每个分组中的网络层的依赖关系均相同,并确定每个分组需要的阵列块大小;
生成模块,用于依据各分组中的网络层的依赖关系和各分组需要的阵列块大小部署FPGA以得到所述神经网络的计算器。
在本发明实施例中,通过确定神经网络中各网络层的依赖关系,并对各网络层进行分组,每个分组中的网络层的依赖关系均相同,然后确定每个分组需要的阵列块大小,并依据各分组中的网络层的依赖关系和各分组需要的阵列块大小部署FPGA以得到神经网络的计算器。
基于上述描述可知,通过分析神经网络的依赖关系,将互不依赖(即依赖关系均相同)的网络层划为一分组,以在为其分配的阵列块中能实现并行计算,有效缩短关键路径长度,提升计算效率。另外根据依赖关系在FPGA上布局各分组需要的阵列块的位置,可以减少阵列间的数据交换,进一步提升计算效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明根据一示例性实施例示出的一种神经网络结构示意图;
图2为本发明根据图1所示神经网络在FPGA上的计算架构示意图;
图3A为本发明根据一示例性实施例示出的一种基于FPGA的神经网络计算器生成方法的实施例流程图;
图3B为本发明根据图1所示神经网络在FPGA上的计算结构示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江省北大信息技术高等研究院;杭州未名信科科技有限公司,未经浙江省北大信息技术高等研究院;杭州未名信科科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911002447.1/2.html,转载请声明来源钻瓜专利网。