用于神经网络处理的针对可编程硬件节点的多功能单元制造技术

技术编号:38466897 阅读:13 留言:0更新日期:2023-08-11 14:44
提供了用于神经网络处理的处理器和方法。提供了一种在处理器中的方法,该处理器包括流水线,该流水线具有:矩阵矢量单元(MVU);被连接以接收来自MVU的输入的第一多功能单元;被连接以接收来自第一多功能单元的输出的第二多功能单元;以及被连接以接收来自第二多功能单元的输出的第三多功能单元。该方法包括解码指令,该指令集包括用于仅由MVU处理的第一类型指令和用于仅由多功能单元中的一个处理的第二类型指令。该方法包括取决于第一指令是第一类型指令还是第二类型指令,将第一指令映射以用于由矩阵矢量单元处理或映射到第一多功能单元、第二多功能单元或第三多功能单元中的任何一个。任何一个。任何一个。

【技术实现步骤摘要】
用于神经网络处理的针对可编程硬件节点的多功能单元
[0001]本申请是申请日为2018年02月08日、申请号为201880013989.6、专利技术名称为“用于神经网络处理的针对可编程硬件节点的多功能单元”的中国专利技术专利申请的分案申请。

技术介绍

[0002]神经网络技术被用来执行诸如阅读理解、语言转换或语音识别之类的复杂任务。虽然神经网络可以执行这样的任务,但是使用通用CPU或通用GPU来部署神经网络是很昂贵的。另外,虽然相对于CPU,GPU提供增加的吞吐量,但它们具有较差的延迟。

技术实现思路

[0003]在一个示例中,本公开涉及一种在包括流水线的处理器中用于处理指令的方法,该流水线包括:矩阵矢量单元;第一多功能单元,其中第一多功能单元被连接以接收来自矩阵矢量单元的输入;第二多功能单元,其中第二多功能单元被连接以接收来自第一多功能单元的输出;以及第三多功能单元,其中第三多功能单元被连接以接收来自第二多功能单元的输出。该方法可以包括解码经由输入队列接收的指令,其中所接收的指令的子集包括指令集,该指令集包括用于仅由矩阵矢量单元处理的第一类型指令和用于仅由第一多功能单元、第二多功能单元或第三多功能单元中的至少一个处理的第二类型指令。该方法还可以包括:取决于第一指令是第一类型指令还是第二类型指令,将第一指令映射以用于由矩阵矢量单元处理或映射到第一多功能单元、第二多功能单元或是第三多功能单元中的任何一个。
[0004]在另一示例中,本公开涉及一种处理器,包括被配置为处理指令的流水线,该流水线包括:矩阵矢量单元;第一多功能单元,其中第一多功能单元被连接以接收来自矩阵矢量单元的输入;第二多功能单元,其中第二多功能单元被连接以接收来自第一多功能单元的输出;以及第三多功能单元,其中第三多功能单元被连接以接收来自第二多功能单元的输出。处理器还可以包括:解码器,被配置为解码经由输入队列接收的指令,其中所接收指令的子集包括指令集,其包括用于仅由矩阵矢量单元处理的第一类型指令和用于仅由第一多功能单元、第二多功能单元或第三多功能单元中的至少一个处理的第二类型指令。解码器还可以被配置为取决于第一指令是第一类型指令还是第二类型指令来映射第一指令以用于由矩阵矢量单元或第一多功能单元处理,取决于第二指令是否是第二类型来映射第二指令以用于由第二多功能单元处理,并取决于第三指令是否是第二类型来映射第三指令以用于由第三多功能单元处理。
[0005]在又一示例中,本公开涉及一种系统,包括:输入消息处理器,被配置为处理传入消息,其中输入消息处理器还被配置为将传入消息分割成第一消息集合和第二消息集合。该系统还可以包括标量处理器,其被配置为处理第一消息集合和第二消息集合二者。该系统还可以包括标量处理器,其被配置为处理第一消息集合而不是第二消息集合。该系统还可以包括神经功能单元,其被配置为处理由标量处理器在至少经由第二消息集合接收的输入数据上放置在多个队列中的指令。神经功能单元还可以包括:被配置为处理指令的流水
线,该流水线包括:矩阵矢量单元;第一多功能单元,其中第一多功能单元被连接以接收来自矩阵矢量单元的输入;第二多功能单元,其中第二多功能单元被连接以接收来自第一多功能单元的输出;以及第三多功能单元,其中第三多功能单元被连接以接收来自第二多功能单元的输出。神经功能单元还可以包括:解码器,被配置为解码经由输入队列接收的指令,其中所接收指令的子集包括指令集,该指令集包括用于仅由矩阵矢量单元处理的第一类型指令和用于仅由第一多功能单元、第二多功能单元或第三多功能单元中的至少一个处理的第二类型指令。解码器还可以被配置为取决于第一指令是第一类型指令还是第二类型指令来映射第一指令以用于由矩阵矢量单元或第一多功能单元处理,取决于第二指令是否是第二类型来映射第二指令以用于由第二多功能单元处理,并取决于第三指令是否是第二类型来映射第三指令以用于由第三多功能单元处理。
[0006]提供本
技术实现思路
是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本
技术实现思路
不旨在标识所要求保护的主题内容的关键特征或必要特征,也不旨在用以限制所要求保护的主题内容的范围。
附图说明
[0007]通过示例说明了本公开,并且本公开不被附图所限制,其中相同的附图标记指示类似的元件。附图中的元件是为了简单和清楚起见而被图示,并且不一定被按比例绘制。
[0008]图1是根据一个示例的包括经由数据中心网络互连的节点的系统的框图;
[0009]图2是根据一个示例的包括分布式节点的系统的框图;
[0010]图3是根据一个示例的硬件节点的框图;
[0011]图4是根据一个示例的神经功能性单元的框图;
[0012]图5A和图5B示出了根据另一示例的神经功能单元的框图;
[0013]图6示出了根据一个示例的用于执行神经网络处理的硬件节点(例如,FPGA)的框图;
[0014]图7示出了根据一个示例的用于执行神经网络处理的区片(tile)布置的框图;
[0015]图8示出了根据一个示例的处理元件的框图;
[0016]图9示出了包括区片矩阵的节点的示例实现;
[0017]图10示出了根据一个示例的多功能单元的框图;
[0018]图11示出了根据一个示例的针对神经网络评估的数据流图形;
[0019]图12示出了根据一个示例的由神经功能单元对指令链的示例处理;
[0020]图13示出了根据一个示例的针对神经网络评估的数据流图形;
[0021]图14示出了根据一个示例的可以如何使用硬件节点(例如,FPGA)处理指令链的示意图;和
[0022]图15示出了根据一个示例的用于处理指令的方法的流程图。
具体实施方式
[0023]本公开中所公开的示例涉及使用用于实现基于神经网络的处理的系统、方法和组件。某些示例涉及深度神经网络(DNN)。DNN可以是用于深度学习的任何合适的神经网络。本公开中的附加示例涉及作为被用来实现DNN或类似神经网络的节点的一部分而被包括的功
能单元。可以使用现场可编程门阵列(FPGA)、专用集成电路(ASIC)、可擦除和/或复杂可编程逻辑器件(PLD)、可编程阵列逻辑(PAL)器件和通用阵列逻辑(GAL)器件的部分或组合来实现节点。图像文件可以被用来配置或重新配置诸如FPGA之类的节点。可以经由网络链路或来自主机CPU的本地链路(例如,PCIe)来递送图像文件或类似文件或程序。包括在图像文件中的信息可以被用来对节点的硬件块(例如,FPGA的逻辑块和可重新配置的互连)进行编程以实现期望的功能性。可以实现期望的功能性以支持可以经由计算、联网和存储资源的组合来提供的任何服务,诸如经由数据中心或用于递送服务的其他基础设施。
[0024]在一个示例中,本公开涉及DNN,其包括经由低延迟网络彼此耦合的多个节点(例如,FPGA)或这样节点的群组。利用数百到数千个这样的节点(例如,FPGA)的聚合平台可以有利地提供:(1)通过利用跨数十万个节点的并行性而本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在包括流水线的处理器中用于处理指令的方法,所述流水线包括:矩阵矢量单元和至少一个多功能单元,其中所述至少一个多功能单元被连接以接收来自所述矩阵矢量单元的输入,并且其中所述至少一个多功能单元包括从包括逐点加法块、逐点乘法块、S型块、双曲正切块和无操作块的群组中选择的至少两个块,所述方法包括:解码接收的指令,其中所接收的所述指令的子集包括一组指令,所述一组指令包括用于仅由所述矩阵矢量单元处理的第一类型指令和用于仅由所述至少一个多功能单元处理的第二类型指令;以及取决于第一指令是所述第一类型指令还是所述第二类型指令,将所述第一指令映射成由所述矩阵矢量单元或所述至少一个多功能单元处理。2.根据权利要求1所述的方法,还包括:如果所述第一指令是所述第一类型,则提供所述第一指令作为用于由所述矩阵矢量单元处理的输入。3.根据权利要求1所述的方法,还包括:如果所述第一指令是所述第二类型,则提供所述第一指令作为用于由所述至少一个多功能单元处理的输入。4.根据权利要求1所述的方法,其中用于处理指令的所述流水线还包括第二多功能单元,所述第二多功能单元被耦合以接收来自所述至少一个多功能单元的输出,并且其中所述方法还包括:取决于第二指令是否是所述第二类型指令来将所述第二指令映射成由所述第二多功能单元处理。5.根据权利要求4所述的方法,其中用于处理指令的所述流水线还包括第三多功能单元,所述第三多功能单元被耦合以接收来自所述第二多功能单元的输出,并且其中所述方法还包括:如果第三指令是所述第二类型,则提供所述第三指令作为用于由所述第三多功能单元处理的输入。6.根据权利要求5所述的方法,还包括:提供所述第一指令作为用于由所述矩阵矢量单元或所述至少一个多功能单元处理的输入,如果所述第二指令是所述第二类型,则提供所述第二指令作为用于由所述第二多功能单元处理的输入,并且如果所述第二指令是所述第二类型,则提供所述第三指令作为用于由所述第三多功能单元处理的输入。7.根据权利要求5所述的方法,其中所述第二多功能单元和所述第三多功能单元中的每一个还包括从包括逐点加法块、逐点乘法块、S型块、双曲正切块和无操作块的群组中选择的至少两个块。8.根据权利要求1所述的方法,其中所述第一类型指令包括矢量类型的指令,并且所述第二类型指令包括标量类型的指令。9.一种处理器,包括:流水线,可操作以处理指令,所述流水线包括:矩阵矢量单元和至少一个多功能单元,其中所述至少一个多功能单元被连接以接收来自所述矩阵矢量单元的输入,并且其中所述至少一个多功能单元包括从包括逐点加法块、逐点乘法块、S型块、双曲正切块和无操作块的群组中选择的至少两个块;以及解码器,可操作以解码经由输入队列接收的指令,其中所接收的所述指令的子集包括一组指令,所述一组指令包括用于仅由所述矩阵矢量单元处理的第一类型指令和用于仅由所述至少一个多功能单元处理的第二类型指令,并且其中所述解码器还可操作以:取决于第一指令是否是所述第一类型指令,将所述第一指令映射成由所述矩阵矢量单元或所述至
少一个多功能单元处理。10.根据权利要求9所述的处理器,其中仅所述矩阵矢量单元可操作以:当所述第一指令是所述第一类型时,处理所述第一指令。11.根据权利要求10所述的处理器,其中所述至少...

【专利技术属性】
技术研发人员:E
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

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

1