本公开涉及跨多个计算引擎的程序化控制的数据多播。本说明书描述了一种程序化多播技术,该技术使一个线程(例如,在GPU上的协作组阵列(CGA)中)能够代表一个或更多个其他线程(例如,在GPU的相应处理器核心上执行)请求数据。多播由跟踪电路支持,该跟踪电路在从处理器核心接收的多播请求与可用存储器之间进行接口。多播被设计为减少高速缓存(例如,第2层高速缓存)带宽利用,从而实现强扩展和较小的图块尺寸。图块尺寸。图块尺寸。
【技术实现步骤摘要】
跨多个计算引擎的程序化控制的数据多播
[0001]相关申请的交叉引用
[0002]本申请涉及以下共同转让的共同未决的美国专利申请,将这些专利申请中的每一个的全部内容通过引用合并:
[0003]2022年3月10日提交的题目为“用于高效访问多维数据结构和/或其他大数据块的方法和装置(Method And Apparatus For Efficient Access To Multidimensional Data Structures and/or other Large Data Blocks)”的美国申请No.17/691,276;
[0004]2022年3月10日提交的题目为“协作组阵列(Cooperative Group Arrays)”的美国申请No.17/691,621;
[0005]2022年3月10日提交的题目为“分布式共享存储器(Distributed Shared Memory)”的美国申请No.17/691,690;
[0006]2022年3月10日提交的题目为“虚拟化处理器中的硬件处理资源(Virtualizing Hardware Processing Resources in a Processor)”的美国申请No.17/691,759;
[0007]2022年3月10日提交的题目为“具有异步事务支持的硬件加速的同步(Hardware Accelerated Synchronization with Asynchronous Transaction Support)”的美国申请No.17/691,296;
[0008]2022年3月10日提交的题目为“处理器和存储器中的快速数据同步(Fast Data Synchronization in Processors And Memory)”的美国申请No.17/691,303;
[0009]2022年3月10日提交的题目为“高效矩阵乘法和与一组线程束相加(Efficient Matrix Multiply and Add with a Group of Warps)”的美国申请No.17/691,406;
[0010]2022年3月10日提交的题目为“用于处理器中的线程组的可扩展负载均衡的技术(Techniques for Scalable Load Balancing of Thread Groups in a Processor)”的美国专利申请No.17/691,872;
[0011]2022年3月10日提交的题目为“不需要硬件复位的处理组件之间的执行软件的灵活迁移(Flexible Migration of Executing Software Between Processing Components Without Need For Hardware Reset)”的美国申请No.17/691,808;以及
[0012]2022年3月10日提交的题目为“用于高效访问多维数据结构和/或其他大数据块的方法和装置(Method And Apparatus For Efficient Access To Multidimensional Data Structures and/or other Large Data Blocks)”的美国专利申请No.17/691,422。
[0013]该技术通常涉及提高处理器的处理效率。更具体地,本文的技术涉及用于处理多播的专用电路。
技术介绍
[0014]用户希望随着图形处理单元(GPU)技术的改进以及处理核心单元的数量随着每代而每芯片增加,深度学习和高性能计算(HPC)计算程序继续扩展。所期望的是单个应用程序
的解决方案的更快时间,不仅仅通过运行N个独立的应用程序来扩展。
[0015]图1A示出了包括顺序相关的计算密集层的长链的示例深度学习(DL)网络。使用诸如例如将输入激活与权重矩阵相乘以产生输出激活的运算来计算每个层。所述层通常通过将工作划分为输出激活块(tile)而跨GPU或GPU集群并行化,每个输出激活块都表示一个处理核心将处理的工作。
[0016]由于潜在大量的计算深度学习需求,通常目标更快。并且与连续地执行所有这些计算相比,并行执行许多计算将加速处理具有直观意义。事实上,应用通过在给定GPU实现上运行而实现的性能益处的量通常完全取决于它可以并行化的程度。但是存在不同的并行化方法。
[0017]在概念上,为了加速进程,可以使每个并行处理器执行更多工作(见图1B),或者可以替代地保持每个并行处理器上的工作量恒定并且添加更多处理器(见图1C)。考虑重铺几英里长的高速路的工作量。你作为项目经理想要在最短的时间量内完成重铺工作以最小化业务中断。显然,如果你有几名工作人员在道路的不同部分并行工作,道路重铺工程将更快地完成。但是,哪种方法将使工作更快速地完成呢——要求每个道路工作人员做更多的工作,还是增加更多的工作人员,每个工作人员做相同的工作量?结果是,答案取决于工作的性质和用于支持该工作的资源。
[0018]计算机科学家将第一种方法称为“弱扩展(weak scaling)”,将第二种方法称为“强扩展(strong scaling)”。
[0019]因此,此类应用的用户通常想要强扩展,这意味着单个应用可以在不必改变其工作负载(例如,通过增加其批大小来创建更固有的并行性)的情况下实现更高的性能。当在提供更多并行处理器的新的、容量更大的GPU平台上运行现有的(例如,重新编译的)应用时,用户还期望提高的速度性能。GPU开发已经满足或甚至超过市场在更多并行处理器和在那些并行处理器上运行的增加数量的并行执行线程之间的更多协调/协作方面的期望——但是仍需要进一步的性能改进以实现强扩展。
附图说明
[0020]图1A示出了在GPU上运行的示例应用。
[0021]图1B示出了弱扩展深度学习场景。
[0022]图1C示出了强扩展深度学习场景。
[0023]图1D示出了在强扩展中较小的图块大小对第2层高速缓存带宽的要求很高。
[0024]图1E示出了冗余存储器提取的示例。
[0025]图2A示出了根据一些实施例的当一个处理器代表多个处理器获取数据时程序化多播中的示例多播消息流。
[0026]图2B示出了根据一些实施例的服务多播消息流的L2请求聚结器(LRC)的框图。
[0027]图3示出了线程协作组阵列(CGA)的概念视图。
[0028]图4示出了协作线程阵列(CTA)的共享存储器组织的概念视图。
[0029]图5示出了每个CTA的相应共享存储器的示例布置。
[0030]图6是包括处理器(例如,流式多处理器)和相关联的互连的GPU架构的框图,该互连被划分为不同的μGPC分区并且包括诸如图2B中所示的LRC。
[0031]图7示出了根据一些实施例的参与多播消息流的示例系统元件,特别是交叉开关交换机和通过交叉本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种处理系统,包括:多个处理器;分布式共享存储器,其包括多个分布式共享存储器区域,所述多个分布式共享存储器区域中的每一个本地连接到所述多个处理器中的相应处理器,其中所述多个处理器被配置为同时地执行多个线程,在所述多个处理器中的第一处理器上执行的所述线程中的一个生成对用于在所述多个处理器中的一个或更多个第二处理器上执行的所述线程中的一个或更多个其他线程的数据的存储器访问请求;以及分组分发电路被配置为将响应于所述存储器访问请求而接收的响应数据的相应部分路由到所述多个处理器中的所述相应处理器以存储在其相应的分布式共享存储器区域中。2.根据权利要求1所述的处理系统,还包括存储器接口电路,其中所述存储器接口电路被配置为将所述存储器访问请求发送到包括高速缓冲存储器的存储器层次结构。3.根据权利要求1所述的处理系统,其中所述分组分发电路包括跟踪电路,并且所述分组分发电路还被配置为响应于接收到所述存储器访问请求,将来自所述存储器访问请求的元数据存储在所述跟踪电路中,并且生成对所述请求的数据的修改的存储器访问请求,以及响应于接收所述响应数据,形成包括所述元数据的多播响应分组,并将所述多播响应分组发送到所述多个处理器中的至少所述一个或更多个第二处理器。4.根据权利要求3所述的处理系统,其中存储的元数据包括所述一个或更多个其他线程的标识信息,并且所述修改的存储器访问请求没有所述一个或更多个其他线程的所述标识信息。5.根据权利要求3所述的处理系统,其中所述分组分发电路还包括分组生成电路,该分组生成电路响应于接收到所述多播响应分组,生成第一响应分组和第二响应分组,所述第一响应分组和所述第二响应分组中的每一个被路由到所述多个处理器中的相应一个处理器。6.根据权利要求5所述的处理系统,其中所述分组分发电路被配置为在生成所述第一响应分组和所述第二响应分组之前在所述分组分发电路的一部分中传输所述多播响应分组。7.根据权利要求1所述的处理系统,其中所述多个线程包括作为协作组阵列CGA启动的多个协作线程阵列CTA,其中在所述多个处理器中的每个处理器上启动所述CTA中的相应一个CTA。8.根据权利要求...
【专利技术属性】
技术研发人员:A,
申请(专利权)人:辉达公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。