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

技术编号:22061458 阅读:36 留言:0更新日期:2019-09-07 18:44
一种处理系统,包括多个瓦片和瓦片之间的互连。互连用于根据批量同步并行方案在一些或所有瓦片的组之间通信,由此组中的每个瓦片执行瓦片上计算阶段,接着是瓦片间交换阶段,不进行交换阶段,直至组中的所有瓦片已经完成计算阶段。组中的每个瓦片具有本地退出状态,直至计算阶段完成。指令集包括同步指令,用于由每个瓦片在完成其计算阶段时执行,以将同步请求以信号发给互连中的逻辑。响应于从组中的所有瓦片接收到同步请求,逻辑释放下一个交换阶段,并使组中的所有瓦片的聚合状态变得可用。

Synchronization in Multi-tile Processing Layout

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

【技术保护点】
1.一种处理系统,其包括瓦片的布置和用于在瓦片之间通信的互连,其中:每个瓦片包括用于执行机器代码指令的执行单元,每个机器代码指令是处理器的指令集中预定义指令类型集的实例,所述指令集中的每个指令类型由相应操作码和用于取得零个或多个操作数的零个或多个操作数字段定义;互连可操作为根据批量同步并行方案进行一些或所有瓦片的组之间的通信,由此所述组中的每个瓦片执行瓦片上计算阶段,接着是瓦片间交换阶段,不进行交换阶段,直至所述组中的所有瓦片已经完成计算阶段,其中组中的每个瓦片在完成计算阶段时具有本地退出状态;指令集包括同步指令,用于由组中的每个瓦片在完成其计算阶段时执行,其中同步指令的执行使执行单元向互连中的硬件的逻辑发送同步请求;和互连中的逻辑配置为将本地退出状态聚合到全局退出状态中,并且响应于组中的所有瓦片完成计算阶段,如通过从组中的所有瓦片接收到同步请求所指示,将全局退出状态存储在组中的每个瓦片上的全局退出状态寄存器中,从而使在组中的每个瓦片上运行的代码的一部分可访问全局退出状态。

【技术特征摘要】
【国外来华专利技术】2017.10.20 GB 1717291.71.一种处理系统,其包括瓦片的布置和用于在瓦片之间通信的互连,其中:每个瓦片包括用于执行机器代码指令的执行单元,每个机器代码指令是处理器的指令集中预定义指令类型集的实例,所述指令集中的每个指令类型由相应操作码和用于取得零个或多个操作数的零个或多个操作数字段定义;互连可操作为根据批量同步并行方案进行一些或所有瓦片的组之间的通信,由此所述组中的每个瓦片执行瓦片上计算阶段,接着是瓦片间交换阶段,不进行交换阶段,直至所述组中的所有瓦片已经完成计算阶段,其中组中的每个瓦片在完成计算阶段时具有本地退出状态;指令集包括同步指令,用于由组中的每个瓦片在完成其计算阶段时执行,其中同步指令的执行使执行单元向互连中的硬件的逻辑发送同步请求;和互连中的逻辑配置为将本地退出状态聚合到全局退出状态中,并且响应于组中的所有瓦片完成计算阶段,如通过从组中的所有瓦片接收到同步请求所指示,将全局退出状态存储在组中的每个瓦片上的全局退出状态寄存器中,从而使在组中的每个瓦片上运行的代码的一部分可访问全局退出状态。2.根据权利要求1所述的处理系统,其中每个瓦片上的执行单元配置为响应于执行同步指令而暂停指令发布;并且,其中互连中的逻辑配置为响应于从组中的所有瓦片接收到同步请求,向组中的每个瓦片发回同步确认信号,从而恢复指令发布。3.根据任何前述权利要求所述的处理系统,其中每个本地退出状态和全局退出状态是单一位。4.根据权利要求3所述的处理系统,其中聚合由本地退出状态的布林AND或本地退出状态的布林OR组成。5.根据权利要求1或2所述的处理系统,其中聚合退出状态包括表示三进制值的至少两个位,所述三进制值指示本地退出状态是全是真的、全是假的,还是混合的。6.根据任何前述权利要求所述的处理系统,其中所述组中的每个瓦片包括布置为表示瓦片的本地退出状态的本地退出状态寄存器。7.根据任何前述权利要求所述的处理系统,其中组中的每个瓦片包括:多个上下文寄存器集,每个上下文寄存器集各自布置为存储多个线程的相应一个的程序状态;和调度器,其布置为调度执行交错时隙的重复顺序中的多个时隙中的每个中的多个工作者线程中的相应一个,每个工作者线程的程序状态存储在所述上下文寄存器集的相应一个中;其中根据所述批量同步并行方案,不进行交换阶段,直至组中的所有瓦片上的所有工作者线程已经完成计算阶段;其中每个瓦片上的本地退出状态是瓦片上的每个工作者线程所输出的单独退出状态的聚合;和其中代码的所述一部分包括瓦片上的多个线程中的至少一个。8.根据权利要求7所述的处理系统,其中组中的每个瓦片包括硬件逻辑,所述硬件逻辑配置为执行所述将单独退出状态聚合到本地退出状态中。9.根据权利要求8所述的处理系统,其中指令集包括用于包括在每个工作者线程中的退出指令,执行单元配置为输出相应工作者线程的单独退出状态,并响应于退出指令的操作码而终止相应工作者线程。10.根据权利要求7、8或9所述的处理系统,其中每个单独退出状态和本地退出状态是单一位,并且单独退出状态的聚合由单独退出状态的布林AND或单独退出状态的布林OR组成。11.根据权利要求7、8或9所述的处理系统,其中本地退出状态包括表示三进制值的至少两个位,所述三进制值指示单独退出状态是全是真的、全是假的,还是混合的。12.根据权利要求7至11中任一项所述的处理系统,其中交换阶段布置为由独立于工作者线程的监督...

【专利技术属性】
技术研发人员:西蒙·克里斯蒂安·诺尔斯艾伦·格雷汉姆·亚历山大
申请(专利权)人:图核有限公司
类型:发明
国别省市:英国,GB

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

1