当前位置: 首页 > 专利查询>南京大学专利>正文

一种多层前馈神经网络并行加速器制造技术

技术编号:19264032 阅读:30 留言:0更新日期:2018-10-27 02:41
本发明专利技术的多层前馈神经网络并行加速器,包括:主控制模块,控制整个计算流程;系数地址生成模块,生成系数的地址,将所述系数的地址输出;并接收存储控制模块的系数数据,将系数数据拆分后输出;操作数地址生成模块,生成操作数的存储地址并输出;接收存储控制模块的操作数数据,将数据拆分后并输出;前馈网络计算模块,接收拆分后的系数数据与操作数数据,包含若干路并行计算的计算单元;神经元地址生成模块,接收前馈网络计算模块计算得到的神经元数据,生成神经元的存储地址和神经元数据,并将所述神经元的存储地址和神经元数据输出。有益效果:可扩展性好,并行度可调,加速比高;支持流水操作,资源消耗少。

【技术实现步骤摘要】
一种多层前馈神经网络并行加速器
本专利技术属于硬件加速领域,尤其涉及一种多层前馈神经网络并行加速器。
技术介绍
人工智能算法使人们的生活越来越便捷,但是随着应用需求的不断变化,算法复杂度也越来越高。伴随着算法复杂度的提高,人工智能算法对于硬件功耗和速度的要求也日益提升。神经网络是由具有适应性的简单单元组成的广泛并行的互联网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。多层前馈神经网络在操作数检索、机器视觉、安防监控等领域得到了越来越广泛的应用。记多层前馈神经网络第j个隐含层神经元的输入为,第i个操作数为,对应系数为,则有:目前,现有的大部分多层前馈神经网络实现是基于CPU或者NVIDIAGPU实现的。对于计算密集型算法,数据的搬移和运算效率越高的能耗比就越高。但GPU和CPU都是属于通用处理器,都需要进行取指令、指令译码、指令执行的过程,通过这种方式屏蔽了底层IO的处理,使得软硬件解耦,但带来数据的搬移和运算无法达到更高效率。而GPU和CPU之间的能耗比的差距,主要在于CPU中晶体管有大部分用在Cache和控制逻辑单元,所以CPU相比GPU来说,对于计算密集同时计算复杂度低的算法,有冗余的晶体管无法发挥作用,能耗比上CPU低于GPU。上述两种实现方式能耗较大,扩展性不好,如何使多层前馈神经网络运行的更快,更节能,扩展性更好成为了热点问题。
技术实现思路
本专利技术的目的是克服上述
技术介绍
中多层前馈神经网络实现方式的的不足,提出一种多层前馈神经网络并行加速器设计方法,支持系数点数和神经元数量可变,硬件可裁剪,支持并行和流水操作,资源消耗少,具体通过以下技术方案来实现的:所述多层前馈神经网络并行加速器包括:主控制模块,接收系统启动信号,控制整个计算流程;系数地址生成模块,根据主控制模块的数据划分和系数数据的存储方式,生成系数的地址,将所述系数的地址输出;并接收存储控制模块的系数数据,根据系数数据的存储规则将系数数据拆分后输出;操作数地址生成模块,生成操作数的存储地址并输出;接收存储控制模块的操作数数据,将数据拆分后并输出;前馈网络计算模块,接收拆分后的系数数据与操作数数据,包含若干路并行计算的计算单元;神经元地址生成模块,接收前馈网络计算模块计算得到的神经元数据,生成神经元的存储地址和神经元数据,并将所述神经元的存储地址和神经元数据输出;存储控制模块,接收系数地址生成模块、操作数地址生成模块和神经元地址生成模块的存储地址,接收所述神经元数据,生成存储地址与物理存储模块地址的映射,产生物理存储模块的控制信号,完成读写操作;数据划分模块,根据并行度将所有隐含层神经元的计算划分到各路计算单元,得出各路计算单元需要计算的神经元数量。所述多层前馈神经网络并行加速器的进一步设计在于,主控制模块在接收到启动信号后,首先启动系数地址生成模块、操作数地址生成模块和存储控制模块,接着基于数据延迟启动前馈网络计算模块,根据神经元地址生成模块的已完成计算神经元的计数和数据划分模块分配给各计算单元的计算量输出运算结束信号。所述多层前馈神经网络并行加速器的进一步设计在于,系数地址生成模块基于数据划分模块分配给各计算单元需要计算的神经元的数量,以递增的形式将生成的系数地址输出。所述多层前馈神经网络并行加速器的进一步设计在于,操作数地址生成模块基于输入操作数数据量的大小和操作数的存储方式,确定操作数地址的上限;并根据数据划分模块分配给各计算单元需要计算的神经元的数量,确定操作数地址循环的次数;同时接收存储控制模块传来的操作数数据,根据操作数的存储规则将数据拆分后驱动各路计算单元。所述多层前馈神经网络并行加速器的进一步设计在于,神经元地址生成模块接收前馈网络计算模块的神经元计算完成信号,接收神经元数据后根据存储模块的位宽,产生神经元的存储地址和神经元数据,并输出至存储控制模块。所述多层前馈神经网络并行加速器的进一步设计在于,前馈网络计算模块中每一计算单元由两个加法器和一个乘法器组成,完成流水乘累加操作,各计算单元之间相互独立。本专利技术的优点本专利技术的多层前馈神经网络并行加速器,支持神经元数量和操作数规模可变,应用灵活;可扩展性好,并行度可调,加速比高;支持流水操作,资源消耗少。附图说明图1是一个典型的神经元示意图。图2是整体硬件架构示意图。图3是一路计算单元示意图。图4是系数存储模块示意图。图5是操作数存储模块示意图。图6是神经元存储模块示意图。具体实施方式下面结合附图和具体实现案例对本专利技术进行详细说明。如图1所示,一个典型的神经元,如图1所示:接收来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元阈值进行比较,然后经过“激活函数”处理产生神经元输出。本实施例的多层前馈神经网络并行加速器,主要由主控制模块、数据划分模块、系数地址生成模块、操作数地址生成模块、神经元地址生成模块、存储控制模块和存储模块组成,参见图2。其中,主控制模块接收系统启动信号,调用数据划分模块将隐含层神经元的计算划分配给各路计算单元,同时启动系数地址生成模块和操作数地址生成模块,根据数据到达的延迟,输出启动计算信号,以及根据神经元的完成情况输出运算结束信号,控制整个计算流程。系数地址生成模块,根据主控制模块的数据划分和系数数据的存储方式,在接收到主控制模块的启动信号后开始生成系数的地址,输出给存储控制模块,接收到存储控制模块的系数数据后,将数据拆分后输出给前馈网络计算模块。操作数地址生成模块,根据输入操作数数据量的大小和操作数的存储方式,在接收到主控制模块的启动信号后生成操作数的地址,输出给存储控制模块,接收到存储控制模块的操作数后,将数据拆分后输出给前馈网络计算模块。神经元地址生成模块,收到前馈网络计算模块计算完成信号,接收前馈网络计算模块的完成计算的神经元数据,根据计算规则生成神经元的存储地址和将多路已完成计算的神经元数据拼接,生成存储数据给存储控制模块。存储控制模块,接收系数地址生成模块、操作数地址生成模块和神经元地址生成模块的地址信号,接收神经元地址生成模块的存储数据,完成接收到的各地址和存储模块的地址映射,生成存储模块的控制信号,完成存储模块的读写。数据划分模块,将所有隐含层神经元的计算划分到各路计算单元,给出各路计算神经元的数量。前馈网络计算模块,包含若干路如图3所示的计算单元并行计算,每一路计算单元由两个加法器和一个乘法器组成,累加器由两个加法器组成,第一个加法器负责累加乘法器的流水结果,由于加法器有若干个周期的延时,所以第一个加法器会多出若干个数据无法累加,这几个数由加法器2完成累加功能并输出。每个时钟周期完成两个数的乘法运算,完成所有乘法结果的累加,各路计算单元之间相互独立。以下给出一具体示例,该示例中前馈网络计算模块由16路计算单元组成。系数地址生成模块包含16路系数地址生成单元,神经元地址生成模块包含4路神经元地址生成单元。每一路计算单元由1个乘法器和2个加法器组成,乘法器和加法器延迟均为4个时钟周期;存储模块1是由32个存储单元构成,每个存储单元是由8个位宽为64位,深度为1K的IP组成;存储模块2是由8个存储单元构成,每个存储单元是一个位宽64位,深度为1K的IP。操作本文档来自技高网...

【技术保护点】
1.一种多层前馈神经网络并行加速器,其特征在于包括:主控制模块,接收系统启动信号,控制整个计算流程;系数地址生成模块,根据主控制模块的数据划分和系数数据的存储方式,生成系数的地址,将所述系数的地址输出;并接收存储控制模块的系数数据,根据系数数据的存储规则将系数数据拆分后输出;操作数地址生成模块,生成操作数的存储地址并输出;接收存储控制模块的操作数数据,将数据拆分后并输出;前馈网络计算模块,接收拆分后的系数数据与操作数数据,包含若干路并行计算的计算单元;神经元地址生成模块,接收前馈网络计算模块计算得到的神经元数据,生成神经元的存储地址和神经元数据,并将所述神经元的存储地址和神经元数据输出;存储控制模块,接收系数地址生成模块、操作数地址生成模块和神经元地址生成模块的存储地址,接收所述神经元数据,生成存储地址与物理存储模块地址的映射,产生物理存储模块的控制信号,完成读写操作;数据划分模块,根据并行度将所有隐含层神经元的计算划分到各路计算单元,得出各路计算单元需要计算的神经元数量。

【技术特征摘要】
1.一种多层前馈神经网络并行加速器,其特征在于包括:主控制模块,接收系统启动信号,控制整个计算流程;系数地址生成模块,根据主控制模块的数据划分和系数数据的存储方式,生成系数的地址,将所述系数的地址输出;并接收存储控制模块的系数数据,根据系数数据的存储规则将系数数据拆分后输出;操作数地址生成模块,生成操作数的存储地址并输出;接收存储控制模块的操作数数据,将数据拆分后并输出;前馈网络计算模块,接收拆分后的系数数据与操作数数据,包含若干路并行计算的计算单元;神经元地址生成模块,接收前馈网络计算模块计算得到的神经元数据,生成神经元的存储地址和神经元数据,并将所述神经元的存储地址和神经元数据输出;存储控制模块,接收系数地址生成模块、操作数地址生成模块和神经元地址生成模块的存储地址,接收所述神经元数据,生成存储地址与物理存储模块地址的映射,产生物理存储模块的控制信号,完成读写操作;数据划分模块,根据并行度将所有隐含层神经元的计算划分到各路计算单元,得出各路计算单元需要计算的神经元数量。2.根据权利要求1所述的多层前馈神经网络并行加速器,其特征在于:主控制模块在接收到启动信号后,首先启动系数地址生成模块、操作数地址生成模块和存...

【专利技术属性】
技术研发人员:李丽李宏炜樊朝煜潘红兵何书专陈沁雨
申请(专利权)人:南京大学
类型:发明
国别省市:江苏,32

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

1