各种实施例总体上涉及计算机系统体系结构,并且更具体地,涉及用于有效存储器屏障的推测性远程存储器操作跟踪。
背景技术:
1、计算系统通常包括一个或更多个处理单元(诸如中央处理单元(cpu)和/或图形处理单元(gpu))以及一个或更多个存储器系统等。处理单元执行在处理单元中包括的一个或更多个计算引擎上执行的提交和启动计算任务的用户模式软件应用程序。在操作中,处理单元从一个或更多个存储器系统加载数据,对数据执行各种算术和逻辑运算,并将数据存储回一个或更多个存储器系统。
2、在复杂处理器(例如,cpu或gpu)中,某些任务涉及通过执行存储器操作在不同处理单元、高速缓存存储器、互连和/或类似物之间传送数据。在发出一系列存储器操作之后,处理单元可以发出存储器同步操作,例如存储器围栏或存储器屏障(membar)操作,随后是标志写入或释放操作。存储器同步操作是一种同步机制,它确保一系列存储器操作对所有参与的线程可见,其中每个线程都是在给定范围(如系统范围或处理器范围)的程序实例。随着处理器大小的增加,这种跨处理器内外线程进行同步的技术通常会导致严重的性能损失。例如,在gpu中,处理单元/核心的数量、最后一级高速缓存(llc)切片的数量(例如,一些gpu中的l2高速缓存切片)、内部/外部互连的数量(例如,gpu-gpu链路、芯片到芯片链路等)随着每新一代的gpu而增加。结果,使用跨所有这些组件的存储器同步操作来处理存储器访问的同步的复杂性相应地增加。此外,增加系统中cpu和/或gpu的数量进一步增加了在给定系统中跨所有cpu和/或gpu同步存储器操作的复杂性。在cpu或gpu内以及在多个cpu和/或gpu之间同步存储器操作的复杂性的增加会导致存储器操作期间延迟增加,从而导致存储器性能降低。
3、如前面所示,本领域所需要的是用于在计算系统中执行同步存储器操作的更有效的技术。
技术实现思路
1、本公开的各种实施例阐述了用于在多处理器计算系统中执行推测性远程存储器操作跟踪的计算机实现的方法。该方法包括确定第一请求源已经生成存储器同步操作。该方法还包括接收响应于由第一请求源生成的多个存储器操作的多个确认。该方法还包括将多个确认合并成经合并的确认。该方法还包括向第一请求源发送经合并的确认。
2、其他实施例包括但不限于实现所公开的技术的一个或更多个方面的系统、以及包括用于执行所公开的技术的一个或更多个方面的指令的一个或更多个计算机可读介质,以及用于执行所公开的技术的一个或更多个方面的方法。
3、所公开的技术相对于现有技术的至少一个技术优点是,利用所公开的技术,在后台推测性地执行存储器同步操作。当存储器操作的源和目的地的数量随着处理器的大小而增加时,解析存储器同步操作的时间量也会增加。通过在后台推测性地执行存储器同步操作,这些存储器同步操作通常在到达源时就已经完成了。为了管理同步,经由集中式确认跟踪引擎和/或经由多个分布式确认跟踪引擎跟踪经合并的确认导致相对于先前同步方法改进的连接性和降低的带宽要求。结果,即使处理器中请求源和/或目的地的数量很大,存储器同步操作也能快速完成。因此,存储器同步操作的性能得到了提高,即使对于大型复杂的处理器,尤其是对于远程存储器操作。这些优点代表了对现有技术方法的一项或多项技术改进。
1.一种用于在多处理器计算系统中执行存储器操作跟踪的计算机实现的方法,所述方法包括:
2.根据权利要求1所述的计算机实现的方法,其中所述经合并的确认包括所述第一多个确认的计数。
3.根据权利要求2所述的计算机实现的方法,其中所述第一请求源包括与所述存储器同步操作相关联的第一本地计数器,并且其中所述第一请求源将所述第一本地计数器递减所述第一多个确认的所述计数。
4.根据权利要求3所述的计算机实现的方法,其中所述第一请求源进一步:
5.根据权利要求3所述的计算机实现的方法,其中所述第一请求源进一步:
6.根据权利要求3所述的计算机实现的方法,其中所述第一请求源进一步:
7.根据权利要求1所述的计算机实现的方法,其中向所述第一请求源发送所述经合并的确认包括:经由一个或更多个交叉开关发送所述经合并的确认。
8.根据权利要求1所述的计算机实现的方法,其中确定所述第一请求源已经生成存储器同步操作包括:接收通知消息,所述通知消息包括识别所述第一请求源的源标识符和基于所述第一多个存储器操作中包括的存储器操作的组标识符。
9.根据权利要求1所述的计算机实现的方法,其中所述第一请求源包括高速缓存存储器的存储器切片、存储器管理单元或与直接存储器访问引擎相关联的集线器中的至少一个。
10.根据权利要求1所述的计算机实现的方法,其中所述存储器同步操作的目的地包括经由通信网络连接到远程设备的集线器。
11.根据权利要求10所述的计算机实现的方法,其中所述通信网络包括pcie通信信道或处理器间通信信道中的至少一个。
12.根据权利要求1所述的计算机实现的方法,其中跟踪数据库存储在单个确认跟踪引擎中,所述单个确认跟踪引擎跟踪包括所述第一请求源的多个请求源的确认。
13.根据权利要求1所述的计算机实现的方法,其中跟踪数据库存储在多个确认跟踪引擎中,并且所述多个确认跟踪引擎中包括的每个确认跟踪引擎包括所述跟踪数据库的副本。
14.根据权利要求1所述的计算机实现的方法,其中跟踪数据库存储在多个确认跟踪引擎中,并且所述多个确认跟踪引擎中包括的每个确认跟踪引擎包括所述跟踪数据库的不同子集。
15.根据权利要求14所述的计算机实现的方法,其中所述多个确认跟踪引擎中包括的第一确认跟踪引擎与所述多个确认跟踪引擎中包括的每个其他的确认跟踪引擎通信,并且所述多个确认跟踪引擎中包括的每个确认跟踪引擎跟踪在所述多个请求源中包括的请求源的不同子集的确认。
16.一种系统,包括:
17.根据权利要求16所述的系统,其中所述经合并的确认包括所述第一多个确认的计数。
18.根据权利要求17所述的系统,其中所述第一请求源包括与所述存储器同步操作相关联的本地计数器,并且其中所述第一请求源进一步将所述本地计数器递减所述第一多个确认的所述计数。
19.根据权利要求16所述的系统,其中为了确定所述第一请求源已经生成存储器同步操作,所述确认跟踪引擎接收通知消息,所述通知消息包括识别所述第一请求源的源标识符和基于所述第一多个存储器操作中包括的存储器操作的组标识符。
20.根据权利要求16所述的系统,其中所述第一请求源包括高速缓存存储器的存储器切片、存储器管理单元或与直接存储器访问引擎相关联的集线器中的至少一个。