时间确定性编译器制造技术

技术编号:21004031 阅读:48 留言:0更新日期:2019-04-30 21:31
本发明专利技术涉及一种计算机实现的生成多个程序以递送计算机化功能的方法,每个程序在计算机的处理单元中执行,所述计算机包括:多个处理单元,每个处理单元具有用于保存本地程序的指令存储、用于执行所述本地程序的执行单元和用于保存数据的数据存储;连接到每个处理单元的输出接口并且可通过每个处理单元可控制的切换电路连接到每个处理单元的输入接口的切换结构;以及可操作以生成同步信号的同步模块,所述方法包括:为每个处理单元生成包括可执行指令序列的本地程序;为每个处理单元确定执行每个本地程序的指令的相对时间,由此分配给一个处理单元的本地程序被调度为以相对于同步信号的预定延迟执行发送指令以在相对于所述同步信号的预定发射时间发射至少一个数据包,所述至少一个数据包的目的地为接收处理单元但没有目的地标识符,并且分配给所述接收处理单元的本地程序被调度为在预定切换时间执行切换控制指令以控制所述切换电路将其处理单元线连接到所述切换结构以在接收时间接收所述数据包。

Timely deterministic compiler

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

【技术保护点】
1.一种计算机实现的生成多个程序以递送计算机化功能的方法,每个程序在计算机的处理单元中被执行,所述计算机包括:多个处理单元,每个处理单元具有用于保存本地程序的指令存储、用于执行所述本地程序的执行单元和用于保存数据的数据存储;连接到每个处理单元的输出接口并且可通过每个处理单元可控制的切换电路连接到每个处理单元的输入接口的切换结构;以及可操作以生成同步信号的同步模块,所述方法包括:为每个处理单元生成包括可执行指令序列的本地程序;为每个处理单元确定执行每个本地程序的指令的相对时间,由此分配给一个处理单元的本地程序被调度为以相对于同步信号的预定延迟执行发送指令以在相对于所述同步信号的预定发射时间发射至少一个数据包,所述至少一个数据包的目的地为接收处理单元但没有目的地标识符,并且分配给所述接收处理单元的本地程序被调度为在预定切换时间执行切换控制指令以控制所述切换电路将其处理单元线连接到所述切换结构以在接收时间接收所述数据包。

【技术特征摘要】
2017.10.20 GB 1717304.81.一种计算机实现的生成多个程序以递送计算机化功能的方法,每个程序在计算机的处理单元中被执行,所述计算机包括:多个处理单元,每个处理单元具有用于保存本地程序的指令存储、用于执行所述本地程序的执行单元和用于保存数据的数据存储;连接到每个处理单元的输出接口并且可通过每个处理单元可控制的切换电路连接到每个处理单元的输入接口的切换结构;以及可操作以生成同步信号的同步模块,所述方法包括:为每个处理单元生成包括可执行指令序列的本地程序;为每个处理单元确定执行每个本地程序的指令的相对时间,由此分配给一个处理单元的本地程序被调度为以相对于同步信号的预定延迟执行发送指令以在相对于所述同步信号的预定发射时间发射至少一个数据包,所述至少一个数据包的目的地为接收处理单元但没有目的地标识符,并且分配给所述接收处理单元的本地程序被调度为在预定切换时间执行切换控制指令以控制所述切换电路将其处理单元线连接到所述切换结构以在接收时间接收所述数据包。2.根据权利要求1所述的方法,其中,所述处理单元相对于彼此具有固定的位置关系,并且所述确定步骤包括基于所述计算机中的每对处理单元之间的位置关系确定固定延迟。3.根据权利要求2所述的方法,其中,所述固定的位置关系包括行和列的阵列,其中每个处理单元具有标识符,所述标识符标识其在所述阵列中的位置。4.根据权利要求1至3中任一项所述的方法,其中,所述切换电路包括多路复用器,所述多路复用器具有连接到其处理单元的输出线组,以及可连接到所述切换结构的多组输入线,所述多路复用器在所述计算机上相对于其处理单元位于预定的物理位置处,并且其中所述确定步骤包括确定来自所述多路复用器的输出数据包到达其处理单元的所述输入接口和所述切换控制指令到达所述多路复用器的固定延迟。5.根据权利要求1至3中任一项所述的方法,包括在每个程序中提供同步指令的步骤,所述同步指令向所述同步模块指示在所述处理单元处的计算阶段已经完成。6.根据权利要求5所述的方法,其中,所述确定步骤包括为每个处理单元确定所述芯片上的同步事件和在所述处理单元处接收到关于同步事件已经发生的确认之间的固定延迟。7.根据权利要求1至3中任一项所述的方法,其中,所述确定步骤包括为每个处理单元确定所述芯片上的同步事件和在所述处理单元处接收到关于同步事件已经发生的确认之间的固定延迟。8.根据权利要求1至3中任一项所述的方法,其中,所述确定步骤包括访问查找表,所述查找表保存关于使得能够确定所述预定发射时间和预定切换时间的延迟的信息。9.根据权利要求1至3中任一项...

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

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

1