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

技术编号:24355536 阅读:12 留言:0更新日期:2020-06-03 02:28
本发明专利技术公开了一种计算装置,该计算装置应用于神经网络芯片,该神经网络芯片设置于板卡上,该板卡包括:存储器件,用于存储数据;接口装置,用于实现神经网络芯片与外部设备之间的数据传输;控制器件,用于对神经网络芯片的状态进行监控,上述计算装置包括:运算单元、控制器单元和存储单元。采用本发明专利技术实施例能够减少神经网络的计算时间和计算能耗。

Calculation device, calculation method and related products

【技术实现步骤摘要】
计算装置、计算方法及相关产品
本专利技术涉及数据处理领域,尤其涉及一种计算装置、计算方法及相关产品。
技术介绍
神经网络(neuralnetwork)已经获得了非常成功的应用,但是大规模神经网络的运算需要消耗大量的计算时间和计算能耗,对处理平台带来严峻挑战。因此,减少神经网络的计算时间和计算能耗成为一个亟待解决的问题。
技术实现思路
本专利技术实施例提供一种计算装置、计算方法及相关产品,能够减少神经网络的计算时间和计算能耗。第一方面,本专利技术实施例提供一种计算装置,包括:所述计算装置用于执行网络模型的计算,所述计算装置用于执行神经网络运算;所述计算装置包括:运算单元、控制器单元以及存储单元;所述存储单元,用于存储权值和输入神经元,所述权值包括重要比特位和非重要比特位;所述控制器单元,用于获取所述权值的重要比特位和非重要比特位,以及所述输入神经元,并将所述权值的重要比特位和非重要比特位、所述输入神经元传输给所述运算单元;所述运算单元,用于将所述输入神经元和所述重要比特位进行运算,得到输出神经元的第一运算结果;以及若所述第一运算结果小于或等于预设阈值,则跳过当前输出神经元的运算;若所述第一运算结果大于所述预设阈值,则将所述输入神经元与所述非重要比特位之间进行运算,得到第二运算结果,将所述第一运算结果与所述第二运算结果之和作为输出神经元。第二方面,本专利技术实施例还提供了一种机器学习运算装置,所述机器学习运算装置包括一个或多个如第一方面所述的计算装置,用于从其他处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;当所述机器学习运算装置包含多个所述计算装置时,所述多个所述计算装置间可以通过特定的结构进行连接并传输数据;其中,多个所述计算装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述计算装置共享同一控制系统或拥有各自的控制系统;多个所述计算装置共享内存或者拥有各自的内存;多个所述计算装置的互联方式是任意互联拓扑。第三方面,本专利技术实施例还提供了一种组合处理装置,所述组合处理装置包括如第二方面所述的机器学习运算装置,通用互联接口和其他处理装置;所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。第四方面,本专利技术实施例还提供了一种神经网络芯片,所述机器学习芯片包括如第二方面所述的机器学习运算装置或如第三方面所述的组合处理装置。第五方面,本专利技术实施例还提供了一种电子设备,所述电子设备包括如第四方面所述的芯片。第六方面,本专利技术实施例还提供了一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如第六方面所述的神经网络芯片;其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述芯片与外部设备之间的数据传输;所述控制器件,用于对所述芯片的状态进行监控。第七方面,本专利技术实施例还提供了一种计算方法,包括:获取所述权值的重要比特位和非重要比特位,以及所述输入神经元;将所述输入神经元和所述重要比特位进行运算,得到输出神经元的第一运算结果;若所述第一运算结果小于或等于预设阈值,则跳过当前输出神经元的运算;若所述第一运算结果大于所述预设阈值,则将所述输入神经元与所述非重要比特位之间进行运算,得到第二运算结果,将所述第一运算结果与所述第二运算结果之和作为输出神经元。第八方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第七方面中所描述的部分或全部步骤。第九方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第七方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。可以看出,在本专利技术实施例的方案中,获取权值的重要比特位和非重要比特位,以及输入神经元,将输入神经元和重要比特位进行运算,得到输出神经元的第一运算结果,若第一运算结果小于或等于预设阈值,则跳过当前输出神经元的运算,若第一运算结果大于预设阈值,则将输入神经元与非重要比特位之间进行运算,得到第二运算结果,将第一运算结果与第二运算结果之和作为输出神经元,进而,如果某个输出神经元的预测结果为不需要进行运算,则跳过该输出神经元的运算过程。新的运算装置中集成了运算方法,能够预测并跳过不需要进行运算的输出神经元。从而减少神经网络的计算时间和计算能耗。本专利技术的这些方面或其他方面在以下实施例的描述中会更加简明易懂。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1A为本专利技术实施例提供的一种计算装置的结构示意图;图1B为本申请实施例提供的一种分层存储装置结构示意图。图1C为本申请实施例提供的一种3TSRAM存储单元的结构示意图。图1D为本申请实施例提供的一种数据处理装置结构示意图。图1E为本申请实施例提供的另一种数据处理装置结构示意图。图2是本申请实施例提供的一种计算装置的结构示意图;图3是本申请一个实施例提供的计算装置的结构图;图4是本申请另一个实施例提供的计算装置的结构图;图5是本申请实施例提供的主处理电路的结构图;图6是本申请实施例提供的另一种计算装置的结构图;图7是本申请实施例提供的树型模块的结构示意图;图8是本申请实施例提供的又一种计算装置的结构图;图9是本申请实施例提供的还一种计算装置的结构图;图10是本申请实施例提供的一种组合处理装置的结构图;图11是本申请实施例提供的一种计算装置的结构示意图;图12是本申请实施例提供的另一种组合处理装置的结构图;图13是本申请实施例提供的一种板卡的结构示意图;图14为本专利技术实施例提供的一种计算方法的流程示意图。具体实施方式以下分别进行详细说明。本专利技术的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设本文档来自技高网...

【技术保护点】
1.一种计算装置,其特征在于,所述计算装置用于执行神经网络运算;所述计算装置包括:运算单元、控制器单元以及存储单元;/n所述存储单元,用于存储权值和输入神经元,所述权值包括重要比特位和非重要比特位;/n所述控制器单元,用于获取所述权值的重要比特位和非重要比特位,以及所述输入神经元,并将所述权值的重要比特位和非重要比特位、所述输入神经元传输给所述运算单元;/n所述运算单元,用于将所述输入神经元和所述重要比特位进行运算,得到输出神经元的第一运算结果;/n以及若所述第一运算结果小于或等于预设阈值,则跳过当前输出神经元的运算;/n若所述第一运算结果大于所述预设阈值,则将所述输入神经元与所述非重要比特位之间进行运算,得到第二运算结果,将所述第一运算结果与所述第二运算结果之和作为输出神经元。/n

【技术特征摘要】
1.一种计算装置,其特征在于,所述计算装置用于执行神经网络运算;所述计算装置包括:运算单元、控制器单元以及存储单元;
所述存储单元,用于存储权值和输入神经元,所述权值包括重要比特位和非重要比特位;
所述控制器单元,用于获取所述权值的重要比特位和非重要比特位,以及所述输入神经元,并将所述权值的重要比特位和非重要比特位、所述输入神经元传输给所述运算单元;
所述运算单元,用于将所述输入神经元和所述重要比特位进行运算,得到输出神经元的第一运算结果;
以及若所述第一运算结果小于或等于预设阈值,则跳过当前输出神经元的运算;
若所述第一运算结果大于所述预设阈值,则将所述输入神经元与所述非重要比特位之间进行运算,得到第二运算结果,将所述第一运算结果与所述第二运算结果之和作为输出神经元。


2.根据权利要求1所述的计算装置,其特征在于,若所述输入神经元以Nin表示,该输入神经元包括n个比特位,其中,n1个比特位为重要比特位和n2个非重要比特位,若n1个比特位对应的值以N1in表示,该n2个比特位对应的值以N2in表示,则n1+n2=n,Nin=N1in+N2in,n为正整数,n1为自然数且小于n。


3.根据权利要求1或2所述的计算装置,其特征在于,若所述权值以W表示,该权值包括w个比特位,其中,w1个比特位为重要比特位和w2个非重要比特位,若该w1个比特位对应的值以W1表示,该w2个比特位对应的值为W2表示,则w1+w2=w,W=W1+W2,w为正整数,w1为自然数且小于w。


4.根据权利要求3所述的计算装置,其特征在于,在所述输入神经元为多个时,所述运算单元包括多个乘法器和至少一个加法器;
所述多个乘法器和所述至少一个加法器,用于按照如下公式计算所述输出神经元:



其中,T为输入神经元的数量,Nout为输出神经元,N1in(i)是第i个输入神经元的重要比特位,N2in(i)表示第i个输入神经元的非重要比特位,W1(i)为第i个权值的重要比特位,W2(i)为第i个权值的非重要比特位,Nin(i)表示第i个输入神经元的值,W(i)表示第i个权值的值,Nin(i)=N1in(i)+N2in(i)且W(i)=W1(i)+W2(i);
优先计算Nout中的并将作为所述第一运算结果。


5.根据权利要求4所述的计算装置,其特征在于,所述运算单元还包括比较器,所述运算单元具体用于:
在所述比较器的比较结果为所述第一运算结果小于或等于预设阈值时,则跳过所述输出神经元的运算;若所述第一运算结果大于所述预设阈值,则将所述输入神经元与所述非重要比特位之间进行运算,得到第二运算结果,将所述第一运算结果与所述第二运算结果之和作为输出神经元方面,所述运算单元具体用于:
若小于或等于所述预设阈值,则跳过当前输出神经元的运算;
若大于所述预设阈值,则继续运算Nout,并输出最终的Nout。


6.根据权利要求1-5任一项所述的计算装置,其特征在于,
所述运算单元包括:一个主处理电路和多个从处理电路;
所述主处理电路用于将所述输入神经元拆分为多个数据块,将所述权值的重要比特位广播给所述多个从处理电路,将所述多个数据块分发给所述多个从处理电路;
所述从处理电路,用于将接收到的数据块与权重的重要比特位进行运算,得到部分结果,将所述部分结果发送给所述主处理电路;
所述主处理电路,还具体用于将接收到的所有部分结果拼接,得到所述第一运算结果。


7.根据权利要求6所述的计算装置,其特征在于,所述运算单元还包括一个或多个分支处理电路,每个分支处理电路连接至少一个从处理电路,
所述分支处理电路,用于转发所述主处理电路与所述多个从处理电路之间的数据块、广播数据以及运算指令。


8.根据权利要求6或7所述的计算装置,其特征在于,所述多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,所述主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个从处理电路为:第1行的p个从处理电路、第q行的p个从处理电路以及第1列的q个从处理电路;
所述K个从处理电路,用于在所述主处理电路以及多个从处理电路之间的数据以及指令的转发;
所述主处理电路,用于确定所述输入神经元为分发数据,权值的重要比特位为广播数据,将一个分发数据分配成多个数据块,将所述多个数据块中的至少一个数据块以及多个运算指令中的至少一个运算指令发送给所述K个从处理电路;
所述K个从处理电路,用于转换所述主处理电路与所述多个从处理电路之间的数据。


9.根据权利要求6-8任意一项所述的装置,其特征在于,所述主处理电路包括:激活处理电路、加法处理电路中的一种或任意组合。


10....

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

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

1