多瓦片、多芯片处理布置中的同步制造技术

技术编号:21855453 阅读:48 留言:0更新日期:2019-08-14 01:37
一种操作系统的方法,包括被划分成多个域的多个处理器瓦片,其中在每个域内,瓦片通过时间确定性互连的相应实例彼此连接,并且在域之间,瓦片通过非时间确定性互连彼此连接。所述方法包括:执行计算级,然后在每个域内执行相应的内部屏障同步,然后在每个域内执行内部交换阶段,然后执行外部屏障同步以在不同域之间同步,然后在域之间执行外部交换阶段。

Synchronization in Multi-tile and Multi-Chip Processing Layout

【技术实现步骤摘要】
【国外来华专利技术】多瓦片、多芯片处理布置中的同步
本公开涉及在包括多瓦片处理布置的处理器中同步多个不同瓦片的工作负载,每个瓦片包括其自己的处理单元和存储器。具体地,本公开涉及批量同步并行(BSP)通信方案,其中瓦片组中的每个瓦片必须在组中的任何瓦片可以继续到交换阶段之前完成计算阶段。
技术介绍
多线程处理器是能够彼此并行执行多个程序线程的处理器。处理可以包括对多个不同线程是共同的一些硬件(例如共同指令存储器、数据存储器和/或执行单元);但是为了支持多线程,处理器还包括一些特定于每个线程的专用硬件。专用硬件至少包括可以一次执行的多个线程中的每个的相应上下文寄存器文件。当谈到多线程处理器时,“上下文”指的是彼此并行执行的线程的相应一个的程序状态(例如程序计数器值、状态和当前操作数值)。上下文寄存器文件指的是用于表示相应线程的这种程序状态的相应寄存器集合。寄存器文件中的寄存器不同于通用存储器,因为寄存器地址固定为指令字中的位(bit),而存储器地址可以通过执行指令来计算。给定上下文的寄存器通常包括用于相应线程的相应程序计数器,以及相应操作数寄存器集,用于临时保持在由该线程执行的计算期间作用于相应线程并由相应线程输出的数据。每个上下文还可以具有相应的状态寄存器,用于存储相应线程的状态(例如它是暂停还是正在运行)。因此,每个当前运行的线程都具有自己独立的程序计数器,并可选地具有操作数寄存器和状态寄存器。多线程的一种可能形式是并行(parallelism)。即是说,除了多个上下文之外,还提供了多个执行流水线:即,用于要并行执行的每个指令流的独立执行流水线。但是,这需要在硬件方面进行大量重复。因此,另一种形式的多线程处理器采用并发(concurrency)而不是并行,其中线程共享共同的执行流水线(或至少流水线的共同部分),并且不同的线程通过该相同、共享的执行流水线交错。由于增加了隐藏流水线延迟(latency)的机会,与没有并发或并行相比,多线程处理器的性能仍然可以改善。此外,这种方法不需要具有多个执行流水线的完全并行处理器所需那么多的专用于每个线程的额外硬件,因此不会需要如此多的额外硅。一种形式的并行可以通过包括在同一芯片(即相同管芯)上的多个瓦片的布置的处理器来实现,其中每个瓦片包括其自己独立的相应处理单元和存储器(包括程序存储器和数据存储器)。因此,程序代码的独立部分可以在不同的瓦片上并行运行。这些瓦片通过芯片上互连连接在一起,这使得在不同瓦片上运行的代码能够在瓦片之间进行传送(communicate)。在一些情况下,每个瓦片上的处理单元本身可以在瓦片上运行多个并发线程,每个瓦片具有其自己的相应上下文集和如上所述的相应流水线,从而支持通过同一流水线的在同一瓦片上的多个线程的交错。通常,不同瓦片上运行的程序的各部分之间可以存在依赖性。因此,需要一种技术来防止一个瓦片上的代码段在它所依赖于的数据被另一瓦片上的另一段代码使其变得可用之前运行。存在许多用于实现此目的的可能方案,但是本文中感兴趣的方案被称为“批量同步并行”(BSP)。根据BSP,每个瓦片以交替周期执行计算阶段和交换阶段。在计算阶段期间,每个瓦片在瓦片上本地执行一个或多个计算任务,但是不与任何其他瓦片传送其计算的任何结果。在交换阶段,允许每个瓦片将来自先前计算阶段的计算的一个或多个结果交换到组中的一个或多个其他瓦片,和/或从组中的一个或多个其他瓦片交换,但是还未继续到下一个计算阶段。此外,根据BSP原理,屏障同步被置于从计算阶段过渡到交换阶段、或者从交换阶段过渡到计算阶段、或两者的接合点。也就是说:(a)在允许组中的任何瓦片继续到下一个交换阶段之前,需要所有瓦片都完成其相应的计算阶段,或者(b)在允许组中的任何瓦片继续到下一个计算阶段之前,需要组中的所有瓦片都完成其相应的交换阶段,或者(c)两者。在一些情况下,可以允许执行计算的瓦片与其他系统资源(例如网卡或存储盘)进行传送,前提是不涉及与组中其他瓦片的传送。在也可能具有在彼此传送之间执行的计算任务的发送器和接收器的互连系统中,发送器和接收器基本上有三种方式可以实现这一点。第一种是“约会”(rendezvous)方法。根据这种方法,发送器在准备好发送数据时发信号通知接收器,而接收器在准备接收数据时发信号通知发送器。如果发送器已准备好发送数据,但接收器正在执行一些其他计算任务,则发送器必须等待接收器完成其计算任务并发信号通知其准备好从发送器接收数据,否则发送器必须中断接收器。类似地,如果接收器在发送器仍然在执行一些其他计算任务时需要来自发送器的数据,则接收器必须等待发送器完成其计算任务并发信号通知其准备好向接收器发送数据,否则接收器必须中断发送器。约会方法的优点在于它不需要队列来对所发送数据进行排队,因为只有发送器和接收器都同意它们准备好进行传送时,才会进行数据传送。但是,缺点是延迟:发送器和接收器将花费大量时间等待彼此,否则将需要执行大量中断,这也会导致延迟惩罚(penalty)。延迟最终表现为吞吐量降低。第二种可能性是“后箱”方法。根据这种方法,发送器在发送数据之前不会等待接收器。而是将所发送数据缓冲在队列中,接收器在准备好时从该队列中读取数据。只要队列有足够的长度,这就解决了约会方法的延迟问题。但是,如果填满了队列,过程便会停止,实际上传送将回退到约会方法。为了减少这种情况,相对于有机会发送的数据量,需要使队列变得更长。但是队列会产生巨大的硅足迹,特别是在发送器和接收器的许多潜在组合的阵列中。而且,在实践中,队列不能是无限长的。批量同步并行(BSP)提供了第三种方法:每个瓦片在计算阶段执行特定定义量的计算处理,然后所有瓦片在前进到交换阶段之前一起同步(屏障同步)。这不会产生如约会方法那么多的延迟,并且不会像后箱方法产生那么多排队。在机器智能中可以找到多线程和/或多瓦片并行处理的示例性使用。如机器智能领域的技术人员所熟悉的,机器智能算法是基于对“知识模型”执行迭代更新,该模型可以由多个互连节点的图形表示。每个节点表示其输入的函数。一些节点接收对图形的输入,一些接收来自一个或多个其他节点的输入,而一些节点的输出形成其他节点的输入,一些节点的输出提供图形的输出(在一些情况下,给定节点甚至可能具有以下全部:对图形的输入、来自图形的输出和对其他节点的连接)。此外,由一个或多个相应参数(例如权重)对每个节点的函数进行参数化。在学习级期间,目标是基于经验输入数据集,找到各个参数的值,使得图形作为整体针对可能输入范围而生成期望的输出。用于这样做的各种算法在本领域中是已知的,例如基于随机梯度下降(stochasticgradientdescent)的反向传播算法(backpropagationalgorithm)。在基于输入数据的多次迭代中,逐渐调整参数以减少它们的误差,并且因此图形收敛于解(solution)。在随后的阶段,学习的模型然后可以用于对在给定的指定输入集的情况下对输出进行预测,或者在给定的指定输出集的情况下对输入(原因)进行推断。每个节点的实现将涉及数据的处理,并且图形的互连对应于要在节点之间交换的数据。通常,每个节点的至少一些处理可以独立于图形中的一些或所有其他节点来执行,因此大的图形显露出巨大的并发和本文档来自技高网...

【技术保护点】
1.一种操作系统的方法,包括被划分成多个域的多个处理器的瓦片,其中在每个域内,瓦片通过时间确定性互连的相应实例彼此连接,并且在域之间,瓦片通过非时间确定性互连彼此连接;所述方法包括:在跨越域的一些或所有瓦片的参与组中的每个相应的一个上,执行计算级,其中相应的瓦片执行相应的一个或多个瓦片上计算,但既不向也不从组中的任何其他瓦片传送计算结果;在所述一个或多个域中的每个相应的一个域内,执行相应的内部屏障同步以要求相应的域中的所有参与瓦片在相应的域中的任何参与瓦片被允许继续到内部交换阶段之前已经完成计算阶段,从而在所述一个或多个域中的单独每一个域内部的所有参与瓦片之间建立共同时间参考;在相应的内部屏障同步之后,在所述一个或多个域中的每个内执行所述内部交换阶段,其中相应的域内的每个参与瓦片通过时间确定性互连向和/或从同一域内的一个或多个其他参与瓦片传送其相应计算的一个或多个结果,但既不向也不从任何其他所述域传送计算结果;执行外部屏障同步以要求所述域的所有参与瓦片在任何参与瓦片被允许继续到外部交换阶段之前已经完成内部交换阶段,从而在跨越域的所有参与瓦片之间建立共同时间参考;和在所述外部屏障同步之后,执行外部交换阶段,其中一个或多个参与瓦片与另一个域通过非时间确定性互连传送一个或多个所述计算结果。...

【技术特征摘要】
【国外来华专利技术】2017.10.20 GB 1717294.11.一种操作系统的方法,包括被划分成多个域的多个处理器的瓦片,其中在每个域内,瓦片通过时间确定性互连的相应实例彼此连接,并且在域之间,瓦片通过非时间确定性互连彼此连接;所述方法包括:在跨越域的一些或所有瓦片的参与组中的每个相应的一个上,执行计算级,其中相应的瓦片执行相应的一个或多个瓦片上计算,但既不向也不从组中的任何其他瓦片传送计算结果;在所述一个或多个域中的每个相应的一个域内,执行相应的内部屏障同步以要求相应的域中的所有参与瓦片在相应的域中的任何参与瓦片被允许继续到内部交换阶段之前已经完成计算阶段,从而在所述一个或多个域中的单独每一个域内部的所有参与瓦片之间建立共同时间参考;在相应的内部屏障同步之后,在所述一个或多个域中的每个内执行所述内部交换阶段,其中相应的域内的每个参与瓦片通过时间确定性互连向和/或从同一域内的一个或多个其他参与瓦片传送其相应计算的一个或多个结果,但既不向也不从任何其他所述域传送计算结果;执行外部屏障同步以要求所述域的所有参与瓦片在任何参与瓦片被允许继续到外部交换阶段之前已经完成内部交换阶段,从而在跨越域的所有参与瓦片之间建立共同时间参考;和在所述外部屏障同步之后,执行外部交换阶段,其中一个或多个参与瓦片与另一个域通过非时间确定性互连传送一个或多个所述计算结果。2.根据权利要求1所述的方法,其中通过非时间确定性互连的传送被排队,但是瓦片之间通过时间确定性互连的传送不被排队。3.根据权利要求1或2所述的方法,其中在时间确定性互连上,每对发送瓦片和接收瓦片之间的传送通过以下方式执行:从接收瓦片发送消息,和控制接收瓦片在发送瓦片发送之后的预定时间间隔内监听发送瓦片的地址,其中预定时间间隔等于发送瓦片和接收瓦片之间的总预定延迟,时间间隔由具有关于延迟的预定信息的编译器设置。4.根据任何前述权利要求所述的方法,其中:在物理层、传输层或网络层上,非时间确定性互连是有损的,而时间确定性互连是无损的。5.根据任何前述权利要求所述的方法,其中每个域是不同的相应芯片,时间确定性互连是内部芯片上互连,并且非时间确定性互连是芯片之间的外部互连。6.根据权利要求1至4中任一项所述的方法,其中每个域包括多个芯片,时间确定性互连是外部无损芯片间互连,并且非时间确定性互连是外部有损互连。7.根据任何前述权利要求所述的方法,包括执行一系列重复的迭代,每个包括计算级的相应实例,接着是内部屏障同步的相应实例,接着是内部交换阶段的相应实例,接着是外部屏障同步的相应实例,接着是外部交换阶段的相应实例;其中,不允许每个连续的迭代继续进行,直至执行了紧接在前的迭代的外部屏障同步。8.根据任何前述权利要求所述的方法,包括执行一顺序的计算阶段的实例,每个接着是内部交换阶段的相应实例,然后是内部屏障同步的相应实例,其中外部屏障同步接着所述顺序中计算阶段的最后实例。9.根据权利要求7和8所述的方法,其中一个或多个所述迭代中的每一个包括相应顺序的计算阶段的多个实例,每个接着是内部交换阶段的相应实例,然后是内部屏障同步的相应实例,其中相应的外部屏障同步接着相应顺序中计算阶段的最后实例。10.根据任何前述权利要求所述的方法,其中内部屏障同步和外部屏障同步中的每一个通过执行包括操作码和操作数的同步指令来执行,其中操作码将同步指令的模式指定为内部或外部,并且其中操作码在执行时使时间确定性互连中的硬件逻辑在操作数指定内部模式时协调内部屏障同步的性能,并且使非时间确定性互连中的硬件逻辑在操作数指定外部模式时协调外部屏障同步的性能。11.根据任何前述权利要求所述的方法,包括将多个预定义区域之一选择为参与瓦片,每个区域包括所述多个...

【专利技术属性】
技术研发人员:丹尼尔·约翰·佩勒姆·威尔金森斯蒂芬·菲利克斯理查德·卢克·索斯维尔·奥斯本西蒙·克里斯蒂安·诺尔斯艾伦·格雷汉姆·亚历山大伊恩·詹姆斯·奎因
申请(专利权)人:图核有限公司
类型:发明
国别省市:英国,GB

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

1