当前位置: 首页 > 专利查询>辉达公司专利>正文

跨存储器同步域的线程同步制造技术

技术编号:36447014 阅读:14 留言:0更新日期:2023-01-25 22:41
公开了跨存储器同步域的线程同步,各个实施例包括在单个并行处理器中提供多个存储器同步域以减少不需要的同步操作的并行处理计算机系统。在执行期间,一个执行内核可通过处理未完成的存储器引用而与一个或更多个其他执行内核同步。并行处理器跟踪每个域对本地和远程存储器的每个部分的存储器引用。在同步期间,处理器同步特定域的存储器引用,同时抑制同步其他域的存储器引用。因此,内核之间的同步操作在相对于先前方法的减少的时间量内完成。成。成。

【技术实现步骤摘要】
跨存储器同步域的线程同步

技术介绍

[0001]各个实施例的领域
[0002]各个实施例总体上涉及并行处理计算架构,并且更具体地涉及跨存储器同步域的线程同步。
[0003]相关技术的描述
[0004]本文中被称为节点的计算系统总体上尤其包括一个或更多个处理单元(如中央处理单元(CPU)和/或图形处理单元(GPU))以及一个或更多个存储器系统。GPU能够同时执行大量(例如,数百或数千)线程,其中每一线程是程序的实例。为了从CPU的角度简化对GPU进行编程的某些方面,现代GPU系统提供过渡同步属性,在本文中也称为累积同步属性。利用这个属性,一个线程可以生成对在GPU上执行的其他线程和/或对在其他GPU上执行的其他线程可见的存储器引用,例如存储器值的加载和存储。当线程执行存储器栅栏指令(在本文中也称为存储器屏障或MEMBAR指令)时,实现这种同步。另外或替代地,MEMBAR指令可由分配用于线程的任务或其他工作的单元执行。MEMBAR指令指定同步的范围,诸如GPU范围或系统范围。GPU范围MEMBAR指令(MEMBAR.GL)确保由线程执行的先前存储器引用对GPU内的其他客户端可见。系统范围MEMBAR指令(MEMBAR.SYS)确保由线程执行的先前存储器引用对于节点内的其他客户端可见。
[0005]例如,如果一个线程(线程A)与第二线程(线程B)通信或同步,该第二线程随后与第三线程(线程C)同步,则线程C已经过渡性地与线程A同步,并且应当对在线程A与线程B之间同步的值具有适当可见性,即使那些线程并非都在范围层次结构中的相同范围内。在多GPU系统中,如果线程A和B在一个GPU上执行,且线程C在另一GPU上执行,那么线程A可将值存储到任何存储器孔径,例如本地存储器、系统存储器、对等存储器。线程A可通过执行MEMBAR.GL指令且接着存储标志A而与线程B同步。一旦存储标志A,线程A的存储器引用对于GPU中的其他线程可见。在观察标志A之后,线程B可通过执行MEMBAR.SYS且接着存储标志B而与线程C同步。因为线程B首先经由MEMBAR.GL指令与线程A同步并且随后执行MEMBAR.SYS指令,所以MEMBAR.SYS指令使得线程A和线程B以及GPU中的所有其他线程的所有存储器引用对于线程C是可见的。因此,GPU中的所有线程在系统范围处同步,而不管这些其他线程是否需要与其他GPU和/或CPU同步。GPU无法先验地知道哪些存储器引用与每一线程相关联。因此,GPU硬件通过保守地刷新来自在系统级可见的所有线程的存储器引用而在系统范围处同步。
[0006]这种用于同步线程的方法的缺点在于,当任何线程执行MEMBAR.SYS指令时,不需要在系统级进行同步的线程仍然可能被迫这样做。与经由系统存储器同步在不同GPU中执行的线程(系统范围)相比,经由本地存储器同步GPU内的线程(GPU范围)通常消耗更少的时间和互连带宽。当线程B执行MEMBAR.SYS指令时,第四线程D(其可能与预期的系统范围同步无关)仍然被迫在系统范围处同步。线程D的该强制同步导致了不相关的存储器通信量,其不必要地减慢或干扰了线程B为与线程C同步而执行的MEMBAR.SYS。由于此干扰低效,由线程B执行的MEMBAR.SYS指令降低了线程B的性能,且还可能使得线程D通过不必要地同步线
程而降低性能。
[0007]如上所述,在本领域中所需要的是用于同步在处理器上执行的线程的更有效的技术。

技术实现思路

[0008]本公开的各个实施例提出了一种用于同步在处理器中执行的线程的计算机实现的方法。所述方法包括确定第一线程已执行第一存储器屏障指令,其中所述第一线程包括在与第一域相关联的第一组线程中。该方法还包括确定一组存储器孔径,该组存储器孔径已经被包括在第一组线程中的至少一个线程访问。该方法还包括生成存储器屏障命令,该存储器屏障命令包括对该组存储器孔径的引用,不包括对其他由与第二域相关联的线程访问的存储器孔径的引用。该方法还包括将该存储器屏障命令传输到该组存储器孔径。
[0009]其他实施例包括但不限于实现所公开的技术的一个或更多个方面的系统、以及包括用于执行所公开的技术的一个或更多个方面的指令的一个或更多个计算机可读介质、以及用于执行所公开的技术的一个或更多个方面的方法。
[0010]所公开的技术相对于现有技术的至少一个技术优点在于,利用所公开的技术,在MEMBAR指令的处理期间,仅特定域中的线程所引用的存储器孔径被同步。仅由其他域引用的存储器孔径不同步。因此,用于特定域的线程不会不必要地等待仅由其他域访问的存储器孔径的同步。结果,MEMBAR指令在相对于先前方法的减少的时间量中完成。这些优点代表优于现有技术方法的一个或更多个技术改进。
附图说明
[0011]为了更详细地理解上述各种实施例的相关特征,可以通过参考各种实施例(其中一些已在附图中说明)对上述简要概括的本专利技术概念进行更具体的描述。但是,需要注意的是,所附的附图只说明专利技术概念的典型实施例,因此并不是以任何方式限制范围,还存在其他同样有效的实施例。
[0012]图1是被配置为实现各个实施例的一个或更多个方面的计算机系统的框图;
[0013]图2是根据各个实施例的包括在图1的并行处理子系统中的并行处理单元(PPU)的框图;
[0014]图3是根据各个实施例的图2的并行处理单元(PPU)中包括的通用处理集群(GPC)的框图;
[0015]图4是根据各个实施例的图2的PPU中包括的存储器同步域系统的框图;
[0016]图5是根据各个实施例的具有多个并行处理子系统的节点的框图;
[0017]图6是根据各个实施例的具有在多个域中执行内核的多个并行处理子系统的节点的框图;以及
[0018]图7是根据各个实施例的用于经由图2的PPU 202使线程同步的方法步骤的流程图。
具体实施方式
[0019]在下面的描述中,阐述了大量的具体细节,以提供对各个实施例的更全面理解。然
而,对于本领域技术人员来说,可以在没有一个或更多个这些具体细节的情况下实践这些专利技术概念。
[0020]系统概述
[0021]图1为被配置为实现各个实施例的一个或更多个方面的计算机系统100的框图。如图所示,计算机系统100包括但不限于中央处理单元(CPU)102、系统存储器104,其经由存储器桥105和通信路径113耦连至并行处理子系统112。存储器桥105进一步地经由通信路径106耦连至I/O(输入/输出)桥107,I/O桥107又耦连至交换机116。
[0022]在操作中,I/O桥107被配置为从输入设备108(诸如键盘或鼠标)接收用户输入信息,并经由通信路径106和存储器桥105将输入信息转发给CPU 102进行处理。交换机116被配置为在I/O桥107和计算机系统100的其他组件(如网络适配器118和各种附加卡120和121)之间提供连接。
[0023]还如图所示,I/O桥107耦合至系统盘114,系统盘114可以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算机实现的方法,其用于同步在处理器中执行的线程,所述方法包括:确定第一线程已执行第一存储器屏障指令,其中所述第一线程包括在与第一域相关联的第一组线程中;确定一组存储器孔径,所述一组存储器孔径已经被包括在所述第一组线程中的至少一个线程访问;生成存储器屏障命令,所述存储器屏障命令包括对所述一组存储器孔径的引用,不包括对由与第二域相关联的线程访问的其他存储器孔径的引用;以及将所述存储器屏障命令传输至所述一组存储器孔径。2.根据权利要求1所述的计算机实现的方法,其中所述一组存储器孔径包括处在所述处理器内部的第一存储器孔径,不包括处在所述处理器外部的第二存储器孔径。3.根据权利要求1所述的计算机实现的方法,其中所述一组存储器孔径包括处在所述处理器内部的第一存储器孔径,以及处在所述处理器外部的第二存储器孔径。4.根据权利要求1所述的计算机实现的方法,其中所述一组存储器孔径包括处在所述处理器外部的第一存储器孔径,以及处在所述处理器外部、并且不包括所述第一存储器孔径的第二存储器孔径。5.根据权利要求1所述的计算机实现的方法,其中:所述一组存储器孔径包括存储器孔径的第一子集,所述存储器孔径的第一子集包括处在所述处理器内部的第一存储器孔径或处在所述处理器外部的第二存储器孔径中的至少一个,所述一组存储器孔径还包括存储器孔径的第二子集,所述存储器孔径的第二子集包括处在所述处理器内部的第三存储器孔径或处在所述处理器外部的第四存储器孔径中的至少一个,以及所述存储器孔径的第一子集与所述存储器孔径的第二子集不完全相同。6.根据权利要求1所述的计算机实现的方法,其中所述第一存储器屏障指令包括与所述第一域相关联的域标识符。7.根据权利要求1所述的计算机实现的方法,还包括:将所述第一存储器屏障指令与由第二线程执行的第二存储器屏障指令组合,所述第二线程包括在与第三域相关联的第二组线程中,其中所述一组存储器孔径还包括已经由包括在所述第二组线程中的至少一个线程访问的存储器孔径。8.根据权利要求7所述的计算机实现的方法,其中所述第一存储器屏障指令包括与所述第一域相关联的第一域标识符,并且所述第二存储器屏障指令包括与所述第二域相关联的第二域标识符。9.根据权利要求1所述的计算机实现的方法,还包括:确定与所述一组存储器孔径相关联的每个存储器引用已经到达串行化点。10.根据权利要求1所述的计算机实现的方法,其中所述第一域由与所述第一线程相关联的任务元数据标识。11.根据权利要求1所述的计算机实现的方法,其中所述第一域和所述第二域包括在包括四个域的一组域中。
12.根据权利要求1所述的计算机实现的方...

【专利技术属性】
技术研发人员:M
申请(专利权)人:辉达公司
类型:发明
国别省市:

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

1