用于神经网络处理的共享存储器的集中式-分布式混合组织制造技术

技术编号:25531878 阅读:27 留言:0更新日期:2020-09-04 17:19
本公开提供了一种处理器,所述处理器提供具有M数量处理元件的存储器架构,每个处理元件具有至少N数量处理单元、以及本地存储器。所述处理器包括:所述M数量处理元件中的第一处理元件,包括被配置为执行计算操作的第一组N数量处理单元、以及被配置为存储被所述N数量处理单元利用的数据的第一本地存储器。所述处理器还包括数据集线器,所述数据集线器被配置为从所述M数量处理元件接收数据,并向所述M数量处理元件中的每个处理元件提供共享数据。

【技术实现步骤摘要】
【国外来华专利技术】用于神经网络处理的共享存储器的集中式-分布式混合组织相关申请的交叉引用本申请基于2017年12月22日提交的美国临时申请No.62/610,098和2018年11月27日提交的美国专利申请No.16/201,904并要求其优先权,上述申请的全部内容通过引用合并于此。
技术介绍
深度神经网络算法涉及大量矩阵计算,这通常会导致涉及非常宽的单指令多数据(SIMD)处理单元和大型片上存储的硬件架构。由于深度学习的性质,不同的SIMD通道需要不时交换数据。存在许多提供跨通道数据处理和计算的存储器架构,但是这些架构由于若干原因而存在缺陷,原因例如为存储器访问延迟、存储体(bank)冲突问题、性能问题等不可接受的增加。
技术实现思路
本公开提供了一种处理器,所述处理器提供存储器架构,所述存储器架构提供具有M数量处理元件的存储器架构,每个处理元件具有至少N数量处理单元、以及本地存储器。所述处理器包括:所述M数量处理元件中的第一处理元件,所述第一处理元件包括:被配置为执行计算操作的第一组N数量处理单元,以及被配置为存储被所述N数量处理单元利用的数据的第一本地存储器。所述处理器还包括数据集线器,所述数据集线器被配置为从所述M数量处理元件接收数据,并且将共享数据提供到所述M数量处理元件中的每个处理元件。本公开提供了一种由集中式数据集线器执行的方法,所述集中式数据集线器能够与M数量处理元件通信,每个处理元件具有至少N数量处理单元、以及本地存储器。所述方法包括:从所述M数量处理元件中的处理元件获取数据;确定获取的数据的分发模式;以及使用所述分发模式将获取的数据分发到所述M数量处理元件中的至少一个或多个。本公开提供了一种由耦合到集中式数据集线器的多个处理元件中的处理元件执行的方法。所述方法包括:从所述集中式数据集线器获取共享数据;获取所述处理元件本地的私有数据;将所述私有数据存储在所述处理元件的本地存储器中;将所述共享数据和存储的私有数据作为操作数提供到所述处理元件的一个或多个处理单元;以及根据由相应的一个或多个处理单元执行的一个或多个操作生成一个或多个结果。附图说明在以下详细描述和附图中示出了本公开的实施例和各个方面。图中所示的各种特征未按比例绘制。图1是示出存储将在SIMD通道之间交换的数据的示例性集中式共享存储器的示意图。图2是示出存储将在SIMD通道之间交换的数据的示例性分布式共享存储器的示意图。图3是示出使用点对点交叉开关(cross-bar)的分布式共享存储器的示例性实现的示意图。图4A是示出经由移位连接方法共享数据的分布式共享存储器架构的示例性实现的示意图。图4B是示出经由二维网格连接方法共享数据的分布式存储器架构的示例性实现的示意图。图5是示出与本公开的实施例一致的示例性神经网络处理单元(NPU)芯片的示意图。图6是示出与本公开的实施例一致的2层数据共享架构的示例性实现的示意图。图7是示出与本公开的实施例一致的具有数据集线器(hub)的图6的示例性2层数据共享架构所利用的示例性连接方法的示意图。。图8示出与本公开的实施例一致的由图7的示例性数据集线器提供的示例性重排(swizzle)功能。图9示出与本公开的实施例一致的用于从集中式数据集线器分发数据的示例性方法的流程图。图10示出与本公开的实施例一致的用于将数据分发到处理元件的一个或多个处理单元的示例性方法的流程图。具体实施方式以下描述参考附图,其中除非另外表示,否则不同附图中的相同数字表示相同或相似的元件。在示例性实施例的以下描述中阐述的实现并不代表与本专利技术一致的所有实现。相反,它们仅是与如所附权利要求中所述的本专利技术的相关方面一致的装置和方法的示例。参考图1,其是示出存储将在SIMD通道之间交换的数据的示例性集中式共享存储器的示意图。集中式共享存储器架构包括多个处理单元(例如,图1所示的处理单元0、处理单元1、处理单元N)和存储器块。这些处理单元可以被配置为提供相同或不同的功能,并连接到相同的存储器块(例如,图1中的存储器)。每个处理单元通过SIMD通道连接到存储器的存储块。存储器块包括电连接的多个存储块。SIMD通道之间的数据交换通过存储器的存储块之间的数据交换实现。可以由连接到存储器的任何处理单元请求数据,并且可以将数据发送到请求的处理单元。但是集中式共享存储器架构是不可扩展的。由于每个SIMD通道电连接到处理单元和存储器中的某个存储块,因此当SIMD通道数量增加时,存储器大小以更快的速度增加,因为存储器以访问存储块的主路径由不同的数据访问请求共享的方式集中化。当不同的进程沿主路径访问不同的存储块时,可能会发生存储体冲突。访问存储块的路径只能允许一个进程在一个时间访问一个存储块,而另一进程在另一时间访问另一存储块。换句话说,对存储块的访问被划分优先顺序并被线性化。两个访问不能同时发生。相应地,随着SIMD通道数量增加,存储体冲突问题变得更加严重。存储体冲突问题迅速导致存储器访问延迟增加到典型的神经网络计算应用无法接受的水平。现在参考图2,其是示出存储将在SIMD通道之间交换的数据的示例性分布式共享存储器(DSM)的示意图。在DSM架构中,存在多个处理单元和多个存储器块。每个处理单元与存储器块相关联并且电连接。共享存储器块由地址全局寻址,但分布到多个计算节点中。每个计算机节点被配置为包括存储器管理器以访问远程数据。通过以分布式方式布置计算机节点,DSM的扩展性优于集中式存储器,因为该架构避免了由同时访问需求引起的存储体冲突问题。然而,与非分布式共享存储器架构相比,DSM架构对数据的访问较慢。当处理通道增加到更大数量时更是如此,从而导致跨计算节点交换数据的问题。数据访问缓慢主要是由于在DSM架构中跨计算节点交换数据引起的。通常,对远程数据的访问可能需要涉及多个计算节点,这尤其会延迟访问。当前,DSM架构以几种不同的方式交换数据。例如,如图3所示,存在点对点交叉开关,用于连接所有分布式存储器,允许每个处理单元访问每个分布式节点上的存储器。这是通过将节点的每个存储器管理器耦合到每个存储器块来实现的,从而使得与存储器管理器关联的处理单元能够通过其自己的专用访问路径访问每个存储器块。然而,交叉开关的成本增长非常快-与计算节点的数量成指数增长。也就是说,8-8交叉开关的成本可以是4-4交叉开关的成本的4倍以上。图4A示出了用于SIMD通道之间的数据交换和共享的另一DSM架构。每个节点仅连接到其左右邻居。要到达远程节点,数据将需要多跳以到达期望目的地。因此,该架构存在性能问题,因为数据传输性能无法与交叉开关方法相比。更复杂的连接可以涉及2D网格(如图4B所示)或3D拓扑。在2D网格中,计算节点被组织为2D阵列,并且每个节点与其左、右、上、下邻居通信。对于3D拓扑(例如3DTorus或HyperCube),每个计算节点可以与6个邻居通信。这些架构通常需要在每个节点中引入路由器,以确定传入的数据分组应转发到本文档来自技高网...

【技术保护点】
1.一种处理器,所述处理器包括:/n存储器架构,所述存储器架构具有M数量处理元件,每个处理元件具有至少N数量处理单元、以及本地存储器,其中,M、N包括大于1的整数,并且所述存储器架构包括:/n所述M数量处理元件中的第一处理元件,所述第一处理元件包括:/n被配置为执行计算操作的第一组N数量处理单元,以及/n被配置为存储能够被所述N数量处理单元利用的数据的第一本地存储器;以及/n数据集线器,所述数据集线器能够从所述M数量处理元件接收数据,并且能够将共享数据从所述M数量处理元件中的一个提供到所述M数量处理元件中的其他处理元件。/n

【技术特征摘要】
【国外来华专利技术】20171222 US 62/610,098;20181127 US 16/201,9041.一种处理器,所述处理器包括:
存储器架构,所述存储器架构具有M数量处理元件,每个处理元件具有至少N数量处理单元、以及本地存储器,其中,M、N包括大于1的整数,并且所述存储器架构包括:
所述M数量处理元件中的第一处理元件,所述第一处理元件包括:
被配置为执行计算操作的第一组N数量处理单元,以及
被配置为存储能够被所述N数量处理单元利用的数据的第一本地存储器;以及
数据集线器,所述数据集线器能够从所述M数量处理元件接收数据,并且能够将共享数据从所述M数量处理元件中的一个提供到所述M数量处理元件中的其他处理元件。


2.根据权利要求1所述的处理器,其中,所述第一处理元件包括:
第一多路复用器,所述第一多路复用器被配置为从所述数据集线器接收共享数据并将所述共享数据提供到所述第一本地存储器。


3.根据权利要求1和2中任一项所述的处理器,其中,所述数据集线器被配置为将所述共享数据提供到第二多路复用器,所述第二多路复用器被配置为将所述共享数据提供到所述第一组N数量处理单元中的一个或多个。


4.根据权利要求1至3中任一项所述的处理器,其中,所述第一本地存储器包括:
多个本地存储器存储块,包括:第一组一个或多个存储块,被配置为存储将由所述第一组N数量处理单元中的至少一个利用的私有数据;以及第二组一个或多个存储块,被配置为存储从所述数据集线器接收的共享数据。


5.根据权利要求4所述的处理器,其中,所述第一本地存储器具有全写端口、全读端口、窄写端口和窄读端口,其中,所述第一组一个或多个存储块被配置为经由所述全写端口获取私有数据并经由所述全读端口发送私有数据,并且所述第二组一个或多个存储块被配置为经由所述窄写端口获取共享数据并经由所述窄读端口发送共享数据。


6.根据权利要求5所述的处理器,其中,所述数据集线器被配置为经由所述窄读端口从所述第一本地存储器接收共享数据。


7.根据权利要求5所述的处理器,其中,所述数据集线器被配置为经由所述全写端口将共享数据发送到所述第一组一个或多个存储块。


8.根据权利要求5所述的处理器,其中,所述数据集线器被配置为经由所述窄写端口将共享数据发送到所述第二组一个或多个存储块。


9.根据权利要求1至8中任一项所述的处理器,其中,所述N数量与所述M数量相同。


10.根据权利要求1至...

【专利技术属性】
技术研发人员:韩亮蒋晓维陈健
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1