本公开涉及用于存储器模型一致性的多播和反射存储器行为。在各种示例中,存储器模型支持多播,其中存储器访问操作的单个请求被传播到与多个处理元件相关联的多个物理地址(例如对应于相应的本地存储器)。因此该请求使从每个处理元件的存储器读取数据和/或向每个处理元件的存储器写入数据。在一些示例中,存储器模型向进程公开多播。这包括提供单独的多播和单播指令或具有用于指示多播或单播的一个或更多个参数(例如指示虚拟地址)的共享指令。附加地或替代地,使用多播还是单播处理一个或更多个请求对于进程和/或应用程序可能是不透明的,或者由系统以其他方式确定。可以对使用多播的处理请求施加一个或更多个约束以维持一致的存储器接口。一致的存储器接口。一致的存储器接口。
【技术实现步骤摘要】
用于存储器模型一致性的多播和反射存储器行为
技术介绍
[0001]计算过程可以利用多个处理元件,例如图形处理单元(GPU)的流式多处理器(SM),来执行处理操作。为此,处理元件可以提供对存储器访问的请求,这可能涉及使用存储器模型从存储器读取和/或向存储器写入。存储器模型可以允许处理元件在读取和写入数据时进行协调,这对于支持并行或以其他方式协调处理是至关重要的。例如,在存储器分布在多个GPU的系统中,GPU的每个SM可以从GPU的本地存储器或另一个GPU的远程存储器读取和/或写入GPU的本地存储器或另一个GPU的远程存储器。为了促进SM之间的协调,存储器模型可以实现虚拟寻址方案,其中虚拟地址(VA)跨GPU映射到物理地址(PA)。为了保持一致性,每个VA可以映射到特定的PA,以便任何SM可以使用VA来请求使用特定PA执行存储器操作。
[0002]当处理元件正在执行协调处理时,一些处理操作可能涉及从多个处理元件接收数据和/或向多个处理元件提供数据。例如,全归约操作可能涉及从每个处理元件收集数据以跨设备执行归约(例如,求和、最大值等)并将结果广播到每个处理元件。收集数据可能需要每个处理元件的存储器访问请求并且广播结果可能再次需要每个处理元件的存储器访问请求。因此,所需的请求数量可能会随着参与处理元件的数量、延迟和/或带宽要求的增加而增加。这种开销在深度学习中可能特别有影响,其中全归约已成为高频执行的关键操作。
技术实现思路
[0003]本公开的实施例涉及用于存储器模型一致性的多播和反射存储器行为。公开了提供来自处理元件的多播存储器访问请求的系统和方法。所公开的方法可以与单播存储器模型兼容,同时确保处理元件之间的一致性。
[0004]与诸如上述的那些传统方法相比,存储器模型可以支持多播,其中对于存储器访问操作的单个请求可以传播到与多个处理元件相关联的多个物理地址(例如,对应于相应的本地存储器)。因此,该请求可以使得从每个处理元件的存储器读取数据和/或向每个处理元件的存储器写入数据。在一些示例中,存储器模型向进程公开多播。这可以包括提供单独的多播和单播指令或具有用于指示多播或单播的一个或更多个参数(例如,指示虚拟地址)的共享指令。附加地或替代地,使用多播还是单播处理一个或更多个请求对于进程和/或应用程序可能是不透明的,或者可以由系统以其他方式确定。可以对使用多播的处理请求施加一个或更多个约束以维持一致的存储器接口。
附图说明
[0005]下面参考附图详细描述用于存储器模型一致性的多播和反射存储器行为的本系统和方法,其中:
[0006]图1是示出根据本公开的一些实施例的在协作处理环境中实现用于单播和多播的单独存储器空间的存储器系统的转换路径的示例的图;
[0007]图2是示出根据本公开的一些实施例的可以如何使用单播或多播来执行操作的示例的表;
[0008]图3是示出根据本公开的一些实施例的在协作处理环境中使用约束来实现多播的存储器系统的转换路径的示例的图;
[0009]图4是示出根据本公开的一些实施例的存储器管理器可用于响应于存储器访问操作的请求来执行多播的方法的流程图;
[0010]图5是示出根据本公开的一些实施例的交换机可以响应于存储器访问操作的请求而用来执行多播的方法的流程图;
[0011]图6是示出根据本公开的一些实施例的响应于存储器访问操作的请求进行多播的方法的流程图;
[0012]图7是适用于实现本公开的一些实施例的示例计算设备的框图;以及
[0013]图8是适用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
[0014]本公开的实施例涉及用于存储器模型一致性的多播和反射存储器行为。公开了提供来自处理元件的多播存储器访问请求的系统和方法。所公开的方法可以与单播存储器模型兼容,同时确保处理元件之间的一致性。
[0015]根据本公开的方面,存储器模型可以支持多播,其中存储器访问操作的单个请求可以传播到与多个处理元件相关联的多个物理地址(例如,对应于相应的本地存储器),从而允许请求使得从每个处理元件的存储器读取数据和/或向每个处理元件的存储器写入数据。在至少一个实施例中,请求可以指示虚拟地址,并且虚拟地址可以映射到物理地址。然后可以使用对相应存储器的存储器访问来处理该请求,这些存储器可以分布在多个设备上,例如图形处理单元(GPU)。在一个或更多个实施例中,可以使用交换机来传播请求,该请求可以至少部分在一个或更多个设备内部或者可以至少部分在设备外部。
[0016]存储器模型可以向进程公开多播,使得进程可以为请求指定或指示多播,创建或指示用于多播的处理元件组,和/或对于请求和/或特定的VA在多播或单播之间进行选择。例如,第一组VA可以指示多播,而另一组VA可以指示单播。附加地或替代地,使用多播还是单播处理请求对于进程和/或应用程序可能是不透明的,或者可以由系统以其他方式确定。为了保持一致的存储器接口,存储器模型可以对使用多播的处理请求施加一个或更多个约束,例如无论一个或更多个请求是使用多播还是单播处理都确保相同的结果。
[0017]参考图1,图1是示出根据本公开的一些实施例的在协作处理环境100中实现用于单播和多播的单独存储器空间的存储器系统的转换路径的示例的图。
[0018]应当理解,这里描述的这种布置和其他布置仅作为示例阐述。除了所示的那些之外或代替所示的那些,可以使用其他布置和元件(例如,机器、接口、功能、命令、功能分组等),并且可以完全省略一些元件。此外,本文描述的许多元件是功能实体,它们可以实现为分立或分布式组件或与其他组件结合,并以任何合适的组合和位置实现。本文描述为由实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,可以通过处理器执行存储在存储器中的指令来执行各种功能。在一些实施例中,本文描述的系统、方法和过程可以使用与图7的示例计算设备700和/或图8的示例数据中心800的任何数量的实例类似的组件、特征和/或功能来执行。
[0019]协作处理环境100可以包括一个或更多个设备,例如设备102A到设备102N(在本文
中也称为“设备102”)。协作处理环境100还可以包括一个或更多个交换机,例如交换机104。协作处理环境100还可以包括一个或更多个处理元件,例如处理元件106A到106N(这里也称为“处理元件106”)。协作处理环境100还可以包括一个或更多个存储器管理器,例如存储器管理器108A到108N(在本文中也称为“存储器管理器108”)。此外,协作处理环境100可以包括一个或更多个存储器,例如存储器110A到110N(在本文中也称为“存储器110”)。作为示例而非限制,设备102A包括处理元件106A、存储器管理器108A和存储器110A。类似地,设备102N包括处理元件106N、存储器管理器108N和存储器110N。尽管在每个设备102中示出了单个处理元件106,但是设备102可以包括任意数量的处理元件106,例如数十到数百或更多。包括在设备102中的其他设备,当本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种计算机实现的方法,包括:接收与存储器访问操作的请求相对应的第一数据,所述请求指示虚拟地址VA;使用所述数据执行所述VA的地址转换,所述地址转换包括将所述VA转换为至少与多个处理元件PE中的第一PE相对应的第一物理地址PA以及与所述多个PE中的第二PE相对应的第二PA中的至少一部分;以及传输与所述地址转换的结果相对应的第二数据,所述传输使得响应于所述请求而使用所述第一PA和所述第二PA在一个或更多个存储器上进行存储器访问。2.根据权利要求1所述的方法,其中所述第一数据的所述接收、所述地址转换的所述执行以及所述第二数据的所述传输是由存储器管理单元MMU响应于所述MMU接收到来自所述第一PE的请求而执行的。3.根据权利要求1所述的方法,其中所述地址转换至少基于将所述VA指派给多播VA空间,并且使用所述多个PE中的一个或更多个将至少一个VA指派给单播VA空间,所述单播VA空间与所述多播VA空间是分开的。4.根据权利要求1所述的方法,其中所述VA的所述转换至少基于在所述多个PE中的一个或更多个上运行的一个或更多个应用程序将所述VA指派给包括所述第一PE和所述第二PE的多播组而用于多个设备。5.根据权利要求1所述的方法,其中所述转换至少基于分析与存储器访问操作的请求相关联的一个或更多个模式而用于多个设备,所述存储器访问操作的请求至少基于与所述VA相对应的所述存储器访问操作的请求。6.根据权利要求1所述的方法,其中所述请求来自所述第一PE,所述第一PE具有对所述VA的写访问,并且所述第二PE具有对所述VA的只读访问。7.根据权利要求1所述的方法,其中所述一个或更多个存储器包括在第一设备上的第一存储器和在第二设备上的第二存储器,所述第一设备包括所述第一PE,所述第二设备包括所述第二PE。8.根据权利要求1所述的方法,其中所述第二数据的所述传输是到交换机,并且所述交换机使用所述第二数据来传播导致所述存储器访问的所述请求。9.根据权利要求1所述的方法,其中所述地址转换是所述VA到一个或更多个中间地址的第一地址转换,并且所述转换包括所述一个或更多个中间地址到所述第一PA和所述第二PA的第二地址转换。10.一种计算机实现的方法,包括:接收与存储器访问操作的请求相对应的数据,所述请求指示虚拟地址VA;使用所述数据将所述VA映射到多个设备;以及将所述请求传播到所述多个设备中的每一个,所述传播使得响应于所述请求,所述多...
【专利技术属性】
技术研发人员:G,
申请(专利权)人:辉达公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。