利用链接指令的神经网络处理制造技术

技术编号:22334435 阅读:32 留言:0更新日期:2019-10-19 13:06
提供了用于神经网络处理的硬件和方法。提供了一种在包括流水线的硬件节点中的方法,该流水线具有:矩阵矢量单元(MVU);被连接以接收来自矩阵矢量单元的输入的第一多功能单元;被连接以接收来自第一多功能单元的输出的第二多功能单元;以及被连接以接收来自第二多功能单元的输出的第三多功能单元。该方法包括使用MVU执行第一类型指令,该第一类型指令只能由MVU执行以生成第一结果。该方法还包括执行第二类型指令,该第二类型指令只能由多功能单元之一执行,并且生成第二结果,并且在不将两个结果中的任何一个存储在全局寄存器中的情况下,将第二结果传递给第二多功能和第三多功能单元。

【技术实现步骤摘要】
【国外来华专利技术】利用链接指令的神经网络处理
技术介绍
神经网络技术被用来执行诸如阅读理解、语言转换或语音识别之类的复杂任务。虽然神经网络可以执行这样的任务,但是使用通用CPU或通用GPU来部署神经网络是很昂贵的。另外,虽然相对于CPU,GPU提供增加的吞吐量,但它们具有较差的延迟。
技术实现思路
在一个示例中,本公开涉及一种在包括全局寄存器和流水线的硬件节点中用于处理指令的方法,该流水线包括:矩阵矢量单元,该矩阵矢量单元包括至少一个累加器寄存器;第一多功能单元,其中第一多功能单元被连接以接收来自矩阵矢量单元的输入;第二多功能单元,其中第二多功能单元被连接以接收来自第一多功能单元的输出;以及第三多功能单元,其中第三多功能单元被连接以接收来自第二多功能单元的输出。该方法可以包括经由全局寄存器从输入队列接收第一类型指令,其中第一类型指令只能由矩阵矢量单元执行,并且由矩阵矢量单元执行第一类型指令并将第一类型指令的第一结果存储在至少一个累加器寄存器中。该方法还可以包括经由全局寄存器从输入队列接收第二类型指令,其中第二类型指令只能由第一多功能单元、第二多功能单元或第三多功能单元中的至少一个执行,并且使用第一多功能单元执行第二类型指令,其中该执行包括对至少第一类型指令的第一结果执行操作并生成第二结果。该方法可以进一步包括在不将第一结果或第二结果存储在全局寄存器中的情况下,将第二结果传递给第二多功能单元,并且在那之后将第二结果传递给第三多功能单元。在另一示例中,本公开涉及一种硬件节点,包括全局寄存器和被配置为处理指令的流水线,该流水线包括:矩阵矢量单元,该矩阵矢量单元包括至少一个累加器寄存器;第一多功能单元,其中第一多功能单元被连接以接收来自矩阵矢量单元的输入;第二多功能单元,其中第二多功能单元被连接以接收来自第一多功能单元的输出;以及第三多功能单元,其中第三多功能单元被连接以接收第二多功能单元的输出。硬件还可以被配置为经由全局寄存器从输入队列接收第一类型指令,其中第一类型指令只能由矩阵矢量单元执行,并且由矩阵矢量单元执行第一类型指令并将第一类型指令的第一结果存储在至少一个累加器寄存器中,经由全局寄存器从输入队列接收第二类型指令,其中第二类型指令只能由第一多功能单元、第二多功能单元或第三多功能单元中的至少一个执行,并且使用第一多功能单元执行第二类型指令,其中该执行包括对至少第一类型指令的第一结果执行操作,并生成第二结果,并且在不将第一结果或第二结果存储在全局寄存器中的情况下,将第二结果传递给第二多功能单元并且在那之后将第二结果传递给第三多功能单元。在又一示例中,本公开涉及一种硬件节点,包括全局寄存器和被配置为处理指令的流水线,该流水线包括:矩阵矢量单元,该矩阵矢量单元包括至少一个累加器寄存器;第一多功能单元,其中第一多功能单元多功能单元被连接以接收来自矩阵矢量单元的输入;第二多功能单元,其中第二多功能单元被连接以接收来自第一多功能单元的输出;以及第三多功能单元,其中第三多功能单元被连接以接收来自第二多功能单元的输出,其中第一多功能单元、第二多功能单元和第三多功能单元中的每一个还包括逐点加法和无操作块中的至少一个。硬件还可以被配置为经由全局寄存器从输入队列接收第一类型指令,其中第一类型指令只能由矩阵矢量单元执行,并且由矩阵矢量单元执行第一类型指令并将第一类型指令的第一结果存储在至少一个累加器寄存器中,经由全局寄存器从输入队列接收第二类型指令,其中第二类型指令只能由第一多功能单元、第二多功能单元或第三多功能单元中的至少一个执行,并使用第一多功能单元执行第二类型指令,其中该执行包括对至少第一类型指令的第一结果执行操作,并生成第二结果,并且在不将第一结果或第二结果存储在全局寄存器中的情况下,将第二结果传递给第二多功能单元并且在那之后将第二结果传递给第三多功能单元。提供本
技术实现思路
是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本
技术实现思路
不旨在标识所要求保护的主题内容的关键特征或必要特征,也不旨在用以限制所要求保护的主题内容的范围。附图说明通过示例说明了本公开,并且本公开不被附图所限制,其中相同的附图标记指示类似的元件。附图中的元件是为了简单和清楚起见而被图示,并且不一定被按比例绘制。图1是根据一个示例的包括经由数据中心网络互连的节点的系统的框图;图2是根据一个示例的包括分布式节点的系统的框图;图3是根据一个示例的硬件节点的框图;图4是根据一个示例的神经功能性单元的框图;图5A和图5B示出了根据另一示例的神经功能单元的框图;图6示出了根据一个示例的用于执行神经网络处理的硬件节点(例如,FPGA)的框图;图7示出了根据一个示例的用于执行神经网络处理的区片(tile)布置的框图;图8示出了根据一个示例的处理元件的框图;图9示出了包括区片矩阵的节点的示例实现;图10示出了根据一个示例的多功能单元的框图;图11示出了根据一个示例的针对神经网络评估的数据流图形;图12示出了根据一个示例的由神经功能单元对指令链的示例处理;图13示出了根据一个示例的针对神经网络评估的数据流图形;图14示出了根据一个示例的可以如何使用硬件节点(例如,FPGA)处理指令链的示意图;和图15示出了根据一个示例的用于处理指令的方法的流程图。具体实施方式本公开中所公开的示例涉及使用用于实现基于神经网络的处理的系统、方法和组件。某些示例涉及深度神经网络(DNN)。DNN可以是用于深度学习的任何合适的神经网络。本公开中的附加示例涉及作为被用来实现DNN或类似神经网络的节点的一部分而被包括的功能单元。可以使用现场可编程门阵列(FPGA)、专用集成电路(ASIC)、可擦除和/或复杂可编程逻辑器件(PLD)、可编程阵列逻辑(PAL)器件和通用阵列逻辑(GAL)器件的部分或组合来实现节点。图像文件可以被用来配置或重新配置诸如FPGA之类的节点。可以经由网络链路或来自主机CPU的本地链路(例如,PCIe)来递送图像文件或类似文件或程序。包括在图像文件中的信息可以被用来对节点的硬件块(例如,FPGA的逻辑块和可重新配置的互连)进行编程以实现期望的功能性。可以实现期望的功能性以支持可以经由计算、联网和存储资源的组合来提供的任何服务,诸如经由数据中心或用于递送服务的其他基础设施。在一个示例中,本公开涉及DNN,其包括经由低延迟网络彼此耦合的多个节点(例如,FPGA)或这样节点的群组。利用数百到数千个这样的节点(例如,FPGA)的聚合平台可以有利地提供:(1)通过利用跨数十万个节点的并行性而显著地减少训练时间,(2)实现新的训练场景,诸如对实时数据的原位在线学习,以及(3)前所未有的规模的训练模型,同时在跨越数十万个服务器的超大规模数据中心内利用灵活且可互换的同类FPGA资源。在一个示例中,可以通过利用非常规数据表示来获得这样的优点,该非常规数据表示可以利用诸如FPGA之类的节点的架构。所描述的方面还可以在云计算环境中被实现。云计算可以是指用于实现对可配置计算资源的共享池的按需网络访问的模型。例如,可以在市场中使用云计算来提供对可配置计算资源的共享池的普遍且方便的按需访问。可配置计算资源的共享池可以经由虚拟化而被快速供应,并以低管理工作量或服务提供者交互而被发布,然后相应地本文档来自技高网
...

【技术保护点】
1.一种在包括全局寄存器和流水线的硬件节点中用于处理指令的方法,所述流水线包括:矩阵矢量单元,所述矩阵矢量单元包括至少一个累加器寄存器;第一多功能单元,其中所述第一多功能单元被连接以接收来自所述矩阵矢量单元的输入;第二多功能单元,其中所述第二多功能单元被连接以接收来自所述第一多功能单元的输出;以及第三多功能单元,其中所述第三多功能单元被连接以接收来自所述第二多功能单元的输出,所述方法包括:经由所述全局寄存器从输入队列接收第一类型指令,其中所述第一类型指令只能由所述矩阵矢量单元执行,并且由所述矩阵矢量单元执行所述第一类型指令并将所述第一类型指令的第一结果存储在所述至少一个累加器寄存器中;经由所述全局寄存器从所述输入队列接收第二类型指令,其中所述第二类型指令只能由所述第一多功能单元、所述第二多功能单元或所述第三多功能单元中的至少一个执行,并且使用所述第一多功能单元执行所述第二类型指令,其中所述执行包括对至少所述第一类型指令的所述第一结果执行操作并生成第二结果;以及在不将所述第一结果或所述第二结果存储在所述全局寄存器中的情况下,将所述第二结果传递给所述第二多功能单元并且之后将所述第二结果传递给所述第三多功能单元。...

【技术特征摘要】
【国外来华专利技术】2017.02.28 US 62/465,063;2017.06.29 US 15/637,4951.一种在包括全局寄存器和流水线的硬件节点中用于处理指令的方法,所述流水线包括:矩阵矢量单元,所述矩阵矢量单元包括至少一个累加器寄存器;第一多功能单元,其中所述第一多功能单元被连接以接收来自所述矩阵矢量单元的输入;第二多功能单元,其中所述第二多功能单元被连接以接收来自所述第一多功能单元的输出;以及第三多功能单元,其中所述第三多功能单元被连接以接收来自所述第二多功能单元的输出,所述方法包括:经由所述全局寄存器从输入队列接收第一类型指令,其中所述第一类型指令只能由所述矩阵矢量单元执行,并且由所述矩阵矢量单元执行所述第一类型指令并将所述第一类型指令的第一结果存储在所述至少一个累加器寄存器中;经由所述全局寄存器从所述输入队列接收第二类型指令,其中所述第二类型指令只能由所述第一多功能单元、所述第二多功能单元或所述第三多功能单元中的至少一个执行,并且使用所述第一多功能单元执行所述第二类型指令,其中所述执行包括对至少所述第一类型指令的所述第一结果执行操作并生成第二结果;以及在不将所述第一结果或所述第二结果存储在所述全局寄存器中的情况下,将所述第二结果传递给所述第二多功能单元并且之后将所述第二结果传递给所述第三多功能单元。2.根据权利要求1所述的方法,其中所述第一多功能单元、所述第二多功能单元和所述第三多功能单元中的每一个还包括:逐点加法块、逐点乘法块、S型块、双曲正切块和无操作块。3.根据权利要求1所述的方法,还包括:在将所述第二结果传递给所述第三多功能单元之后,将所述第二结果传递给被耦合到所述流水线的输出队列。4.根据权利要求1所述的方法,其中所述第一类型指令包括矢量类型的指令,并且所述第二类型指令包括标量类型的指令。5.根据权利要求1所述的方法,其中所述第一类型指令包括存储指示符,所述存储指示符使得所述第一结果被存储在所述至少一个累加器寄存器中。6.根据权利要求1所述的方法,其中所述第二类型指令包括前向指示符,所述前向指示符使得所述第二结果被传递给所述流水线中的下一个单元。7.根据权利要求...

【专利技术属性】
技术研发人员:J·弗沃斯E·S·钟D·C·伯格
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1