一种计算装置及相关产品制造方法及图纸

技术编号:21715617 阅读:31 留言:0更新日期:2019-07-27 19:32
本申请提供一种计算装置及相关产品,所述计算装置用于执行全连接神经网络训练运算,本申请提供的计算装置具有成本低、功耗低的优点。

A Computing Device and Related Products

【技术实现步骤摘要】
一种计算装置及相关产品
本申请涉及信息处理
,具体涉及一种计算装置及相关产品。
技术介绍
随着信息技术的不断发展和人们日益增长的需求,人们对信息及时性的要求越来越高了。目前,终端对信息的获取以及处理均是基于通用处理器获得的。在实践中发现,这种基于通用处理器运行软件程序来处理信息的方式,受限于通用处理器的运行速率,特别是在通用处理器负荷较大的情况下,信息处理效率较低、时延较大,对于信息处理的计算模型例如计算模型的全连接训练运算来说,全连接训练的计算量更大,通用的处理器完成全连接训练的时间长,效率低,功耗高。
技术实现思路
本申请实施例提供了一种计算装置及相关产品,可提升全连接训练运算的处理速度,提高效率、节省功耗。第一方面,提供一种计算装置,所述计算装置用于执行全连接神经网络训练运算,所述全连接神经网络训练包括:α层,所述α层中至少有一层第i层为全连接层,所述计算装置包括:运算单元以及控制器单元;所述运算单元包括:一个主处理电路和从处理电路,所述α为大于等于2的整数;所述控制器单元,用于获取第i层输入数据、第i层权值以及训练指令;所述控制器单元,还用于解析该训练指令得到正向计算指令和反向计算指令,将正向计算指令解析得到多个正向运算指令,将该多个运算指令以及所述输入数据、所述权值以及多个运算指令发送给所述主处理电路;所述主处理电路,用于将所述第i层输入数据广播给所述从处理电路,将所述第i层权值拆分成多个数据块,将多个数据块分发给所述从处理电路,将所述多个运算指令发送给所述从处理电路;所述从处理电路,用于依据运算指令对所述第i层输入数据以及接收到的数据块执行全连接运算得到运算结果,并将运算结果传输给所述主处理电路;所述主处理电路,用于对所述运算结果进行拼接处理得到计算结果;所述主处理电路,还用于对所述计算结果进行后续处理得到全连接正向计算结果;所述控制器单元,还用于解析所述反向计算指令得到多个反向运算指令,将所述反向运算指令以及所述第i+1层输出结果梯度、第i层权值以及第i层输入数据发送给所述主处理电路;所述主处理电路,还用于依据所述第i+1层输出结果梯度得到第i层输入结果梯度,将第i层输入结果梯度拆分成多个反向输入数据块,将多个反向输入数据块分发给所述从处理电路;将第i层权值以及第i层输入数据以及多个反向运算指令广播给所述从处理器电路;所述从处理电路,用于依据接收到的反向运算指令将接收到的反向输入数据块与第i层权值执行乘法运算得到第i层输出梯度运算结果,依据接收到的反向运算指令将接收到的反向输入数据块与所述第i层输入数据执行乘法运算得到第i层权值梯度运算结果;将所述第i层输出梯度运算结果和所述第i层权值梯度运算结果返回给所述主处理电路;所述主处理电路,用于将从处理电路发送的第i层权值梯度运算结果拼接得到第i层权值梯度,将从处理电路发送第i层输出梯度运算结果拼接得到第i层输出结果梯度,利用第i层权值梯度更新第i层权值。第二方面,本申请实施例提供了一种全连接训练装置,其特征在于,所述全连接训练装置包括一个或多个第一方面提供的计算装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的全连接运算,将执行结果通过I/O接口传递给其他处理装置;当所述全连接训练装置包含多个所述计算装置时,所述多个所述计算装置间可以通过特定的结构进行连接并传输数据;其中,多个所述计算装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述计算装置共享同一控制系统或拥有各自的控制系统;多个所述计算装置共享内存或者拥有各自的内存;多个所述计算装置的互联方式是任意互联拓扑。第三方面,本申请实施例提供了一种组合处理装置,该组合处理装置包括如第二方面所述的全连接训练装置、通用互联接口,和其他处理装置。该机器学习运算装置与上述其他处理装置进行交互,共同完成用户指定的操作。该组合处理装置还可以包括存储装置,该存储装置分别与所述全连接训练装置和所述其他处理装置连接,用于保存所述全连接训练装置和所述其他处理装置的数据。第四方面,本申请实施例提供了一种神经网络芯片,该神经网络芯片包括上述第一方面所述的计算装置、上述第二方面所述的全连接训练装置或者上述第三方面所述的组合处理装置。第五方面,本申请实施例提供了一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述第四方面所述的神经网络芯片;第六方面,本申请实施例提供了一种板卡,该板卡包括上述第五方面所述的神经网络芯片封装结构。第七方面,本申请实施例提供了一种电子装置,该电子装置包括上述第六方面所述的神经网络芯片或者上述第六方面所述的板卡。第八方面,本申请实施例还提供一种全连接神经网络训练方法,其特征在于,所述方法应用于计算装置,所述全连接神经网络训练包括:α层,所述α层中至少有一层第i层为全连接层,所述计算装置包括:运算单元以及控制器单元;所述运算单元包括:一个主处理电路和从处理电路,所述α为大于等于2的整数;所述方法至少包括,第i层正向运算和第i层反向运算;所述方法包括如下步骤:所述控制器单元获取第i层输入数据、第i层权值以及训练指令;第i层正向运算包括:所述控制器单元解析该训练指令得到正向计算指令和反向计算指令,将正向计算指令解析得到多个正向运算指令,将该多个运算指令以及所述输入数据、所述权值以及多个运算指令发送给所述主处理电路;所述主处理电路将所述第i层输入数据广播给所述从处理电路,将所述第i层权值拆分成多个数据块,将多个数据块分发给所述从处理电路,将所述多个运算指令发送给所述从处理电路;所述从处理电路依据运算指令对所述第i层输入数据以及接收到的数据块执行全连接运算得到运算结果,并将运算结果传输给所述主处理电路;所述主处理电路对所述运算结果进行拼接处理得到计算结果对所述计算结果进行后续处理得到全连接正向计算结果;第i层反向运算包括:所述控制器单元解析所述反向计算指令得到多个反向运算指令,将所述反向运算指令以及所述第i+1层输出结果梯度、第i层权值以及第i层输入数据发送给所述主处理电路;所述主处理电路依据所述第i+1层输出结果梯度得到第i层输入结果梯度,将第i层输入结果梯度拆分成多个反向输入数据块,将多个反向输入数据块分发给所述从处理电路;将第i层权值以及第i层输入数据以及多个反向运算指令广播给所述从处理器电路;所述从处理电路依据接收到的反向运算指令将接收到的反向输入数据块与第i层权值执行乘法运算得到第i层输出梯度运算结果,依据接收到的反向运算指令将接收到的反向输入数据块与所述第i层输入数据执行乘法运算得到第i层权值梯度运算结果;将所述第i层输出梯度运算结果和所述第i层权值梯度运算结果返回给所述主处理电路;所述主处理电路将从处理电路发送的第i层权值梯度运算结果拼接得到第i层权值梯度,将从处理电路发送第i层输出梯度运算结果拼接得到第i层输出结果梯度,利用第i层权值梯度更新第i层权值。在一些实施例中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。在一些实施本文档来自技高网...

【技术保护点】
1.一种计算装置,其特征在于,所述计算装置用于执行全连接神经网络训练运算,所述全连接神经网络训练包括:α层,所述α层中至少有一层第i层为全连接层,所述计算装置包括:运算单元以及控制器单元;所述运算单元包括:一个主处理电路和从处理电路,所述α为大于等于2的整数;所述控制器单元,用于获取第i层输入数据、第i层权值以及训练指令;所述控制器单元,还用于解析该训练指令得到正向计算指令和反向计算指令,将正向计算指令解析得到多个正向运算指令,将该多个运算指令以及所述输入数据、所述权值以及多个运算指令发送给所述主处理电路;所述主处理电路,用于将所述第i层输入数据广播给所述从处理电路,将所述第i层权值拆分成多个数据块,将多个数据块分发给所述从处理电路,将所述多个运算指令发送给所述从处理电路;所述从处理电路,用于依据运算指令对所述第i层输入数据以及接收到的数据块执行全连接运算得到运算结果,并将运算结果传输给所述主处理电路;所述主处理电路,用于对所述运算结果进行拼接处理得到计算结果;所述主处理电路,还用于对所述计算结果进行后续处理得到全连接正向计算结果;所述控制器单元,还用于解析所述反向计算指令得到多个反向运算指令,将所述反向运算指令以及所述第i+1层输出结果梯度、第i层权值以及第i层输入数据发送给所述主处理电路;所述主处理电路,还用于依据所述第i+1层输出结果梯度得到第i层输入结果梯度,将第i层输入结果梯度拆分成多个反向输入数据块,将多个反向输入数据块分发给所述从处理电路;将第i层权值以及第i层输入数据以及多个反向运算指令广播给所述从处理器电路;所述从处理电路,用于依据接收到的反向运算指令将接收到的反向输入数据块与第i层权值执行乘法运算得到第i层输出梯度运算结果,依据接收到的反向运算指令将接收到的反向输入数据块与所述第i层输入数据执行乘法运算得到第i层权值梯度运算结果;将所述第i层输出梯度运算结果和所述第i层权值梯度运算结果返回给所述主处理电路;所述主处理电路,用于将从处理电路发送的第i层权值梯度运算结果拼接得到第i层权值梯度,将从处理电路发送第i层输出梯度运算结果拼接得到第i层输出结果梯度,利用第i层权值梯度更新第i层权值。...

【技术特征摘要】
1.一种计算装置,其特征在于,所述计算装置用于执行全连接神经网络训练运算,所述全连接神经网络训练包括:α层,所述α层中至少有一层第i层为全连接层,所述计算装置包括:运算单元以及控制器单元;所述运算单元包括:一个主处理电路和从处理电路,所述α为大于等于2的整数;所述控制器单元,用于获取第i层输入数据、第i层权值以及训练指令;所述控制器单元,还用于解析该训练指令得到正向计算指令和反向计算指令,将正向计算指令解析得到多个正向运算指令,将该多个运算指令以及所述输入数据、所述权值以及多个运算指令发送给所述主处理电路;所述主处理电路,用于将所述第i层输入数据广播给所述从处理电路,将所述第i层权值拆分成多个数据块,将多个数据块分发给所述从处理电路,将所述多个运算指令发送给所述从处理电路;所述从处理电路,用于依据运算指令对所述第i层输入数据以及接收到的数据块执行全连接运算得到运算结果,并将运算结果传输给所述主处理电路;所述主处理电路,用于对所述运算结果进行拼接处理得到计算结果;所述主处理电路,还用于对所述计算结果进行后续处理得到全连接正向计算结果;所述控制器单元,还用于解析所述反向计算指令得到多个反向运算指令,将所述反向运算指令以及所述第i+1层输出结果梯度、第i层权值以及第i层输入数据发送给所述主处理电路;所述主处理电路,还用于依据所述第i+1层输出结果梯度得到第i层输入结果梯度,将第i层输入结果梯度拆分成多个反向输入数据块,将多个反向输入数据块分发给所述从处理电路;将第i层权值以及第i层输入数据以及多个反向运算指令广播给所述从处理器电路;所述从处理电路,用于依据接收到的反向运算指令将接收到的反向输入数据块与第i层权值执行乘法运算得到第i层输出梯度运算结果,依据接收到的反向运算指令将接收到的反向输入数据块与所述第i层输入数据执行乘法运算得到第i层权值梯度运算结果;将所述第i层输出梯度运算结果和所述第i层权值梯度运算结果返回给所述主处理电路;所述主处理电路,用于将从处理电路发送的第i层权值梯度运算结果拼接得到第i层权值梯度,将从处理电路发送第i层输出梯度运算结果拼接得到第i层输出结果梯度,利用第i层权值梯度更新第i层权值。2.根据权利要求1所述的装置,其特征在于,所述依据所述第i+1层输出结果梯度得到第i层输入结果梯度具体包括:所述主处理电路,具体用于将所述第i+1层输出结果梯度与第i层正向运算的激活函数的导函数相乘得到第i层输入结果梯度。3.根据权利要求1所述的装置,其特征在于,所述计算装置还包括:存储单元和直接内存访问单元,所述存储单元包括:寄存器、缓存中任意组合;所述缓存,用于存储所述输入数据和权值;所述寄存器,用于存储所述输入数据中标量数据;所述缓存包括高速暂存缓存;所述控制器单元包括:指令存储单元、指令存储单元和存储队列单元;所述指令存储单元,用于存储所述全连接神经网络训练运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令;所述主处理电路包括:依赖关系处理单元;所述依赖关系处理单元,用于确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元;所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:依据所述第一运算指令提取所述第一运算指令中所需数据的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需数据的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第一运算指令与所述第零运算指令不具有关联关系。4.根据权利要求1所述的装置,其特征在于,如所述从处理电路的数量为多个,所述运算单元包括:树型模块,所述树型模块包括:一个根端口和多个支端口,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;所述树型模块,用于转发所述主处理电路与所述多个从处理电路之间的输入数据、正向运算指令、运算结果、反向运算指令、权值以及输入数据梯度。5.根据权利要求1所述的装置,其特征在于,如所述从处理电路的数量为多个,所述运算单元还包括一个或多个分支处理电路,每个分支处理电路连接至少一个从处理电路,所述主处理电路,具体用于确定所述输入数据为广播数据,所述权值为分发数据,将所述权值拆分成多个数据块,将所述多个数据块中的至少一个数据块、输入数据以及多个运算指令中的至少一个运算指令发送给所述分支处理电路;所述分支处理电路,用于转发所述主处理电路与所述多个从处理电路之间的数据块、输入数据以及运算指令;所述多个从处理电路,用于依据该运算指令对接收到的数据块以及输入数据执行全连接运算得到运算结果,并将运算结果传输给所述分支处理电路;所述主处理电路,用于将分支处理电路发送的运算结果进行拼接得到计算结果,将所述计算结果执行后续处理得到全连接正向计算结果;所述主处理电路,还用于依据所述第i+1层输出结果梯度得到第i层输入结果梯度,将第i层输入结果梯度拆分成多个反向输入数据块,将多个反向输入数据块分发给所述分支处理电路;将第i层权值以及第i层输入数据以及多个反向运算指令广播给所述分支处理器电路;所述分支处理电路,还用于转发所述主处理电路与所述多个从处理电路之间的反向输入数据块、第i层权值、第i层输入数据以及反向运算指令;所述从处理电路,用于依据接收到的反向运算指令将接收到的反向输入数据块与第i层权值执行乘法运算得到第i层输出梯度运算结果,依据接收到的反向运算指令将接收到的反向输入输入数据块与所述第i层输入数据执行乘法运算得到第i层权值梯度运算结果;将所述第i层输出梯度运算结果和所述第i层权值梯度运算结果返回给所述分支处理电路;所述主处理电路,用于将分支处理电路发送的第i层权值梯度运算结果拼接得到第i层权值梯度,将分支处理电路发送第i层输出梯度运算结果拼接得到第i层输出结果梯度,利用第i层权值梯度更新第i层权值。6.根据权利要求1所述的装置,其特征在于,如所述从处理电路的数量为多个,所述多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,所述主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个基础电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路;所述K个从处理电路,用于在所述主处理电路以及多个从处理电路之间的数据以及运算指令的转发;所述主处理电路,用于确定所述输入数据为广播数据,权值为分发数据,将所述权值拆分成多个数据块,将所述多个数据块中的至少一个数据块以及多个运算指令中的至少一个运算指令发送给所述K个从处理电路;所述K个从处理电路,用于转发所述主处理电路与所述多个从处理电路之间的数据块、输入数据和运算指令;所述多个从处理电路,用于依据该运算指令对接收到的数据块以及输入数据执行全连接运算得到运算结果,并将运算结果传输给所述K个从处理电路;所述主处理电路,用于将所述K个从处理电路发送的运算结果进行拼接得到计算结果,将该计算结果执行后续处理得到全连接正向计算结果;所述主处理电路,还用于依据所述第i+1层输出结果梯度得到第i层输入结果梯度,将第i层输入结果梯度拆分成多个反向输入数据块,将多个反向输入数据块分发给所述k个从处理电路;将第i层权值以及第i层输入数据以及多个反向运算指令广播给所述k个从处理电路;所述k个从处理电路,还用于转发所述主处理电路与所述多个从处理电路之间的反向输入数据块、第i层权值、第i层输入数据以及反向运算指令;所述多个从处理电路,用于依据接收到的反向运算指令将接收到的反向输入数据块与第i层权值执行乘法运算得到第i层输出梯度运算结果,依据接收到的反向运算指令将接收到的反向输入输入数据块与所述第i层输入数据执行乘法运算得到第i层权值梯度运算结果;将所述第i层输出梯度运算结果和所述第i层权值梯度运算结果返回给所述k个从处理电路;所述主处理电路,用于将k个从处理电路发送的第i层权值梯度运算结果拼接得到第i层权值梯度,将分支处理电路发送第i层输出梯度运算结果拼接得到第i层输出结果梯度,利用第i层权值梯度更新第i层权值。7.根据权利要求5-6任意一项所述的装置,其特征在于,所述主处理电路,具体用于将多个处理电路发送的运算结果进行累加和组合排序得到该计算结果。8.根据权利要求5-6任意一项所述的装置,其特征在于,所述主处理电路包括:转换处理电路;所述转换处理电路,用于对数据执行转换处理,具体为:将主处理电路接收的输入数据、权值或计算结果执行第一数据结构与第二数据结构之间的互换;或将主处理电路接收的输入数据、权值或计算结果执行第一数据类型与第二数据类型之间的互换。...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

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

1