指令组制造技术

技术编号:21003847 阅读:23 留言:0更新日期:2019-04-30 21:28
本发明专利技术涉及一种计算机程序,包括用于在处理单元上执行的指令序列,该处理单元具有用于保存计算机程序的指令存储、用于执行计算机程序的执行单元和用于保存数据的数据存储,该计算机程序包括一个或多个计算机可执行指令,其在被执行时实现:发送功能,其使以接收处理单元为目的地的数据包在连接到所述处理单元的连接线组上被发射,所述数据包不具有目的地标识符但是在预定的发射时间被发射;切换控制功能,其使处理单元控制切换电路将所述处理单元的连接线组连接到切换结构,以在预定的接收时间接收数据包。

Instruction set

【技术实现步骤摘要】
指令组
本公开涉及在包括多个瓦片(tiles)的处理器中同步多个不同瓦片的工作量,每个瓦片包括具有本地存储器的处理单元。具体地,本公开涉及批量同步并行(BSP)计算协议,其中瓦片组中的每一个必须在该组中的任何瓦片可以继续交换阶段之前完成计算阶段。
技术介绍
计算中的并行性(parallelism)采取不同的形式。程序片段可以被组织为并发地执行(其中它们在时间上重叠但可以共享执行资源)或者并行地执行,其中它们可能同时在不同资源上执行。计算中的并行性可以以多种方式来实现,诸如借助多个互连处理器瓦片的阵列,或者多线程处理单元,或者其中每个瓦片包括多线程处理单元的多瓦片阵列。当借助于包括在同一芯片(或在相同集成电路封装中的芯片)上的多瓦片阵列的处理器实现并行性时,每个瓦片包括其自己的单独的相应处理单元,其具有本地存储器(包括程序存储器和数据存储器)。因此,程序代码的单独部分可以在不同的瓦片上并发运行。这些瓦片经由片上互连(on-chipinterconnect)而连接在一起,这使得在不同瓦片上运行的代码能够在瓦片之间进行通信。在一些情况下,每个瓦片上的处理单元可以采取桶形线程处理单元(或其他多线程处理单元)的形式。每个瓦片可以具有上下文组和执行流水线,使得每个瓦片可以并发地运行多个交错线程。通常,在阵列中的不同瓦片上运行的程序的各部分之间可以存在依赖性。因此,需要一种技术来防止一个瓦片上的一段代码在它所依赖于的数据被另一瓦片上的另一段代码使其可用之前运行。存在许多用于实现此目的的可能方案,但是本文中感兴趣的方案被称为“批量同步并行”(BSP)。根据BSP,每个瓦片以交替的方式执行计算阶段和交换阶段。在计算阶段期间,每个瓦片在瓦片上本地执行一个或多个计算任务,但是不将其计算的任何结果与任何其他瓦片通信。在交换阶段,允许每个瓦片将来自先前计算阶段的计算的一个或多个结果交换到组中的一个或多个其他瓦片,和/或從组中的一个或多个其他瓦片交换,但是在该瓦片完成交换阶段之前尚未开始新的计算阶段。此外,根据这种形式的BSP原理,屏障同步被置于从计算阶段过渡到交换阶段,或者从交换阶段过渡到计算阶段,或两者的接合点处。也就是说:(a)在允许组中的任何瓦片继续到下一个交换阶段之前,需要所有瓦片都完成其各自的计算阶段,或者(b)在允许组中的任何瓦片继续到下一个计算阶段之前,组中的所有瓦片都需要完成其各自的交换阶段,或者(c)两者。当在本文中使用时,短语“在计算阶段和交换阶段之间”包含所有这些选项。在机器智能中可以找到多线程和/或多瓦片并行处理的示例性使用。如机器智能领域的技术人员所熟悉的,机器智能算法“能够产生知识模型”并使用知识模型来运行学习和推理算法。结合知识模型和算法的机器智能模型可以被表示为多个互连节点的图形(graph)。每个节点表示其输入的功能。一些节点接收对图形的输入,一些接收来自一个或多个其他节点的输入。一些节点的输出激活形成其他节点的输入,一些节点的输出提供图形的输出,并且对图形的输入提供对一些节点的输入。此外,由一个或多个相应参数例如权重对每个节点处的功能进行参数化。在学习阶段期间,目标是基于一组经验输入数据,找到针对各种参数的值,使得图形作为整体将针对可能输入范围而生成期望的输出。用于这样做的各种算法在本领域中是已知的,诸如基于随机梯度下降(stochasticgradientdescent)的反向传播算法(backpropagationalgorithm)。在多次迭代后,逐渐调整参数以减少它们的差错,并且因此图形收敛于解。在随后的阶段,学习的模型然后可以被用来在给定一组指定输入的情况下对输出进行预测,或者在给定一组指定输出的情况下对输入(原因)进行推断,或者可以对其执行其他内省形式的分析。每个节点的实现将涉及数据的处理,并且图形的互连对应于要在节点之间交换的数据。通常,每个节点的至少一些处理可以独立于图形中的一些或所有其他节点来被执行,因此大的图形显露出巨大并行性的机会。
技术实现思路
如上所提及,表示知识模型的机器智能模型和关于知识模型如何被用来学习和推理的算法信息通常可以由多个互连节点的图形来表示,每个节点对数据具有处理要求。图形的互连指示要在节点之间要被交换的数据,并因此导致在节点处执行的程序片段之间的依赖性。通常,节点处的处理可以独立于另一节点而被执行,因此大的图形显露出巨大的并行性。高度分布式的并行机器是适合用于计算这种机器智能模型的机器结构。此特征使得机器能够被设计为实现某些时间确定性保证。在本公开中利用的知识模型的因素是图形的一般静态性质。也就是说,在执行机器智能算法期间,包含图形的节点和图形的结构通常不会改变。专利技术人已经制造了一种机器,其使得某些时间确定性保证能够优化机器智能模型上的计算。这允许编译器以时间确定性的方式在节点上进行划分和调度工作。正是这个时间确定性在下面描述的实施例中被利用以用于在设计被优化以基于知识模型处理工作负载的计算机时的显著优化。根据本专利技术的一个方面,提供了一种计算机程序,包括用于在处理单元上执行的指令序列,所述处理单元具有用于保存所述计算机程序的指令存储、用于执行所述计算机程序的执行单元和用于保存数据的数据存储,所述计算机程序包括一个或多个计算机可执行指令,所述一个或多个计算机可执行指令在被执行时实现:发送功能,所述发送功能使以接收处理单元为目的地的数据包在连接到所述处理单元的连接线组上被发射,所述数据包不具有目的地标识符但是在预定的发射时间被发射;和切换控制功能,所述切换控制功能当执行时使所述处理单元控制切换电路以将所述处理单元的连接线组连接到切换结构,以在预定的接收时间接收数据包。可以存在两个单独的指令:发送指令和切换控制指令。发送指令的特征可以包括:所述发送指令通过定义所述指令存储中将从其中发送所述数据包的位置来定义发送地址。可替代地,所述发送指令没有显式地定义发送地址,而是隐式地定义其中保存发送地址的寄存器。所述发送指令可以定义要发送的多个包,每个包与不同的发射时间相关联。所述计算机程序可以包括用于更新隐式定义的寄存器中的发送地址的另外的指令。所述计算机程序可以包括至少一个另外的指令,其定义存储器指针更新功能,所述存储器指针更新功能更新标识所述数据存储中用于存储在所述接收处理单元处接收的所述数据包的存储器位置的存储器指针。本文所描述的指令集的人工制品是:它可以包括合并指令,其合并发射处理单元和接收处理单元的功能,使得所述处理单元可以在单个执行周期内作为发射单元和接收单元操作。一个这样的合并指令合并发送功能与切换控制功能。另一个这样的合并指令合并发送功能和存储器指针更新功能。再一个合并指令合并发送功能、切换控制功能和存储器指针更新功能,使得所有三个功能都可以在单个执行周期中完成。可以以与所述执行单元的提取级的位宽匹配的第一位宽发出指令。合并两个功能的合并指令也可以是第一位宽。实现合并三个功能的合并指令的一种方式是第一位宽的指令标识也是所述第一位宽的操作数。所述操作数实现了切换控制功能和存储器指针更新功能。可替代地,合并三个功能的指令可以是第二位宽,其是所述执行单元的提取级的位宽的两倍,但是一旦被发出就被视为单个指令。合并指令格式可以是通用格式,其中操作本文档来自技高网
...

【技术保护点】
1.一种计算机程序,包括用于在处理单元上执行的指令序列,所述处理单元具有用于保存所述计算机程序的指令存储、用于执行所述计算机程序的执行单元和用于保存数据的数据存储,所述计算机程序包括一个或多个计算机可执行指令,所述一个或多个计算机可执行指令在被执行时实现:发送功能,所述发送功能使以接收处理单元为目的地的数据包在连接到所述处理单元的连接线组上被发射,所述数据包不具有目的地标识符但是在预定的发射时间被发射;和切换控制功能,所述切换控制功能使所述处理单元控制切换电路将所述处理单元的连接线组连接到切换结构,以在预定的接收时间接收数据包。

【技术特征摘要】
2017.10.20 GB 1717299.01.一种计算机程序,包括用于在处理单元上执行的指令序列,所述处理单元具有用于保存所述计算机程序的指令存储、用于执行所述计算机程序的执行单元和用于保存数据的数据存储,所述计算机程序包括一个或多个计算机可执行指令,所述一个或多个计算机可执行指令在被执行时实现:发送功能,所述发送功能使以接收处理单元为目的地的数据包在连接到所述处理单元的连接线组上被发射,所述数据包不具有目的地标识符但是在预定的发射时间被发射;和切换控制功能,所述切换控制功能使所述处理单元控制切换电路将所述处理单元的连接线组连接到切换结构,以在预定的接收时间接收数据包。2.根据权利要求1所述的计算机程序,其中,所述一个或多个指令包括切换控制指令和发送指令,所述发送指令定义发送地址,所述发送地址定义所述指令存储中将从其中发送所述数据包的位置。3.根据权利要求2所述的计算机程序,其中,所述发送指令定义要发送的多个数据包,每个包与不同的预定发射时间相关联。4.根据权利要求2所述的计算机程序,其中,所述发送指令未显式地定义发送地址,而是隐式地定义其中保存发送地址的寄存器。5.根据权利要求4所述的计算机程序,包括用于更新隐式定义的寄存器中的所述发送地址的另外的指令。6.根据权利要求1至5中任一项所述的计算机程序,其中,至少一个另外的指令定义存储器指针更新功能,其更新标识所述数据存储中用于存储在所述接收处理单元处接收的所述数据包的存储器位置的存储器指针。7.根据权利要求1所述的计算机程序,其中,所述一个或多个指令是合并指令,所述合并指令在单个执行周期中合并所述发送功能和所述切换控制功能,由此所述处理单元被配置为操作以发射数据包和控制其切换电路以从另一个处理单元接收不同的数据包。8.根据权利要求6所述的计算机程序,其中,所述至少一个另外的指令是合并指令,所述合并指令合并所述发送功能和所述存储器指针更新功能。9.根据权利要求8所述的计算机程序,其中,所述合并指令以通用格式配置有操作码部分,所述操作码部分指明其将所述发送功能与所述存储器指针更新功能合并还是与所述切换控制功能合并。10.根据权利要求6所述的计算机程序,其中,所述一个或多个指令是单个指令,所述单个指令在单个执行...

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

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

1