硬件处理单元、神经网络单元和计算机可用介质制造技术

技术编号:19009610 阅读:32 留言:0更新日期:2018-09-22 09:25
本发明专利技术涉及一种硬件处理单元、神经网络单元和计算机可用介质。该硬件处理单元包括:累加器;乘加器,其用于在第一输入和第二输入上接收相应的第一因子和第二因子、并且在第三输入上接收加数,乘加器产生第一因子和第二因子的乘积与加数的总和、并将总和提供于乘加器的输出上;第一复用器,其接收第一操作数、正1和负1并选择其中之一以作为第一因子提供至乘加器;第二复用器,其接收第二操作数、正1和负1并选择其中之一以作为第二因子提供至乘加器;第三复用器,其接收第一操作数和第二操作数并选择其中之一以提供于第三复用器的输出上;以及第四复用器,其接收第三复用器的输出和总和、并选择其中之一以提供至累加器。

Hardware processing unit, neural network unit and computer available medium

The invention relates to a hardware processing unit, a neural network unit and a computer usable medium. The hardware processing unit comprises an accumulator, a multiplier and an adder for receiving the corresponding first and second factors on the first and second inputs, and an adder on the third input, which generates the sum of the product and the additive of the first and second factors, and provides the sum on the output of the multiplier and the adder; A first multiplexer, which receives the first operand, positive 1 and negative 1 and selects one of them to provide to the multiplier-adder as the first factor; a second multiplexer, which receives the second operand, positive 1 and negative 1 and selects one of them to provide to the multiplier-adder as the second factor; a third multiplexer, which receives the first operand and the second operand One of them is selected to provide on the output of the third multiplexer, and the fourth multiplexer, which receives the output and sum of the third multiplexer, and selects one of them to provide to the accumulator.

【技术实现步骤摘要】
硬件处理单元、神经网络单元和计算机可用介质
本专利技术涉及一种硬件处理单元、神经网络单元和计算机可用介质。
技术介绍
最近,人工神经网络(artificialneuralnetwork,ANN)重新吸引了人们的兴趣,并且这种研究通常被称为深度学习、计算机学习和类似的术语。通用处理器计算能力的提高使得重新提起数十年前所消退的兴趣。ANN的最新应用包括语音识别和图像识别等。对于改进与ANN相关联的计算的性能和效率的需求正在增大。
技术实现思路
一种硬件处理单元,包括:累加器,其具有输入和输出;乘加器,其具有输出以及第一输入、第二输入和第三输入,所述乘加器用于在第一输入和第二输入上接收相应的第一因子和第二因子、并且在第三输入上接收加数,所述乘加器产生所述第一因子和所述第二因子的乘积与所述加数的总和、并将所述总和提供于所述乘加器的输出上;第一复用器,其具有耦接至所述乘加器的第一输入的输出,并且所述第一复用器用于接收第一操作数、正1和负1并选择其中之一以作为所述第一因子提供至所述乘加器;第二复用器,其具有耦接至所述乘加器的第二输入的输出,并且所述第二复用器用于接收第二操作数、正1和负1并选择其中之一以作为所述第二因子提供至所述乘加器;第三复用器,其具有输出,所述第三复用器用于接收所述第一操作数和所述第二操作数并选择其中之一以提供于所述第三复用器的输出上;以及第四复用器,其具有耦接至所述累加器的输入的输出,所述第四复用器用于接收所述第三复用器的输出和所述总和、并选择其中之一以提供至所述累加器。一种神经网络单元,包括:N个硬件处理单元的阵列,其中所述N个硬件处理单元各自包括:累加器,其具有输入和输出;乘加器,其具有输出以及第一输入、第二输入和第三输入,所述乘加器用于在第一输入和第二输入上接收相应的第一因子和第二因子、并且在第三输入上接收加数,所述乘加器产生所述第一因子和所述第二因子的乘积与所述加数的总和、并将所述总和提供于所述乘加器的输出上;第一复用器,其具有耦接至所述乘加器的第一输入的输出,并且所述第一复用器用于接收第一操作数、正1和负1并选择其中之一以作为所述第一因子提供至所述乘加器;第二复用器,其具有耦接至所述乘加器的第二输入的输出,并且所述第二复用器用于接收第二操作数、正1和负1并选择其中之一以作为所述第二因子提供至所述乘加器;第三复用器,其具有输出,所述第三复用器用于接收所述第一操作数和所述第二操作数并选择其中之一以提供于所述第三复用器的输出上;以及第四复用器,其具有耦接至所述累加器的输入的输出,所述第四复用器用于接收所述第三复用器的输出和所述总和并选择其中之一以提供至所述累加器,其中,N至少为1024。一种非暂时性计算机可用介质,其包括计算机可用程序,所述计算机可用程序使得计算机用作根据本专利技术所述的硬件处理单元中的各部件。一种硬件处理单元,包括:累加器,其具有输入和输出;乘加器,其具有输出以及第一输入、第二输入和第三输入,所述乘加器用于在第一输入和第二输入上接收相应的第一因子和第二因子、并且在第三输入上接收加数,所述乘加器产生所述第一因子和所述第二因子的乘积与所述加数的总和、并将所述总和提供于所述乘加器的输出上以被选择性地加载至所述累加器中;第一复用器,其具有耦接至所述乘加器的第一输入的输出,并且所述第一复用器用于接收第一操作数、正1和负1并选择其中之一以作为所述第一因子提供至所述乘加器;第二复用器,其具有耦接至所述乘加器的第二输入的输出,并且所述第二复用器用于接收第二操作数、正1和负1并选择其中之一以作为所述第二因子提供至所述乘加器;第三复用器,其具有输出,所述第三复用器用于接收所述第一操作数和所述第二操作数并选择其中之一以提供于所述第三复用器的输出上;以及第四复用器,其具有耦接至所述乘加器的第三输入的输出,所述第四复用器用于接收所述第三复用器的输出和所述累加器的输出并选择其中之一以作为所述加数提供至所述乘加器。一种神经网络单元,包括:N个硬件处理单元的阵列,其中所述N个硬件处理单元各自包括:累加器,其具有输入和输出;乘加器,其具有输出以及第一输入、第二输入和第三输入,所述乘加器用于在第一输入和第二输入上接收相应的第一因子和第二因子、并且在第三输入上接收加数,所述乘加器产生所述第一因子和所述第二因子的乘积与所述加数的总和、并将所述总和提供于所述乘加器的输出上以被选择性地加载至所述累加器中;第一复用器,其具有耦接至所述乘加器的第一输入的输出,并且所述第一复用器用于接收第一操作数、正1和负1并选择其中之一以作为所述第一因子提供至所述乘加器;第二复用器,其具有耦接至所述乘加器的第二输入的输出,并且所述第二复用器用于接收第二操作数、正1和负1并选择其中之一以作为所述第二因子提供至所述乘加器;第三复用器,其具有输出,所述第三复用器用于接收所述第一操作数和所述第二操作数并选择其中之一以提供于所述第三复用器的输出上;以及第四复用器,其具有耦接至所述乘加器的第三输入的输出,所述第四复用器用于接收所述第三复用器的输出和所述累加器的输出并选择其中之一以作为所述加数提供至所述乘加器,其中,N至少为1024。一种计算机程序产品,其被编码在至少一个非暂时性计算机可用介质中以与计算装置一起使用,所述计算机程序产品包括:计算机可用程序代码,其被实现在所述非暂时性计算机可用介质中,用于指定硬件处理单元,所述计算机可用程序代码包括:第一程序代码,用于指定累加器,所述累加器具有输入和输出;第二程序代码,用于指定乘加器,所述乘加器具有输出以及第一输入、第二输入和第三输入,所述乘加器用于在第一输入和第二输入上接收相应的第一因子和第二因子、并且在第三输入上接收加数,所述乘加器产生所述第一因子和所述第二因子的乘积与所述加数的总和、并将所述总和提供于所述乘加器的输出上以被选择性地加载至所述累加器中;第三程序代码,用于指定第一复用器,所述第一复用器具有耦接至所述乘加器的第一输入的输出,并且所述第一复用器用于接收第一操作数、正1和负1并选择其中之一以作为所述第一因子提供至所述乘加器;第四程序代码,用于指定第二复用器,所述第二复用器具有耦接至所述乘加器的第二输入的输出,并且所述第一复用器用于接收第二操作数、正1和负1并选择其中之一以作为所述第二因子提供至所述乘加器;第五程序代码,用于指定第三复用器,所述第三复用器具有输出,并且所述第一复用器用于接收所述第一操作数和所述第二操作数并选择其中之一以提供于所述第三复用器的输出上;以及第六程序代码,用于指定第四复用器,所述第四复用器具有耦接至所述乘加器的第三输入的输出,并且所述第一复用器用于接收所述第三复用器的输出和所述累加器的输出并选择其中之一以作为所述加数提供至所述乘加器。附图说明图1是示出包括神经网络单元(neuralnetworkunit,NNU)的处理器的框图。图2是示出图1的NPU的框图。图3是示出图1的NNU的N个NPU的N个复用寄存器(mux-reg)的布置的实施例的框图,以说明N个复用寄存器作为针对从图1的数据RAM接收到的一行数据字的N字轮转器(N-wordrotater)或循环移位器的操作。图4是示出用于储存在图1的NNU的程序存储器中并由该NNU执行的程序的表格。图5是示出NNU执本文档来自技高网...
硬件处理单元、神经网络单元和计算机可用介质

【技术保护点】
1.一种硬件处理单元,包括:累加器,其具有输入和输出;乘加器,其具有输出以及第一输入、第二输入和第三输入,所述乘加器用于在第一输入和第二输入上接收相应的第一因子和第二因子、并且在第三输入上接收加数,所述乘加器产生所述第一因子和所述第二因子的乘积与所述加数的总和、并将所述总和提供于所述乘加器的输出上;第一复用器,其具有耦接至所述乘加器的第一输入的输出,并且所述第一复用器用于接收第一操作数、正1和负1并选择其中之一以作为所述第一因子提供至所述乘加器;第二复用器,其具有耦接至所述乘加器的第二输入的输出,并且所述第二复用器用于接收第二操作数、正1和负1并选择其中之一以作为所述第二因子提供至所述乘加器;第三复用器,其具有输出,所述第三复用器用于接收所述第一操作数和所述第二操作数并选择其中之一以提供于所述第三复用器的输出上;以及第四复用器,其具有耦接至所述累加器的输入的输出,所述第四复用器用于接收所述第三复用器的输出和所述总和、并选择其中之一以提供至所述累加器。

【技术特征摘要】
2017.04.11 US 62/484,3531.一种硬件处理单元,包括:累加器,其具有输入和输出;乘加器,其具有输出以及第一输入、第二输入和第三输入,所述乘加器用于在第一输入和第二输入上接收相应的第一因子和第二因子、并且在第三输入上接收加数,所述乘加器产生所述第一因子和所述第二因子的乘积与所述加数的总和、并将所述总和提供于所述乘加器的输出上;第一复用器,其具有耦接至所述乘加器的第一输入的输出,并且所述第一复用器用于接收第一操作数、正1和负1并选择其中之一以作为所述第一因子提供至所述乘加器;第二复用器,其具有耦接至所述乘加器的第二输入的输出,并且所述第二复用器用于接收第二操作数、正1和负1并选择其中之一以作为所述第二因子提供至所述乘加器;第三复用器,其具有输出,所述第三复用器用于接收所述第一操作数和所述第二操作数并选择其中之一以提供于所述第三复用器的输出上;以及第四复用器,其具有耦接至所述累加器的输入的输出,所述第四复用器用于接收所述第三复用器的输出和所述总和、并选择其中之一以提供至所述累加器。2.根据权利要求1所述的硬件处理单元,其中,还包括:控制逻辑,用于响应于向所述累加器写入所述第一操作数和所述第二操作数的乘积与所述累加器的总和的第一命令而进行以下操作:控制所述第一复用器选择所述第一操作数;控制所述第二复用器选择所述第二操作数;以及控制所述第四复用器选择所述总和,其中,所述控制逻辑响应于使所述累加器包含所述第一操作数和所述累加器中的最大值的第二命令而进行以下操作:控制所述第一复用器选择所述第一操作数;控制所述第二复用器选择负1;控制所述第三复用器选择所述第一操作数;以及控制所述第四复用器在所述总和为负的情况下选择所述第一操作数,否则使所述累加器保留所述累加器的值。3.根据权利要求2所述的硬件处理单元,其中,还包括:第五复用器,其具有耦接至所述乘加器的第三输入的输出,所述第五复用器用于接收所述第三复用器的输出和所述累加器的输出并选择其中之一以作为所述加数提供至所述乘加器,其中,所述控制逻辑响应于向所述累加器写入所述第二操作数与所述第一操作数的差的第三命令而进行以下操作:控制所述第一复用器选择负1;控制所述第二复用器选择所述第二操作数;控制所述第三复用器选择所述第一操作数;控制所述第五复用器选择所述第三复用器的输出;以及控制所述第四复用器选择所述总和。4.根据权利要求3所述的硬件处理单元,其中,所述控制逻辑响应于向所述累加器写入所述第二操作数和所述累加器的总和的第四命令而进行以下操作:控制所述第一复用器选择正1;控制所述第二复用器选择所述第二操作数;控制所述第五复用器选择所述累加器的输出;以及控制所述第四复用器选择所述总和。5.根据权利要求3所述的硬件处理单元,其中,所述第五复用器还接收零,并在零、所述第三复用器的输出和所述累加器的输出中选择其中之一以作为所述加数提供至所述乘加器,以及其中,所述控制逻辑响应于向所述累加器写入所述第一操作数和所述第二操作数的乘积的第四命令而进行以下操作:控制所述第一复用器选择所述第一操作数;控制所述第二复用器选择所述第二操作数;控制所述第五复用器选择所述零;以及控制所述第四复用器选择所述总和。6.根据权利要求3所述的硬件处理单元,其中,所述第一复用器还接收零,并在零、所述第一操作数、正1和负1中选择其中之一以作为所述第一因子提供至所述乘加器,所述第五复用器还接收所述累加器的输出的取反版本,并在所述累加器的输出的所述取反版本、所述第三复用器的输出和所述累加器的输出中选择其中之一以作为所述加数提供至所述乘加器,以及所述控制逻辑响应于使所述累加器包含所述累加器的绝对值的第四命令而进行以下操作:控制所述第一复用器选择零;控制所述第五复用器选择所述累加器的输出的所述取反版本;以及控制所述第四复用器在所述累加器为负的情况下选择所述总和,否则使所述累加器保留所述累加器的值。7.根据权利要求3所述的硬件处理单元,其中,所述第一复用器还接收零,并在零、所述第一操作数、正1和负1中选择其中之一以作为所述第一因子提供至所述乘加器,所述第五复用器还接收所述累加器的输出的倒置版本,并在所述累加器的输出的所述倒置版本、所述第三复用器的输出和所述累加器的输出中选择其中之一以作为所述加数提供至所述乘加器,所述乘加器具有用于接收第二加数的第四输入,所述乘加器产生所述第一因子和所述第二因子的乘积与所述第一加数和所述第二加数的总和,并将所述总和提供于所述乘加器的输出上,以及所述控制逻辑响应于使所述累加器包含所述累加器的绝对值的第四命令而进行以下操作:控制所述第一复用器选择零;控制所述第五复用器选择所述累加器的输出的所述倒置版本;在所述累加器为负的情况下提供正1作为所述第二加数,否则提供零;以及控制所述第四复用器在所述累加器为负的情况下选择所述总和,否则使所述累加器保留所述累加器的值。8.根据权利要求3所述的硬件处理单元,其中,所述第一复用器还接收零,并在零、所述第一操作数、正1和负1中选择其中之一以作为所述第一因子提供至所述乘加器,所述第五复用器还接收所述累加器的输出的倒置版本,并在所述累加器的输出的所述倒置版本、所述第三复用器的输出和所述累加器的输出中选择其中之一以作为所述加数提供至所述乘加器,所述乘加器具有用于接收第二加数的第四输入,所述乘加器产生所述第一因子和所述第二因子的乘积与所述第一加数和所述第二加数的总和,并将所述总和提供于所述乘加器的输出上,以及所述控制逻辑响应于使所述累加器加载...

【专利技术属性】
技术研发人员:道格拉斯·R·瑞德G·葛兰·亨利金·C·霍克帕尔维兹·帕朗查尔
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海,31

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

1