三配置神经网络单元制造技术

技术编号:14494545 阅读:58 留言:0更新日期:2017-01-29 17:23
一种三配置神经网络单元,包括N个窄的与宽的累加器、乘法器与加法器。各乘法器对其输入执行运算以产生窄/宽乘积。各加法器的第一输入接收相对应累加器的输出。各宽加法器还具有第三输入,当指定第三配置,第三输入从相对应的窄乘法器接收窄乘积的加宽版本。当指定第一配置,各加法器对其第一与第二输入执行运算产生窄/宽总数储存于相对应的累加器。当指定第二配置,各宽加法器对第一与第二输入执行运算产生宽总数储存于相对应的宽累加器。当指定第三配置,各宽加法器对第一、第二与第三输入执行运算产生宽总数储存于相对应的宽累加器。

【技术实现步骤摘要】

本专利技术涉及一种处理器,特别涉及一种提升人工神经网络的运算效能与效率的处理器。本申请案主张下列的美国临时申请案的国际优先权。这些优先权案的全文并入本案以供参考。本申请案关联于下列同时提出申请的美国申请案。这些关联申请案的全文并入本案以供参考。
技术介绍
近年来,人工神经网络(artificialneuralnetworks,ANN)重新吸引了人们的注意。这些研究通常被称为深度学习(deeplearning)、计算机学习(computerlearning)等类似术语。通用处理器运算能力的提升也推升了人们在数十年后的现在对于人工神经网络的兴趣。人工神经网络近期的应用包括语言与影像辨识等。对于提升人工神经网络的运算效能与效率的需求似乎正在增加。
技术实现思路
有鉴于此,本专利技术提供一种神经网络单元。此神经网络单元包括一缓存器、N个窄累加器与N个宽累加器、N个窄乘法器与N个宽乘法器与N个窄加法器与N个宽加法器。缓存器可利用指定第一、第二与第三配置的指针予以程序化。各个累加器具有一输出。各个乘法器具有第一与第二窄/宽输入,并对其分别执行窄/宽乘法运算以产生窄/宽乘积。各个加法器具有第一与第二输入,其中,第一输入接收N个窄/宽累加器其中相对应的一个累加器的输出。其中,N个宽加法器中的各个宽加法器还具有第三输入,当指针指定该第三配置,第三输入从N个窄乘法器中相对应的一个窄乘法器接收窄乘积的加宽版本。其中,当指针指定第一配置,N个窄/宽加法器中的各个加法器分别对第一与第二输入执行窄/宽加法运算,以产生窄/宽总数储存于相对应的窄/宽累加器。其中,当指针指定第二配置,N个宽加法器中的各个加法器对第一与第二输入执行一宽加法运算,以产生宽总数储存于相对应的宽累加器。其中,当指针指定第三配置,N个宽加法器中的各个加法器对第一、第二与第三输入执行宽加法运算,以产生宽总数储存于相对应的宽累加器。本专利技术还提供一种运作神经网络单元的方法。此神经网络单元包括一缓存器、N个窄累加器与N个宽累加器、N个窄乘法器与N个宽乘法器与N个窄加法器与N个宽加法器。缓存器可利用指定第一、第二与第三配置的指针予以程序化。各个累加器具有一输出。各个乘法器具有第一与第二窄/宽输入,并对其分别执行窄/宽乘法运算以产生窄/宽乘积。各个加法器具有第一与第二输入,其中,第一输入接收N个窄/宽累加器其中相对应的一个累加器的输出。其中,N个宽加法器中的各个宽加法器还具有第三输入,当指针指定该第三配置,第三输入从N个窄乘法器中相对应的一个窄乘法器接收窄乘积的加宽版本。此方法包括:当指针指定第一配置,利用N个窄/宽加法器中的各个加法器,分别对第一与第二输入执行窄/宽加法运算,以产生窄/宽总数储存于相对应的窄/宽累加器;当指针指定该第二配置,利用N个宽加法器中的各个加法器,对第一与第二输入执行宽加法运算,以产生宽总数储存于相对应的宽累加器;以及当指针指定第三配置,利用N个宽加法器中的各个加法器,对第一、第二与第三输入执行宽加法运算,以产生宽总数储存于相对应的宽累加器。本专利技术还提供一种编码于至少一非瞬时计算机可使用媒体以供一计算机装置使用的一计算机程序产品。计算机程序产品包括内含于媒体的计算机可使用程序代码,用以描述神经网络单元。此计算机可使用程序代码包括第一程序代码、第二程序代码、第三程序代码与第四程序代码。第一程序代码描述一缓存器,此缓存器可利用指定第一、第二与第三配置的指针予以程序化。第二程序代码描述N个窄累加器与N个宽累加器,各个累加器具有一输出。第三程序代码描述N个窄乘法器与N个宽乘法器,各个乘法器具有第一与第二窄/宽输入,并对其分别执行窄/宽乘法运算以产生窄/宽乘积。第四程序代码描述N个窄加法器与N个宽加法器,各个加法器具有第一与第二输入,其中,第一输入接收N个窄/宽累加器其中相对应的一个累加器的输出。其中,N个宽加法器中的各个宽加法器还具有第三输入,当指针指定第三配置,第三输入从N个窄乘法器中相对应的一个窄乘法器接收窄乘积的加宽版本。其中,当指针指定第一配置,N个窄/宽加法器中的各个加法器分别对第一与第二输入执行窄/宽加法运算,以产生窄/宽总数储存于相对应的窄/宽累加器。其中,当指针指定第二配置,N个宽加法器中的各个加法器对第一与第二输入执行宽加法运算,以产生宽总数储存于相对应的宽累加器。其中,当指针指定第三配置,N个宽加法器中的各个加法器对该第一、第二与第三输入执行宽加法运算,以产生宽总数储存于相对应的宽累加器。本专利技术所采用的具体实施例,将通过以下的实施例及图式作进一步的说明。附图说明图1为显示包含神经网络单元(neuralnetworkunit,NNU)的处理器的方块示意图。图2为显示图1的神经处理单元(neuralprocessingunit,NPU)的方块示意图。图3为方块图,显示利用图1的神经网络单元的N个神经处理单元的N个多任务缓存器,对于由图1的数据随机存取存储器取得的一列数据文字执行如同N个文字的旋转器(rotator)或称循环移位器(circularshifter)的运作。图4为表格,显示一个储存于图1的神经网络单元的程序存储器并由该神经网络单元执行的程序。图5为显示神经网络单元执行图4的程序的时序图。图6A为显示图1的神经网络单元执行图4的程序的方块示意图。图6B为流程图,显示图1的处理器执行架构程序,以利用神经网络单元执行关联于人工神经网络的隐藏层的神经元的典型乘法累加启动函数运算的运作,如同由图4的程序执行的运作。图7为显示图1的神经处理单元的另一实施例的方块示意图。图8为显示图1的神经处理单元的又一实施例的方块示意图。图9为表格,显示一个储存于图1的神经网络单元的程序存储器并由该神经网络单元执行的程序。图10为显示神经网络单元执行图9的程序的时序图。图11为显示图1的神经网络单元的一实施例的方块示意图。在图11的实施例中,一个神经元分成两部分,即启动函数单元部分与算术逻辑单元部分(此部分还包含移位缓存器部分),而各个启动函数单元部分由多个算术逻辑单元部分共享。图12为显示图11的神经网络单元执行图4的程序的时序图。图13为显示图11的神经网络单元执行图4的程序的时序图。图14为方块示意图,显示移动至神经网络(MTNN)架构指令以及其对应于图1的神经网络单元的部分的运作。图15为方块示意图,显示移动至神经网络(MTNN)架构指令以及其对应于图1的神经网络单元的部分的运作。图16为显示图1的数据随机存取存储器的一实施例的方块示意图。图17为显示图1的权重随机存取存储器与缓冲器的一实施例的方块示意图。图18为显示图1的可动态配置的神经处理单元的方块示意图。图19为方块示意图,显示依据图18的实施例,利用图1的神经网络单元的N个神经处理单元的2N个多任务缓存器,对于由图1的数据随机存取存储器取得的一列数据文字执行如同旋转器(rotator)的运作。图20为表格,显示一个储存于图1的神经网络单元的程序存储器并由该神经网络单元执行的程序,而此神经网络单元具有如图18的实施例所示的神经处理单元。图21为显示神经网络单元执行图20的程序的时序图,此神经网络单元具有如图18所示的神经处理单元执行于窄配本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201610864450.html" title="三配置神经网络单元原文来自X技术">三配置神经网络单元</a>

【技术保护点】
一种神经网络单元,其特征在于,包括:一缓存器,可利用指定第一、第二与第三配置的指针予以程序化;N个窄累加器与N个宽累加器,各该累加器具有输出;N个窄乘法器与N个宽乘法器,各该乘法器具有第一与第二窄/宽输入,并对其分别执行窄/宽乘法运算以产生窄/宽乘积;以及N个窄加法器与N个宽加法器,各该加法器具有第一与第二输入,该第一输入接收该N个窄/宽累加器其中相对应的一个累加器的该输出;其中,该N个宽加法器中的各该宽加法器还具有第三输入,当该指针指定该第三配置,该第三输入从该N个窄乘法器中相对应的一个窄乘法器接收该窄乘积的加宽版本;其中,当该指针指定该第一配置,该N个窄/宽加法器中的各该加法器分别对该第一与第二输入执行窄/宽加法运算,以产生窄/宽总数储存于该相对应的窄/宽累加器;其中,当该指针指定该第二配置,该N个宽加法器中的各该加法器对该第一与第二输入执行宽加法运算,以产生宽总数储存于该相对应的宽累加器;其中,当该指针指定该第三配置,该N个宽加法器中的各该加法器对该第一、第二与第三输入执行宽加法运算,以产生宽总数储存于该相对应的宽累加器。

【技术特征摘要】
2015.10.08 US 62/239,254;2015.12.02 US 62/262,104;1.一种神经网络单元,其特征在于,包括:一缓存器,可利用指定第一、第二与第三配置的指针予以程序化;N个窄累加器与N个宽累加器,各该累加器具有输出;N个窄乘法器与N个宽乘法器,各该乘法器具有第一与第二窄/宽输入,并对其分别执行窄/宽乘法运算以产生窄/宽乘积;以及N个窄加法器与N个宽加法器,各该加法器具有第一与第二输入,该第一输入接收该N个窄/宽累加器其中相对应的一个累加器的该输出;其中,该N个宽加法器中的各该宽加法器还具有第三输入,当该指针指定该第三配置,该第三输入从该N个窄乘法器中相对应的一个窄乘法器接收该窄乘积的加宽版本;其中,当该指针指定该第一配置,该N个窄/宽加法器中的各该加法器分别对该第一与第二输入执行窄/宽加法运算,以产生窄/宽总数储存于该相对应的窄/宽累加器;其中,当该指针指定该第二配置,该N个宽加法器中的各该加法器对该第一与第二输入执行宽加法运算,以产生宽总数储存于该相对应的宽累加器;其中,当该指针指定该第三配置,该N个宽加法器中的各该加法器对该第一、第二与第三输入执行宽加法运算,以产生宽总数储存于该相对应的宽累加器。2.根据权利要求1所述的神经网络单元,其特征在于,还包括:第一与第二存储器,分别提供操作数至该乘法器的该第一与第二输入,当该指针指定该第一配置或该第三配置,该第一与第二存储器中各该存储器会提供2N个窄操作数,当该指针指定该第二配置,该第一与第二存储器中各该存储器会提供N个宽操作数。3.根据权利要求2所述的神经网络单元,其特征在于,还包括:2N个多任务缓存器,各该多任务缓存器具有第一、第二与第三窄数据输入、一个窄输出与一个控制输入,以控制对该第一、第二与第三窄数据输入的选择;其中,对各该多任务缓存器:该第一输入从该第一存储器接收窄操作数;该第二输入接收该2N个多任务缓存器中相邻的多任务缓存器的该输出;以及该第三输入接收该2N个多任务缓存器中下一个相邻的多任务缓存器的该输出。4.根据权利要求3所述的神经网络单元,其特征在于,当该指针指定该第一配置或该第三配置,该控制输入选择该第一输入或该第二输入提供于该输出,并且,该2N个多任务缓存器集体作为2N个窄文字的旋转器进行运作;其中,当该指针指定该第二配置,该控制输入选择该第一输入或该第三输入提供于该输出,并且,该2N个多任务缓存器集体作为N个宽文字的旋转器进行运作。5.根据权利要求4所述的神经网络单元,其特征在于,还包括:操作数选择逻辑,接收2N个由该2N个多任务缓存器提供的窄操作数,并接收2N个由该第二存储器提供的窄操作数;其中,当该指针指定该第一配置或该第三配置,该操作数选择逻辑:将该2N个多任务缓存器输出中的N个多任务缓存器输出所提供的该2N个窄操作数中的N个窄操作数,提供至该N个宽乘法器的该第一输入;将该2N个多任务缓存器输出中的其他N个多任务缓存器输出所提供的该2N个窄操作数中的其他N个窄操作数,提供至该N个窄乘法器的该第一输入;将该第二存储器所提供的该2N个窄操作数中的N个窄操作数,提供至该N个宽乘法器的该第二输入;以及将该第二存储器所提供的该2N个窄操作数中的其他N个窄操作数,提供至该N个窄乘法器的该第二输入;以及当该指针指定该第二配置,该操作数选择逻辑:将该2N个多任务缓存器输出所提供的该2N个窄操作数中的相邻窄操作数相连,以产生N个宽操作数提供至该N个宽乘法器的该第一输入;以及将该第二存储器所提供的该2N个窄操作数中的相邻窄操作数相连,以产生N个宽操作数提供至该N个宽乘法器的该第二输入。6.根据权利要求1所述的神经网络单元,其特征在于,当该指针指定该第一配置或该第三配置,该操作数选择逻辑:加宽该2N个多任务缓存器输出中的N个多任务缓存器输出所提供的该2N个窄操作数中的该N个窄操作数,以将其提供至该N个宽乘法器的该第一输出;以及加宽该第二存储器所提供的该2N个窄操作数中的该其他N个窄操作数,以将其提供至该N个宽乘法器的该第二输入。7.根据权利要求1所述的神经网络单元,其特征在于,还包括:多个启动函数单元,对储存于该累加器的该总数执行启动函数,以产生结果;其中,当该指针指定该第一配置或该第三配置,该多个启动函数单元产生窄结果;其中,当该指针指定该第一配置,该多个启动函数单元产生宽结果。8.根据权利要求1所述的神经网络单元,其特征在于,该宽输入为该窄输入的宽度的两倍。9.一种运作神经网络单元的方法,其特征在于,该神经网络单元具有一缓存器,可利用指定第一、第二与第三配置的指针予以程序化;N个窄累加器与N个宽累加器,各该累加器具有一输出;N个窄乘法器与N个宽乘法器,各该乘法器具有第一与第二窄/宽输入,并对其分别执行窄/宽乘法运算以产生窄/宽乘积;N个窄加法器与N个宽加法器,各该加法器具有第一与第二输入,该第一输入接收该N个窄/宽累加器其中相对应的一个累加器的该输出;其中,该N个宽加法器中的各该宽加法器还具有第三输入,当该指针指定该第三配置,该第三输入从该N个窄乘法器中相对应的一个窄乘法器接收该窄乘积的加宽版本,该方法包括:当该指针指定该第一配置,利用该N个窄/宽加法器中的各该加法器,分别对该第一与第二输入执行窄/宽加法运算,以产生窄/宽总数储存于该相对应的窄/宽累加器;当该指针指定该第二配置,利用该N个宽加法器中的各该加法器,对该第一与第二输入执行宽加法运算,以产生宽总数储存于该相对应的宽累加器;以及当该指针指定该第三配置,利用该N个宽加法器中的各该加法器,对该第一、第二与第三输入执行宽加法运算,以产生宽总数储存于该相对应的宽累加器。10.根据权利要求9所述的方法,其特征在于,该神经网...

【专利技术属性】
技术研发人员:G·葛兰·亨利泰瑞·派克斯
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海;31

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

1