一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

神经处理装置和神经处理装置的操作方法与流程

2022-09-07 14:22:48 来源:中国专利 TAG:

神经处理装置和神经处理装置的操作方法
1.本技术要求于2021年3月3日在韩国知识产权局提交的第10-2021-0028311号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
2.以下描述涉及神经处理装置和神经处理装置的操作方法。


背景技术:

3.对于神经处理单元(npu),可使用单个集成存储器。在这种情况下,当共享存储器的运算符(operator)的数量增加时,存储器用户(client)的数量可能增加。因此,存储体冲突(bank conflict)的发生率可能增加,从而损害npu的性能。然而,增加存储体的数量以防止存储体之间的这样的冲突会增加功率及/或存储器面积开销。另外,将存储体的存储器大小固定可能导致有限且无效的存储器使用和面积开销的生成。因此,期望一种可在有效地使用存储器的同时防止存储体冲突的存储器操作方法。


技术实现要素:

4.提供本发明内容是为了以简化的形式介绍将在下面的具体实施方式中进一步描述的构思的选择。本发明内容不旨在确定所要求权利的主题的关键特征或必要特征,也不旨在用于帮助确定所要求权利的主题的范围。
5.在一个总体方面,一种神经处理装置包括:第一存储器,被配置为存储通用数据;第二存储器,与第一存储器区分开,并且具有小于第一存储器的容量的容量;带宽控制路径,被配置为基于控制信号重新配置存储器带宽,以用于存储器用户使用第一存储器和第二存储器中的一个;以及控制逻辑,被配置为:计算用于存储器用户中的目标用户的数据的目标容量,并且基于将所述目标容量与第二存储器的容量进行比较的结果生成控制信号,以将目标用户的数据存储在第二存储器中,存储器用户中的目标用户是基于人工神经网络的层配置确定的。
6.控制逻辑还可被配置为:响应于所述目标容量大于第二存储器的容量,生成控制信号,以将目标用户的数据存储在第一存储器中,并且减小第一存储器针对存储器用户中的排除了目标用户的至少一个剩余用户的数据的带宽。
7.控制逻辑还可被配置为:响应于所述目标容量小于或等于第二存储器的容量,生成控制信号,以将目标用户的数据存储在第二存储器中,并且增加第一存储器针对存储器用户中的排除了目标用户的至少一个剩余用户的数据的带宽。
8.控制逻辑还可被配置为:响应于第一存储器的容量大于存储器用户的数据容量,生成控制信号,以在正常模式下操作带宽控制路径,正常模式将第一存储器用于目标用户的数据,目标用户是基于人工神经网络的层类型和层配置确定的。
9.控制逻辑还可被配置为:响应于第一存储器的容量小于或等于存储器用户的数据容量,生成控制信号,以在增强模式下操作带宽控制路径,增强模式将第二存储器用于目标
用户的数据,目标用户是基于人工神经网络的层类型和层配置确定的。
10.当人工神经网络包括卷积层并且目标用户是存储器用户中的与权重相关联的第一用户时,控制逻辑还可被配置为:基于所述卷积层的输入通道和内核大小将所述权重存储在第二存储器中,并且增加第一存储器针对存储器用户中的第三用户的带宽,第三用户与部分和或输出特征图相关联。
11.当人工神经网络包括全连接层并且目标用户是与特征图相关联的第二用户时,控制逻辑还可被配置为:将特征图的数据存储在第二存储器中,并且增加第一存储器针对存储器用户中的第一用户的带宽,第一用户与权重相关联。
12.当人工神经网络包括卷积层并且目标用户是与部分和相关联的第三用户时,控制逻辑还可被配置为:基于所述卷积层的特征图的大小将所述部分和的数据存储在第二存储器中,并且增加第一存储器针对存储器用户中的第一用户的带宽,第一用户与权重相关联。
13.存储器用户中的每个存储器用户可与输入特征图、权重、以及部分和或输出特征图中的任何一个相关联。
14.带宽控制路径可包括十二个输入端口以及连接到第一存储器的九个输出端口,所述十二个输入端口包括:用于存储器用户中的与权重相关联的第一用户的四个第一输入端口、用于存储器用户中的与输入特征图相关联的第二用户的四个第二输入端口、以及用于存储器用户中的与部分和相关联的第三用户的四个第三输入端口。
15.所述四个第一输入端口可连接到4选1复用器,所述四个第一输入端口中的排除了一个第一输入端口的剩余的三个第一输入端口可分别被连接到用于第三用户的三个第三输入端口和三个2选1复用器,并且用于第二用户的所述四个第二输入端口可直接连接到所述九个输出端口中的四个输出端口,第二用户与输入特征图相关联。
16.当第一存储器针对第一用户的带宽受限时,控制逻辑还可被配置为:通过轮询方法顺序地向所述4选1复用器提供选择信号,所述4选1复用器连接到所述四个第一输入端口。
17.当第一存储器针对第一用户的带宽增加时,控制逻辑还可被配置为:向所述四个第一输入端口中的所述一个第一输入端口提供选择信号,所述一个第一输入端口没有通过2选1复用器连接到所述三个第三输入端口。
18.在另一个总体方面,一种神经处理装置的操作方法,所述神经处理装置包括第一存储器和第二存储器,第二存储器具有小于第一存储器的容量的容量。所述操作方法包括:计算用于存储器用户中的目标用户的数据的目标容量,存储器用户中的目标用户是基于人工神经网络的层配置确定的;将所述目标容量与第二存储器的容量进行比较;基于比较的结果,从第一存储器和第二存储器之间确定将在其中存储目标用户的数据的目标存储器;并且生成用于带宽控制路径的控制信号,以重新配置针对存储器用户的存储器带宽,以将目标用户的数据存储在目标存储器中。
19.确定目标存储器的步骤可包括:响应于所述目标容量大于第二存储器的容量,将第一存储器确定为目标存储器。生成控制信号的步骤可包括:生成控制信号,以将目标用户的数据存储在第一存储器中,并且减小第一存储器针对存储器用户中的排除了目标用户的至少一个剩余用户的数据的带宽。
20.确定目标存储器的步骤可包括:响应于所述目标容量小于或等于第二存储器的容
量,将第二存储器确定为目标存储器。生成控制信号的步骤可包括:生成控制信号,以将目标用户的数据存储在第二存储器中,并且增加第一存储器针对存储器用户中的排除了目标用户的至少一个剩余用户的数据的带宽。
21.所述操作方法还可包括:将第一存储器的容量与存储器用户的数据容量进行比较。生成控制信号的步骤可包括:响应于作为所述比较的结果,第一存储器的容量大于存储器用户的数据容量,生成控制信号,以在正常模式下操作带宽控制路径,正常模式将第一存储器用于目标用户的数据,目标用户是基于人工神经网络的层类型和层配置确定的。
22.生成控制信号的步骤还可包括:响应于第一存储器的容量小于或等于存储器用户的数据容量,生成控制信号,以在增强模式下操作带宽控制路径,增强模式将第二存储器用于目标用户的数据,目标用户是基于层类型和层配置确定的。
23.当人工神经网络包括卷积层并且目标用户可以是与权重相关联的第一用户时,生成控制信号的步骤可包括:基于所述卷积层的输入通道和内核大小将所述权重存储在第二存储器中;以及增加第一存储器针对存储器用户中的第三用户的带宽,第三用户与部分和或输出特征图相关联。
24.当人工神经网络包括全连接层并且目标用户是与特征图相关联的第二用户时,生成控制信号的步骤可包括:将特征图的数据存储在第二存储器中;以及增加第一存储器针对存储器用户中的第一用户的带宽,第一用户与权重相关联。
25.当人工神经网络包括卷积层并且目标用户是与部分和相关联的第三用户时,生成控制信号的步骤可包括:基于所述卷积层的特征图的大小将所述部分和的数据存储在第二存储器中;以及增加第一存储器针对存储器用户中的第一用户的带宽,第一用户与权重相关联。
26.存储器用户中的每个可与输入特征图、权重以及部分和或输出特征图中的任何一个相关联。
27.一种可存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时使所述处理器执行上述的操作方法。
28.在另一个总体方面,一种神经处理装置包括:第一存储体;第二存储体,具有小于第一存储器的容量的容量;带宽控制路径,被配置为基于控制信号重新配置存储器带宽,以用于存储器用户使用第一存储体和第二存储体中的任何一个;以及控制逻辑。控制逻辑被配置为:计算用于存储器用户中的目标用户的数据的目标容量,存储器用户中的目标用户是基于人工神经网络的层配置确定的;将所述目标容量与第二存储体的容量进行比较;以及响应于所述目标容量小于或等于第二存储体的容量,生成控制信号,以将目标用户的数据存储在第二存储体中,并且增加第一存储体针对存储器用户中的排除了目标用户的至少一个剩余用户的数据的带宽。
29.控制逻辑还可被配置为:响应于所述目标容量大于第二存储体的容量,生成控制信号,以将目标用户的数据存储在第一存储体中,并且减小第一存储体针对存储器用户中的排除了目标用户的至少一个剩余用户的数据的带宽。
30.根据以下具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
31.图1示出了用于神经处理单元(npu)的存储器的示例。
32.图2示出了roofline模型的示例。
33.图3示出了神经处理装置的示例。
34.图4a和图4b示出了图3中所示的带宽控制路径的内部结构的示例。
35.图5示出了带宽控制路径的数据路径和控制路径的示例。
36.图6示出了神经处理装置的操作流程的示例。
37.图7示出了在与权重相关联的第一用户使用第二存储器的情况下的操作和roofline模型的示例。
38.图8示出了在与特征图相关联的第二用户使用第二存储器的情况下的操作和roofline模型的示例。
39.图9示出了在与部分和相关联的第三用户使用第二存储器的情况下的操作和roofline模型的示例。
40.图10示出了神经处理装置的另一示例。
41.图11示出了神经处理装置的操作流程的另一示例。
42.图12a和图12b示出了神经处理装置使用第一存储器和第二存储器以用于目标用户的数据的示例。
43.图13示出了带宽控制总线的示例。
44.图14示出了神经处理装置的操作流程的示例。
45.在整个附图和具体实施方式中,相同的参考标号表示相同的元件。附图可能未按比例绘制,并且为了清楚、说明和方便,附图中的元件的相对大小、比例和描绘可能被夸大。
具体实施方式
46.提供以下具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本技术的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作顺序仅仅是示例,并且不限于在此阐述的那些,而是除必须以特定顺序发生的操作之外,可如在理解本技术的公开之后将是清楚的改变。此外,为了更清楚和简明,可省略对已知特征的描述。
47.在此描述的特征可以以不同的形式体现,并且不应被解释为限于在此描述的示例。相反,提供在此描述的示例仅仅是为了说明在理解本技术的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些方式。
48.在此使用的术语仅用于描述特定示例的目的,而不用于限制本公开。如在此所使用的,除非上下文另外清楚地指示,否则单数形式也旨在包括复数形式。如在此所使用的,术语“和/或”包括相关联的所列项目中的任何一个和任何两个或更多个的任何组合。如在此所使用的,术语“包括”、“包含”和“具有”说明存在所陈述的特征、数量、操作、元件、组件和/或其组合,但不排除存在或添加一个或更多个其他特征、数量、操作、元件、组件和/或其组合。
49.另外,在此可使用诸如第一、第二、a、b、(a)、(b)等的术语来描述组件。这些术语中的每个不用于限定相应组件的本质、顺序或序列,而是仅用于将相应组件与其他组件区分
开。在整个说明书中,当诸如层、区域或衬底的元件被描述为在另一元件“上”、“连接到”或“结合到”另一元件时,它可直接在另一元件“上”、直接“连接到”或直接“结合到”另一元件,或者可存在介于它们之间的一个或更多个其他元件。相反,当元件被描述为“直接在另一元件上”、“直接连接到”或“直接结合到”另一元件时,可不存在介于它们之间的其他元件。
50.除非另有定义,否则在此使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义一致和在理解本公开之后通常理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如在通用词典中定义的术语)应被解释为具有与它们在相关领域的上下文和本公开中的含义一致的含义,并且不应以理想化或过于形式化的意义来解释。
51.此外,在示例实施例的描述中,当认为在理解本技术的公开之后已知的结构或功能的详细描述将导致示例实施例的模糊解释时,将省略这样的描述。在下文中,将参照附图详细描述示例,并且在附图中,相同参考标号始终表示相同的元件。
52.图1示出了用于神经处理单元(npu)的存储器的示例。参照图1,示出了用于npu 110的片上存储装置111。
53.npu 110可表示人工智能(ai)处理器,人工智能(ai)处理器通过突触连接到多个神经元以在它们之间交换信号,并被配置为同时处理大量操作,并且可针对ai算法操作进行优化。npu 110也可被称为神经网络处理装置或神经处理装置,并且可使用硬件节点的多个层(例如,神经元)来自己学习和处理信息。
54.npu 110可实时处理多个运算(诸如,同时矩阵运算),并且通过基于累积数据的自学习来得出最优值。
55.npu 110可在作为npu 110的内部存储装置的存储装置111中存储输入特征图(或被指示为ifm)和/或权重,输入特征图和/或权重是通过输入特征图获取器112和/或权重获取器113从存储装置111读取的。npu 110可在通过psum获取器114将在操作期间生成的部分和(partial sum)的结果(或被指示为psum)临时存储在存储装置111中。可选地,npu 110可通过ofm写入器将输出特征图(或被指示为ofm)存储在存储装置111中,并在下一层中使用输出特征图。
56.npu 110可重新使用内部存储的信息,以用于乘法累加(mac)单元116中的操作。内部存储的信息可包括例如输入特征图、权重、部分和结果以及输出特征图,但是内部存储的信息的示例不限于此。
57.存储装置111可具有比具有高功率和低处理速度的动态随机存取存储器(dram)130相对较高的处理速度。存储装置111可具有小于dram 130的容量的容量。存储装置111可被配置为例如静态随机存取存储器(sram)和/或闪存,但是存储装置111的示例不限于此。
58.图2示出了roofline模型的示例。图2示出了roofline模型中的存储器限制(memory-bound)算法1和roofline模型中的处理器限制(processor-bound)算法2。
59.roofline模型可表示直观的视觉性能模型,该直观的视觉性能模型用于通过表现出固有的硬件约束以及优化的潜在效果和优先级来提供在诸如多核或加速器处理器的结构中执行的预定计算内核或应用程序的估计性能值。roofline模型可指示通过优化可达到的潜在性能值。
60.参照图2中所示的roofline模型,观察到性能随着运算强度值逐渐增加而逐渐增
加,然后在某个点处收敛。例如,在其中存在算法1的区域中,观察到在100%mac利用率的情况下,效率随着存储器带宽增加而增加。算法1的效率可随着存储器带宽增加而增加,但在运算强度值为256ops/字节的点之后,即使存储器带宽增加,算法1的效率也不再增加。运算强度可由dram流量(traffic)的每字节运算表示,并且用于确定针对给定计算内核的最合适的架构或确定优化内核的方法。
61.在算法1达到运算强度值为256ops/字节且效率收敛的点之前,性能可随着存储器访问减少而增加。如上所述,在用于完成给定计算或计算查询的时间主要由保存任务数据所需的存储器量确定的情况下,这种情况可表示为存储器限制的。
62.相反,在其中存在算法2的区域中,观察到尽管存储器带宽增加,但效率没有增加,并且处理器本身的性能可确定效率。在其中存在算法2的区域中,对存储器的访问的重要性可被降低,因此存储器不会再限制性能。例如,可通过增加mac的数量或增加mac(计算)速度来提高效率。如上所述,在用于完成给定计算或计算查询的时间主要由被配置为执行计算或计算操作的处理器的性能确定的情况下,这种情况可表示为计算限制的或处理器限制的。
63.在下文中,将详细描述效率受存储器限制的神经处理装置的操作。
64.图3示出了神经处理装置的示例。参照图3,神经处理装置300包括第一存储器310、第二存储器330、带宽控制模块350和控制逻辑390。
65.第一存储器310可在其中存储通用数据。第一存储器310也可被称为主存储器或通用存储器,因为第一存储器310存储人工神经网络的所有数据集。在下文中,术语“第一存储器”、“主存储器”和“通用存储器”将可互换地使用。第一存储器310包括多个sram实体。第一存储器310可被划分为可被配置为可独立访问的多个存储体的各种部分。第一存储器310包括存储体仲裁逻辑315,存储体仲裁逻辑315被配置为仲裁对第一存储器310的存储体的访问请求,并且在可能的情况下允许按相继顺序将存储器访问传送到存储体。存储体仲裁逻辑315的控制信号可从神经处理装置300外部传送或者在神经处理装置300内部生成。根据示例,例如,第一存储器310可以是暂存ram。
66.第二存储器330可与第一存储器310区分开,并且具有小于第一存储器310的容量的容量。第二存储器330包括多个sram实体,并且如在第一存储器310中那样被配置有多个存储体。第二存储器330也可被称为辅助存储器或专用存储器,因为第二存储器330作为用于特定操作(诸如,以存储在操作期间生成的部分和的结果为例)的专用存储器进行操作。在下文中,术语“第二存储器”、“辅助存储器”和“专用存储器”将可互换地使用。
67.类似于第一存储器310,第二存储器330包括存储体仲裁逻辑335,存储体仲裁逻辑335被配置为仲裁对第二存储器330的存储体的访问的请求,并且在可能的情况下允许按相继顺序将存储器访问传送到存储体。
68.带宽控制模块350包括带宽(或被指示为bw或b/w)控制路径355(或被指示为b/w受控路径)、多个2选1复用器351、352和353以及3选1复用器357。
69.带宽控制路径355可基于控制逻辑390的控制信号来重新配置针对存储器用户360、370和380的存储器带宽,使得存储器用户360、370和380使用第一存储器310和第二存储器330中的任何一个。存储器用户360、370和380可包括例如与输入特征图相关的用户360、与权重相关的用户370以及与部分和或输出特征图相关的用户380,但是其示例不限于
此。与输入特征图相关的用户360可以是对输入特征图执行获取、读取、计算和存储的操作的用户。与权重相关的用户370可以是对权重执行获取、读取、计算和存储的操作的用户。与部分和或输出特征图相关的用户380可以是对部分和的结果或输出特征图执行获取、读取、计算和存储的操作的用户。
70.控制逻辑390可计算用于目标用户的数据的目标容量,目标用户是基于人工神经网络的层配置从存储器用户360、370和380中确定的。层配置可被解释为基于人工神经网络的类型的层的配置的形式(例如,人工神经网络是由全连接层、卷积层还是循环层形成)。目标用户可被解释为存储器用户360、370和380中的其数据将作为要存储在第二存储器330中的目标的用户。
71.控制逻辑390可基于将目标容量与第二存储器330的容量进行比较的结果来生成控制信号,使得目标用户的数据被存储在第二存储器330中。
72.响应于目标容量大于第二存储器330的容量,控制逻辑390可生成控制信号,使得目标用户的数据被存储在第一存储器310中,从而限制第一存储器310针对存储器用户360、370和380中的排除了目标用户的至少一个剩余用户的数据的带宽。相反,响应于目标容量小于或等于第二存储器330的容量,控制逻辑390可生成控制信号,使得目标用户的数据被存储在第二存储器330,从而增加第一存储器310针对存储器用户360、370和380中的排除了目标用户的至少一个剩余用户的数据的带宽。
73.在第一存储器310的带宽足够的情况下,控制逻辑390可允许将所有数据集存储在第一存储器310中。然而,在第一存储器310的带宽不足的情况下,控制逻辑390可基于人工神经网络的层类型和层配置,将第二存储器330用作用于小尺寸数据的专用辅助存储器。
74.在下文中,将参照图4描述带宽控制路径355如何基于控制信号针对存储器用户重新配置存储器带宽。另外,将参照图5描述带宽控制模块350的数据路径和控制路径。
75.图4a和图4b示出了图3中所示的带宽控制路径355的内部结构的示例。图5示出了图3中所示的带宽控制模块350的数据路径和控制路径的示例。
76.参照图4a和图5,存储器用户(例如,用户0、用户1及用户2)可通过带宽控制路径连接到存储体仲裁逻辑(例如,图3中所示的存储体仲裁逻辑315)。如图5中所示,存储器用户(用户0、用户1和用户2)可分别对应于与权重相关的用户、与输入特征图或输入相关的用户以及与部分和请求相关的用户。
77.例如,在第一存储器的容量大于存储器用户(用户0、用户1和用户2)的数据容量之和的情况下,控制逻辑可生成控制信号,使得带宽控制路径在正常模式下操作,正常模式将第一存储器用于目标用户的数据和其他用户的数据,目标用户是基于人工神经网络的层类型和层配置确定的。换句话说,在正常模式下,所有存储器用户使用第一存储器。
78.相反,在第一存储器的容量小于或等于存储器用户的数据容量之和的情况下,控制逻辑可生成控制信号,使得带宽控制路径在增强模式下操作,增强模式将第二存储器用于目标用户的数据,目标用户是基于人工神经网络的层类型和层配置确定的。控制逻辑可对存储器用户(用户0、用户1和用户2)中的一个用户(例如,目标用户)进行设置,使得所述一个存储器用户使用第二存储器,并且增加第一存储器针对除目标用户之外的剩余用户的带宽。
79.如上所述,带宽控制路径可基于控制信号来重新配置针对存储器用户(用户0、用
户1和用户2)的存储器带宽。例如,可将四个端口分配给存储器用户(用户0、用户1和用户2)中的每个。
80.参照图4a和图5,神经处理装置包括连接到数据获取器的12个输入端口和连接到第一存储器的存储体仲裁逻辑的9个输出端口530。12个输入端口包括用于来自存储器用户中的第一用户510的请求的四个第一输入端口、用于来自存储器用户中的第二用户515的请求的四个第二输入端口、以及用于来自存储器用户中的第三用户520的请求的四个第三输入端口,第一用户510与权重相关,第二用户515与输入特征图或输入相关,第三用户520与部分和相关。
81.连接到用于来自与权重相关的第一用户510的请求的四个第一输入端口的线可连接到4选1复用器540。这里,用于与权重相关的第一用户510的四个第一输入端口中排除一个第一输入端口的剩余三个第一输入端口可分别连接到用于与部分和相关的第三用户520的三个第三输入端口以及三个2选1复用器550、560和570。
82.另外,用于与输入特征图相关的第二用户515的四个第二输入端口可直接连接到九个输出端口530中的四个输出端口。
83.例如,在所有存储器用户(用户0、用户1和用户2)使用第一存储器(或主存储器)的情况下,如图4a的左侧部分中所示,用于存储器用户(用户0、用户1和用户2)中的第一用户或用户0(即,图5中的与权重相关的第一用户510)的第一存储器的带宽可从4被限制(或减小)为1。
84.控制逻辑可通过轮询(round-robin)方法通过旋转(例如,0
→1→2→3→0→1……
)以相继顺序向连接到与权重相关的第一用户510的所有四个第一输入端口的4选1复用器540提供选择信号。可通过连接到控制信号590的2选1复用器580来提供用于4选1复用器540的选择信号。三个2选1复用器550、560和570可基于控制信号590选择来自与部分和相关的第三用户520的请求,并将所选择的请求连接到输出端口530。
85.例如,在存储器用户(用户0、用户1和用户2)中的用户2(即,图5中的与部分和相关的第三用户520)使用第二存储器(或辅助存储器或专用存储器)的情况下,如图4a的右侧部分中所示,第一存储器针对存储器用户(用户0、用户1和用户2)中的第一用户或用户0(即,图5中的与权重相关的第一用户510)的带宽可从1增加到4。
86.在该示例中,控制逻辑可向从连接到4选1复用器540的四个第一输入端口中的没有连接到2选1复用器550、560和570的一个第一输入端口(第一线)提供选择信号。2选1复用器550、560和570可分别选择除所述一个第一输入端口(第一线)之外的剩余三个第一输入端口的线,并将其连接到输出端口530。在该示例中,用户2或与部分和相关的第三用户520使用第二存储器,因此请求可不被传送到用户2或与部分和相关的第三用户520。
87.图4b示出了与图4a的示例不同的另一示例。在图4b的示例中,所有存储器用户(用户0、用户1和用户2)可使用主存储器。在该示例中,主存储器针对所有存储器用户(用户0、用户1和用户2)的带宽可从4被限制(或减小)为3。例如,在存储器用户(用户0、用户1和用户2)中的用户2使用专用存储器的情况下,如图4b的右侧部分中所示,控制逻辑可将针对第一用户(例如,用户0)和第二用户(例如,用户1)的带宽从3增加到4。
88.图6示出了神经处理装置的操作流程的示例。参照图6,神经处理装置可通过执行将在下文中描述的操作610至操作660来重新配置针对目标用户的数据的存储器带宽。为了
便于描述,将基于目标用户是与部分和相关的用户(例如,图5中的与部分和相关的第三用户520)的情况来描述图6的示例,但是图6的示例不限于此。为了便于描述图6的示例,与部分和相关的用户的数据将被指示为psum。
89.在操作610,神经处理装置通过核实人工神经网络的层配置来计算psum所需的容量。
90.在操作620,神经处理装置确定辅助存储器的大小是否足以存储psum。
91.在操作620确定辅助存储器的大小足以存储psum的情况下,神经处理装置在操作630使用辅助存储器来存储psum,并且在操作640使用带宽控制路径来增加主存储器针对除目标用户之外的其他用户(例如,与权重相关的用户)的带宽。神经处理装置宁可将psum存储在辅助存储器中,可增加主存储器针对存储器用户中的除与部分和相关的用户之外的剩余用户的带宽,从而防止由于主存储器的带宽不足而可能发生的性能劣化。
92.相反,在操作620确定辅助存储器的大小不足的情况下,神经处理装置可在操作650使用主存储器来存储psum,并且在操作660使用带宽控制路径来限制(或减小)主存储器的针对用户(例如,与权重相关的用户)的带宽。
93.图7示出了在与权重相关联的第一用户使用第二存储器的情况下的操作和roofline模型的示例。参照图7,示出了包括卷积层的人工神经网络的输入特征图710和输出特征图730,以及与部分和相关的用户的roofline模型750。
94.例如,人工神经网络可包括大小为192
×
32
×1×
1的卷积层。在该示例中,如输入特征图710和输出特征图730中所示,192字节可以是输出通道大小,32字节可以是输入通道大小,并且内核大小可以是1
×
1。在该示例中,权重大小可以是12千字节(kbytes)。
95.图7中所示的包括具有小输入通道和内核大小的层的人工神经网络可具有少量的累积次数。可获得人工神经网络中的输入特征图710的加权和,并且可生成输出通道。输入特征图710的输入通道大小可以是32字节,因此诸如输出特征图730的输出可仅生成32次,然后被存储在存储器中。在这种情况下,与部分和相关的用户的运算强度可以是例如16ops/字节(=2ops
×
32
×1×
1/4字节),其中,2ops与乘法 累加(mac)对应,并且32与在单个输出像素的计算期间累加的输入通道的数量对应。另外,因为图7的示例使用1
×
1卷积,所以1
×
1与内核方向上的mac的数量对应。另外,4个字节与假定在部分和中计算单个输出像素所需的字节的数量对应。
96.例如,在roofline模型750中运算强度为16ops/字节的情况下,人工神经网络架构可以是存储器限制的。在该示例中,神经处理装置可确定与权重相关的用户使用第二存储器。
97.神经处理装置可通过增加第一存储器针对除专门使用第二存储器的与权重相关的用户之外的剩余用户(例如,与输出特征图和/或部分和相关的用户)的带宽来改善性能。
98.神经处理装置可将权重存储在第二存储器中,并且基于卷积层的输入通道和内核大小,增加第一存储器针对存储器用户中的与部分和相关或与输出特征图相关的用户(或第三用户)的存储器带宽。
99.图8示出了在与特征图相关联的第二用户使用第二存储器的情况下的操作和roofline模型的示例。参照图8,示出了在与特征图相关联的第二用户使用第二存储器的情况下与权重相关的用户的roofline模型800。
100.例如,人工神经网络可包括2048
×
1024的全连接层,并且输入特征图的大小可以是2千字节,输出特征图的大小可以是1千字节。在该示例中,每个全连接的层的权重可非常大,特征图的大小可很小,因此神经处理装置可确定与小大小的特征图相关联的与特征图相关的用户(例如,第二用户)使用第二存储器。
101.在全连接层中可能不存在循环,因此可能不会发生权重重用。因此,运算强度可以是2ops/字节。在roofline模型800中运算强度为2ops/字节的情况下,人工神经网络的架构可以是存储器限制的。在这种情况下,神经处理装置可通过将特征图的数据存储在第二存储器中,并且增加第一存储器针对存储器用户中的与权重相关联的第一用户的存储器带宽来改善性能。
102.图9示出了在与部分和相关的第三用户使用第二存储器的情况下的操作和roofline模型的示例。参照图9,示出了包括卷积层的人工神经网络的输入特征图910和输出特征图930,以及与权重相关的用户的roofline模型950。
103.例如,人工神经网络可包括448
×
384
×3×
3的卷积层,448字节可以是输出通道大小,384字节可以是输入通道大小,并且3
×
3可以是权重内核920的大小。在输入特征图910和输出特征图920的大小是8
×
8并且字节数是4的情况下,针对部分和的数据的目标容量可以是96千字节(=448
×8×8×
4),具有小大小的特征图的层可具有少量的权重重用次数。权重的运算强度可以是128ops/字节(=2
×8×
8)。
104.在roofline模型950中的运算强度是128ops/字节的情况下,人工神经网络架构可以是存储器限制的。在这种情况下,神经处理装置可基于卷积层的特征图的大小,通过将部分和的数据存储在第二存储器中并且增加第一存储器针对存储器用户中的与权重相关联的第一用户的存储器带宽来改善性能。
105.图10示出了神经处理装置的另一示例。参照图10,神经处理装置1000包括第一存储器1010、第二存储器1030和带宽控制模块1050。
106.第一存储器1010可存储例如特征图、权重、部分和的结果等。
107.第二存储器1030可独立于第一存储器1010并且具有有限的大小,第二存储器1030可以是例如用于部分和的专用存储器。可选择性地将部分和的结果存储在第一存储器1010或第二存储器1030中。
108.带宽控制模块1050可通过经由接口(即,带宽控制路径1055)重新配置存储器1010和1030的带宽来确定将存储部分和的结果的存储器,带宽控制路径1055基于控制逻辑1040的控制信号从两个存储器1010和1030之间选择一个。
109.控制逻辑1040可生成控制信号,使得当需要小的存储器带宽时使用第一存储器1010,并且当需要大的存储器带宽时将第二存储器1030用作用于部分和的专用存储器。因此,在更有效地使用存储器1010和1030的同时,可防止由于存储体之间的冲突而可能发生的性能劣化。
110.例如,读取或写入部分和的结果的用户(例如,用户1070和1090)可基于控制逻辑1040的控制信号通过带宽控制路径1055连接到第一存储器1010或第二存储器1030。在该示例中,除连接到第二存储器1030的用户1070和1090之外的剩余用户1060和1080可通过带宽控制路径1055接收由第一存储器1010提供的更大带宽。
111.例如,在仅使用第一存储器1010的情况下,带宽控制模块1050可基于控制信号划
分第一存储器1010的带宽,并将划分的带宽提供给连接到带宽控制路径1055的所有用户1060、1070、1080和1090。与该示例不同,在用户1070和1090使用第二存储器1030的情况下,带宽控制模块1050可通过带宽控制路径1055将第一存储器1010的带宽提供给除与部分和相关联的用户1070和1090之外的剩余用户1060和1080。
112.图11示出了神经处理装置的操作流程的另一示例。参照图11,神经处理装置可通过执行将在下文中描述的操作1110至操作1150来从主存储器和专用存储器之间确定将使用的存储器。神经处理装置可包括存储器单元,存储器单元包括主存储器和用于部分和的专用存储器。
113.在操作1110,神经处理装置确定主存储器的带宽是否不足以执行与人工神经网络的层相关联的操作。
114.在操作1120,当在操作1110确定主存储器的带宽不足以执行与人工神经网络的层相关联的操作时,神经处理装置确定专用存储器的大小是否足以存储部分和的结果。在操作1130,当在操作1120确定专用存储器的大小不足以存储所有部分和的结果时,神经处理装置对人工神经网络的层的输出(或输出矩阵)执行平铺(tiling),直到专用存储器可供使用。神经处理装置可重复地确定专用存储器大小是否足以存储平铺的输出(或输出矩阵)。在操作1140,当在操作1120确定专用存储器的大小足够时,神经处理装置使用专用存储器存储层的部分和的结果或平铺的输出。
115.在操作1150,当在操作1110确定主存储器的带宽足以执行与人工神经网络的层相关联的操作时,神经处理装置使用主存储器执行与人工神经网络的层相关联的操作。
116.图12a和图12b示出了神经处理装置使用第一存储器以用于目标用户的数据的示例,以及神经处理装置使用第二存储器以用于目标用户的数据的示例。图13示出了带宽控制总线的示例。
117.参照图12a,示出了在神经处理装置使用第一存储器1210以用于目标用户的数据的情况下,带宽控制路径1230与用户1240、1250、1260和1270之间的连接关系。参照图12b,示出了在神经处理装置使用第一存储器1210和第二存储器1220两者的情况下,带宽控制路径1230与用户1240、1250、1260和1270之间的连接关系。
118.例如,第一存储器1210可具有1兆字节(mbyte)的容量。例如,第二存储器1220可具有48千字节的容量。
119.例如,在输出特征图的大小大于16
×
16的情况下,其中,16
×
16与像素单元的高度和宽度对应,并且神经处理装置一次生成32个输出通道,每个像素需要6个字节来执行部分求和,第二存储器1220的容量可以是48千字节(=32
×
16
×
16
×
6)。
120.在该示例中,用于目标用户的数据的目标容量可大于第二存储器1220的容量(例如,48千字节),因此神经处理装置可生成控制信号,使得带宽控制路径1230在使用第一存储器1210的正常模式下操作。如图13的左侧部分1310中所示,带宽控制路径1230可基于用于正常模式下的操作的控制信号,通过将作为权重读取用户的用户1240的四个通道减小到一个,同时为作为部分和读取用户的用户1250维持四个通道,来将用户的数据传输到第一存储器1210。在该示例中,可不使用第二存储器1220。
121.又例如,在输出特征图的大小小于或等于16
×
16的情况下,用于目标用户的数据的目标容量可小于第二存储器1220的容量(例如,48千字节)。因此,神经处理装置可生成控
制信号,使得带宽控制路径1230在使用第二存储器1220的增强模式下操作。如图13的右侧部分1330中所示,带宽控制路径1230可基于用于增强模式下的操作的控制信号,将作为权重读取用户的用户1240的数据传输到第一存储器1210,同时为用户1240维持四个通道。在该示例中,作为部分和读取用户的用户1250的四个通道可连接到第二存储器1220。
122.例如,在所有存储器用户的总数是20(=8个ifm读取 4个权重读取 4个psum读取 4个ofm写入)的情况下,第一存储器1210中的用户的数量在正常模式下可以是17(=8个ifm读取 1个权重读取 4个psum读取 4个psum写入),并且在增强模式下减小到12(=8个ifm读取 4个权重读取)。
123.参照图12b,权重读取用户1240和部分和读取用户1250可连接到带宽控制路径1230。输入特征图读取用户1270可仅连接到第一存储器1210,并且部分和写入用户1260可选择性地连接到第一存储器1210或第二存储器1220。
124.例如,在如图12a中所示的仅使用第一存储器1210的情况下,带宽控制总线可划分第一存储器1210的带宽,并将划分的带宽提供给部分和读取用户1250和权重读取用户1240,因此将被分配给权重读取用户1240的量可被减小。
125.对于另一示例,在如图12b中所示的使用第一存储器1210和第二存储器1220两者的情况下,带宽控制总线可通过第一存储器1210向权重读取用户1240提供足够的带宽。
126.例如,当完全重用空间方向上的权重的神经处理装置的输出的空间维度大于预定标准时,权重重用的次数可能增加。因此,权重读取用户1240可能不需要大的带宽。然而,在输出的空间维度小于标准的情况下,权重重用的次数可能减小,因此由于权重重用的次数的减小,权重读取用户1240可能需要更大的带宽。在这种情况下,神经处理装置可使用第二存储器1220来防止由于第一存储器1210的带宽不足而可能发生的性能劣化。
127.图14示出了神经处理装置的操作流程的示例。参照图14,神经处理装置可通过执行将在下文中描述的操作1410至操作1440来生成用于带宽控制路径的控制信号。神经处理装置可包括第一存储器和具有比第一存储器更小的容量的第二存储器。
128.在操作1410,神经处理装置计算用于目标用户的数据的目标容量,目标用户是基于人工神经网络的层配置从存储器用户中确定的。存储器用户可与输入特征图、权重以及部分和或输出特征图中的至少一个相关联,但是示例不限于此。
129.在操作1420,神经处理装置将在操作1410计算出的目标容量与第二存储器的容量进行比较。
130.在操作1430,神经处理装置基于操作1420的比较的结果,从第一存储器和第二存储器之间确定将在其中存储目标用户的数据的目标存储器。响应于作为操作1420的比较的结果,目标容量大于第二存储器的容量,神经处理装置可将第一存储器确定为目标存储器。相反,响应于作为操作1420的比较的结果,目标容量小于或等于第二存储器的容量,神经处理装置可将第二存储器确定为目标存储器。
131.在操作1440,神经处理装置生成用于重新配置存储器用户的存储器带宽的带宽控制路径的控制信号,使得目标用户的数据被存储在操作1430确定的目标存储器中。
132.例如,在操作1430确定第一存储器是目标存储器的情况下,神经处理装置可生成控制信号,使得在操作1440将目标用户的数据存储在第一存储器中,从而限制(或减小)第一存储器针对存储器用户中的排除了目标用户的至少一个剩余用户的数据的带宽。相反,
在操作1430确定第二存储器是目标存储器的情况下,神经处理装置可生成控制信号,使得在操作1440将目标用户的数据存储在第二存储器中,从而增加第一存储器针对存储器用户中的排除了目标用户的至少一个剩余用户的数据的带宽。
133.可选地,神经处理装置可将第一存储器的容量与存储器用户的数据容量之和进行比较。在操作1440,响应于作为比较的结果,第一存储器的容量大于存储器用户的数据容量之和,神经处理装置可生成控制信号,使得带宽控制路径在将第一存储器用于目标用户的数据的正常模式下操作,目标用户是基于人工神经网络的层类型和人工神经网络的层配置确定的。相反,在操作1440,响应于作为比较的结果,第一存储器的容量小于或等于存储器用户的数据容量之和,神经处理装置可生成控制信号,使得带宽控制路径在将第二存储器用于目标用户的数据的增强模式下操作,目标用户是基于人工神经网络的层类型和层配置确定的。
134.例如,在人工神经网络包括卷积层并且目标用户是与权重相关联的第一用户的情况下,在操作1440,神经处理装置可基于卷积层的输入通道和内核大小将权重存储在第二存储器中。在该示例中,神经处理装置可增加第一存储器针对存储器用户中的第三用户的存储器带宽,第三用户与部分和或输出特征图相关联。
135.又例如,当人工神经网络包括完全连接层并且目标用户是与特征图相关的第二用户时,在操作1440,神经处理装置可将特征图的数据存储在第二存储器中。在该示例中,神经处理装置可增加第一存储器针对存储器用户中的第一用户的存储器带宽,第一用户与权重相关联。
136.对于又一示例,在人工神经网络包括卷积层并且目标用户是与部分和相关联的第三用户的情况下,在操作1440,神经处理装置可基于卷积层的特征图的大小将部分和的数据存储在第二存储器中。在该示例中,处理装置可增加第一存储器针对存储器用户中的第一用户的存储器带宽,第一用户与权重相关联。
137.在此关于图1、图3、图5、图7、图9、图10和图12描述的神经处理装置、npu 110、存储装置111、输入特征图获取器112、权重获取器113、psum获取器114、ofm写入器115、dram 130、神经处理装置300、1000、第一存储器310、1010、第二存储器330、1030、带宽控制模块350、1050、控制逻辑390、1040以及其他装置、设备、单元、模块和组件由硬件组件实现。可用于执行本技术中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、发生器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行本技术中描述的操作的任何其他电子组件。在其他示例中,执行本技术中描述的操作的硬件组件中的一个或更多个由计算硬件(例如,由一个或更多个处理器或计算机)实现。处理器或计算机可由一个或更多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望结果的任何其他装置或装置的组合)实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或更多个存储器。由处理器或计算机实现的硬件组件可执行指令或软件(诸如,操作系统(os)和在os上运行的一个或更多个软件应用),以执行本技术中描述的操作。硬件组件还可响应于指令或软件的执行而访问、操纵、处理、创建和存储数据。为简明起见,可在本技术中描述的示例的描述中使用单数术语“处理器”或“计算机”,但是在其
他示例中,可使用多个处理器或计算机,或者处理器或计算机可包括多个处理元件,或多种类型的处理元件,或两者。例如,单个硬件组件或两个或更多个硬件组件可由单个处理器、或两个或更多个处理器、或处理器和控制器来实现。一个或更多个硬件组件可由一个或更多个处理器、或者处理器和控制器实现,并且一个或更多个其它硬件组件可由一个或更多个其它处理器或另外的处理器及另外的控制器实现。一个或更多个处理器、或者处理器和控制器可实现单个硬件组件、或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或更多个,不同的处理配置的示例包括单个处理器、独立处理器、并行处理器、单指令单数据(sisd)多处理、单指令多数据(simd)多处理、多指令单数据(misd)多处理和多指令多数据(mimd)多处理。
138.图1至图14中示出的执行本技术中描述的操作的方法由计算硬件(例如,由一个或更多个处理器或计算机)执行,计算硬件被如上所述实现为执行指令或软件,以执行本技术中描述的由方法执行的操作。例如,单个操作或两个或更多个操作可由单个处理器、或两个或更多个处理器、或处理器和控制器执行。一个或更多个操作可由一个或更多个处理器、或处理器和控制器执行,并且一个或更多个其他操作可由一个或更多个其他处理器、或另外的处理器和另外的控制器执行。一个或更多个处理器或者处理器和控制器可执行单个操作或者两个或更多个操作。
139.用于控制处理器或计算机实现硬件组件并执行如上所述的方法的指令或软件被编写为计算机程序、代码段、指令或计算机程序、代码段、指令的任何组合,以单独地或共同地指示或配置处理器或计算机作为机器或专用计算机操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由处理器或计算机使用解释器执行的高级代码。本领域普通编程人员可基于附图中所示的框图和流程图以及说明书中的相应描述,容易地编写指令或软件,附图中所示的框图和流程图以及说明书中的相应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
140.用于控制处理器或计算机实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构被记录、存储或固定在一个或更多个非暂时性计算机可读存储介质中,或者被记录、存储或固定在一个或更多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括只读存储器(rom)、随机存取可编程只读存储器(prom)、电可擦除可编程只读存储器(eeprom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、非易失性存储器、cd-rom、cd-r、cd r、cd-rw、cd rw、dvd-rom、dvd-r、dvd r、dvd-rw、dvd rw、dvd-ram、bd-rom、bd-r、bd-r lth、bd-re、蓝光或光盘存储器、硬盘驱动器(hdd)、固态驱动器(ssd)、闪存、卡型存储器(诸如,多媒体微型卡或卡(例如,安全数字(sd)或极速数字(xd)))、磁带、软盘、磁光数据存储器装置、光学数据存储器、硬盘、固态盘以及被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机可执行指令的任何其他装置。
141.虽然本公开包括具体示例,但是在理解本技术的公开之后将清楚是,在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例仅被认为是描述性的,而不是为了限制的目的。每个示例中的特征或方
面的描述被认为适用于其他示例中的类似特征或方面。如果所描述的技术以不同的顺序执行,和/或如果所描述的系统、架构、装置或电路中的组件以不同的方式组合,和/或由其他组件或其等同物替换或补充,则可实现合适的结果。
142.因此,公开的范围不是由具体实施方式限定,而是由权利要求及其等同物限定,并且在权利要求及其等同物的范围内的所有变化应被解释为包括在公开中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献