[发明专利]用于在顺序处理器上进行多次执行的动态代码加载在审
申请号: | 202080045753.8 | 申请日: | 2020-06-26 |
公开(公告)号: | CN114008589A | 公开(公告)日: | 2022-02-01 |
发明(设计)人: | S·雅各布;I·明金;M·埃尔-沙巴尼 | 申请(专利权)人: | 亚马逊技术股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/48;G06F13/28 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 钱慰民;张鑫 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 顺序 处理器 进行 多次 执行 动态 代码 加载 | ||
实施例包含用于实现在神经网络装置的执行引擎上执行N个推理的技术。用于单个推理的指令代码存储在可由DMA引擎存取的存储器(312)中,所述指令代码形成常规代码块。用于复位指令DMA队列的NOP代码块(302)和复位代码块(304)存储在所述存储器(312)中。生成所述指令DMA队列(362a),使得当所述指令DMA队列由所述DMA引擎执行时使所述DMA引擎针对N个推理中的每一个将所述常规代码块和额外代码块复制到指令缓冲器(350)。所述额外代码块对于前N‑I个推理是所述NOP代码块(302)并且对于第N个推理是所述复位代码块(304)。当所述复位代码块(304)由所述执行引擎执行时,复位所述指令DMA队列(362a)。
背景技术
在计算系统中,指令缓冲器通常用于存储可以由例如处理单元的执行引擎解码和执行的指令。举例来说,例如深度神经网络的人工神经网络可以包含多层处理节点。层上的每个处理节点可以对由前一层上的处理节点生成的输入数据进行计算以生成输出数据。例如,卷积神经网络可以包含多个卷积层、激活层和池化层,其中可以使用例如卷积引擎、激活引擎、池化引擎的执行引擎或流处理器实施每个层。这些执行引擎中的每一个可以使用指令缓冲器来临时地存储指令,所述指令将由指令解码器解码且由执行引擎的执行单元执行以执行各种功能。一般来说,神经网络可以被开发、训练并且可供许多终端用户使用。终端用户随后可以使用经过训练的神经网络来对输入数据执行各种任务(可以称为推理过程)。
由于硬件限制,指令缓冲器的大小可以小于用于执行用户功能(例如,推理)的指令代码的大小。因此,在每一推理期间可能需要再填充指令缓冲器。另外,因为可以针对不同组的输入数据连续地执行用户功能(例如,推理过程),所以可能需要将用于用户功能的指令代码重新加载到对于每一推理的指令缓冲器中。一般来说,需要在执行引擎正执行存储在指令缓冲器中的一些其它指令时可以再填充指令缓冲器,使得可以使用计算系统的可用资源更快速地且更有效地执行用户功能。
可以使用直接存储器存取(DMA)引擎将指令传递到指令缓冲器中。在一些情况下,DMA引擎基于DMA队列中的条目将存储在存储器(例如,动态随机存取存储器(DRAM))中的指令代码段复制到指令缓冲器中。当执行引擎执行添加到指令代码的特定指令时,可以触发DMA引擎复制代码段。替代地或另外,当硬件逻辑确定指令缓冲器中的自由空间大于阈值时,执行引擎的硬件逻辑可以使DMA引擎将指令代码段复制到指令缓冲器中。指令传递可以分成多个块,并且每个块可以包含用于通过触发将使用DMA引擎再填充指令缓冲器的DMA事务来提取下一个块的指令。
附图说明
根据本公开的各种实施例将参考图式进行描述,在图式中:
图1说明用于实施神经网络的设备的实例。
图2说明用于实现在执行引擎上执行多个推理的实例方法。
图3A和3B说明用于实现在执行引擎上执行多个推理的实例方法。
图4A到4D说明再填充指令缓冲器的实例。
图5A到5E说明再填充指令缓冲器的实例。
图6说明示出用于实现在执行引擎上执行N个推理的方法的实例的流程图。
图7是说明集成电路装置的实例的框图。
图8包含说明加速引擎的实例的框图。
图9包含说明主机系统的实例的框图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于亚马逊技术股份有限公司,未经亚马逊技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202080045753.8/2.html,转载请声明来源钻瓜专利网。