跨计算装置分布张量计算制造方法及图纸

技术编号:26045248 阅读:33 留言:0更新日期:2020-10-23 21:25
方法、系统和设备包括编码在计算机存储介质上的计算机程序,用于跨计算装置分布张量计算。所述方法中的一种方法包括:接收指定张量计算在多个计算装置之中的分布的规范数据,其中,每个张量计算(i)被定义为接收分别具有一个或多个相应输入维度的一个或多个相应输入张量作为输入,(ii)被定义为生成分别具有一个或多个相应输出维度的一个或多个相应输出张量作为输出,或者进行这两者,其中,所述规范数据为每个输入和输出张量指定相应布局,所述布局将所述输入或输出张量的每个维度分配给所述多个计算装置中的一个或多个计算装置;基于所述输入和输出张量的所述布局来向所述计算装置中的每个计算装置分配相应的装置本地操作;以及使得执行所述张量计算。

【技术实现步骤摘要】
【国外来华专利技术】跨计算装置分布张量计算相关申请的交叉引用本申请根据35U.S.C.§119(e),要求于2018年8月3日提交的美国专利申请No.62/714,586“DISTRIBUTINGTENSORCOMPUTATIONSACROSSCOMPUTINGDEVICES(跨计算装置分布张量计算)”的优先权,并且通过引用将其合并于此。
技术介绍
本说明书涉及跨多个计算装置分布张量计算以便执行。例如,张量计算可以是用于训练神经网络或其它机器学习模型的操作。神经网络是采用一个或多个非线性单元层来预测接收到的输入的输出的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层(即,下一隐藏层或输出层)的输入。网络的每个层根据相应参数集合的当前值来从接收到的输入生成输出。
技术实现思路
本说明书描述了一种实施为在位于一个或多个位置的一个或多个计算机上的计算机程序的系统,该系统响应于接收到的请求而跨计算装置分布张量计算。张量计算接收分别具有一个或多个相应输入维度的一个或多个输入张量作为输入。另外或可替代地,张量计算可以被定义为生成分别具有一个或多个相应输出维度的一个或多个输出张量作为输出。在本说明书中,接收或生成张量的张量计算意味着:配置为执行张量计算的计算装置执行张量计算以接收一个或多个输入张量,生成一个或多个输出张量,或者进行这两者,这取决于张量计算的定义。每个计算装置包括至少一个处理器以及用于存储张量的存储器。计算装置可以包括处理器核、处理器、微处理器、专用逻辑电路系统(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)或任何其它适当的计算装置。在一些示例中,计算装置都是相同类型的计算装置。在其它示例中,计算装置可以包括不同类型的处理单元。例如,一个装置可以包括一个或多个CPU(中央处理单元),而其它装置可以包括一个或多个GPU(图形处理单元)或TPU(张量处理单元)。例如,张量计算可以是用于训练神经网络或其它种类的机器学习模型的操作或用于使用神经网络或其他机器学习模型来执行推理的操作。具体地,该系统允许用户提交规范数据,该规范数据指定在张量计算中所涉及的张量的布局,即,应该如何跨计算装置分布在张量计算中所涉及的每个张量的每个维度。例如,用户可以提交规范数据,该规范数据针对每个张量的每个维度指定是应该在装置中的至少一些装置之中拆分维度还是应该在装置中的所有装置上复制维度。基于布局,该系统将张量计算编译为装置本地操作,并且若必要,将张量计算编译为引起装置之间的通信以组合装置本地操作的输出的通信原语操作。然后,该系统可以通过使每个装置对装置接收到的输入执行对应的装置本地操作(以及若必要,执行通信原语操作)来使得执行张量计算。该系统可以使装置按照各种方式中的任何方式来执行对应的装置本地操作,例如,通过向装置发送适当的指令或控制信号,这些适当的指令或控制信号使装置在装置本地操作的输入变为可用时执行分配给装置的每个装置本地操作。当张量计算是用于训练机器学习模型的操作时,用户可以为在针对一批训练数据执行的机器学习训练过程的迭代期间处理的(即,接收到的或生成的)张量指定布局。然后,该系统可以使得反复对不同的几批训练数据执行张量计算以反复更新机器学习模型的参数以将模型训练到收敛或直到满足某一其它条件为止。可以实施在本说明书中描述的主题的特定实施例以实现以下优点中的一个或多个优点。通过允许用户仅通过指定相关张量的布局来指定如何分布张量计算,可以按照简单的方式来指定复杂的分布方案。因此,用户可以有效地实施使得以导致装置的计算能力的一次或多次地高效利用,提高性能或减少计算时间的方式来执行张量计算(例如,模型训练操作)的有效的分布方案。使用本文描述的用于指定分布方案的方法可以通过将计算装置之间的通信最小化(例如,通过利用网格中的计算装置之间的现有物理连接)来更有效地利用计算装置的计算能力。计算装置之间的通信通常比计算更昂贵,并且在并行程序中,尤其在分布式设置中,通常是瓶颈。本文描述的方法可以展现与其它并行化策略(诸如,例如,属主计算策略)更细粒度的并行性。通过使用在本说明书中描述的用于指定分布方案的技术,可以指定并且实施用于使对非常大型的机器学习模型(即,不适合在单个计算装置上的模型)的训练并行性的方案。这允许模型得以训练以实现有关相对于现有技术的各种机器学习任务中的任何任务的改进的性能,例如,因为可以有效地训练比传统模型具有更多参数(例如,更多隐藏单元)的模型。此外,通过利用可用装置中的所有装置的计算能力,还可以针对训练和推理两者,有效地实施处理非常大的输入的模型。当进行推理时,系统可以以比传统方法更低的延迟来执行模型,因为操作被跨计算装置地分布。此外,通过按照在本说明书中描述的方式来指定分布方案,可以轻松地将给定的分布方案推广到其它硬件或模型类型。因此,一旦发现了有效的分布方案,就可以轻松地推广该方案以有效地分布其它类似的张量计算。在附图和下面的描述中阐述了本说明书的主题的一种或多种实现方式的细节。本主题的其它特征、方面和优点将通过说明书、附图以及权利要求书而变得显而易见。附图说明图1是包括多个计算装置的计算系统的框图。图2A至图2D示出了布局在二维网格上的二维张量的示例布局。图3是用于根据指定张量计算的分布的规范数据来在多个计算装置上执行操作的示例过程的流程图。各个附图中的相同附图标记和标号指示相同的元件。具体实施方式图1是计算系统100的框图,该计算系统100包括相互连接以形成网格110的多个计算装置。计算系统100还可以包括布局引擎120、计算图引擎130和网格执行引擎140。出于本说明书的目的,网格是相互连接的计算装置的n维阵列。例如,网格110是相互连接的计算装置的二维阵列。网格110的计算装置的二维阵列可以说具有形状[4,4],表示计算装置的4x4阵列。可以为同一物理装置集合定义不同的网格,并且因此,网格的形状不暗示计算装置如何相互连接的物理网络拓扑。相反,网格的形状是指根据n维阵列的每个维度表示的若干计算装置,一般地表示为[k1,k2,...kn],其中,每个ki(i≤n)表示网格中的第i维的长度。例如,具有16x16x2环形网络互连的512核心张量处理单元(“TPU”)群集可以被表示为:形状为[16,16,2]的三维阵列;形状为[32,16]的二维阵列或形状为[512]的一维阵列。可以为具有不同类型的处理单元(例如,中央处理单元(CPU)、图形处理单元(GPU)和TPU)的计算装置定义网格。可选地,计算系统100还可以接收指定若干操作180的数据。在一些实现方式中,计算系统100被配置为使用网格110中的计算装置并且对输入数据150执行操作180。在一些实现方式中,计算系统100不被配置为接收指定若干操作180的数据。在那些实现方式中,计算系统100被配置为使用网格110中的计算装置来执行若干预定操作。如下面更本文档来自技高网...

【技术保护点】
1.一种计算机实现的方法,包括:/n接收指定张量计算在多个计算装置之间的分布的规范数据,/n其中,每个张量计算(i)被定义为接收分别具有一个或多个相应输入维度的一个或多个相应输入张量作为输入,(ii)被定义为生成分别具有一个或多个相应输出维度的一个或多个相应输出张量作为输出,或者进行这两者,以及/n其中,所述规范数据为每个输入和输出张量指定相应布局,所述布局将所述输入或输出张量的每个维度分配给所述多个计算装置中的一个或多个计算装置;/n基于所述输入和输出张量的布局来向所述多个计算装置中的每个计算装置分配相应的装置本地操作;以及/n通过使所述多个计算装置中的每个计算装置至少执行分配给所述计算装置的相应的装置本地操作来使所述多个计算装置执行所述张量计算。/n

【技术特征摘要】
【国外来华专利技术】20180803 US 62/714,5861.一种计算机实现的方法,包括:
接收指定张量计算在多个计算装置之间的分布的规范数据,
其中,每个张量计算(i)被定义为接收分别具有一个或多个相应输入维度的一个或多个相应输入张量作为输入,(ii)被定义为生成分别具有一个或多个相应输出维度的一个或多个相应输出张量作为输出,或者进行这两者,以及
其中,所述规范数据为每个输入和输出张量指定相应布局,所述布局将所述输入或输出张量的每个维度分配给所述多个计算装置中的一个或多个计算装置;
基于所述输入和输出张量的布局来向所述多个计算装置中的每个计算装置分配相应的装置本地操作;以及
通过使所述多个计算装置中的每个计算装置至少执行分配给所述计算装置的相应的装置本地操作来使所述多个计算装置执行所述张量计算。


2.根据权利要求1所述的方法,
其中,所述张量计算是用于使用机器学习训练技术来在训练数据上训练机器学习模型的操作,以及
其中,所述规范数据为在对一批训练数据执行机器学习训练技术的迭代时处理的每个张量指定相应布局。


3.根据权利要求1或2中的任一项所述的方法,
其中,所述张量计算通过由有向边连接的节点的有向图表示,每个节点表示相应的张量计算,并且节点的每个入边表示由所述节点表示的张量计算的输入张量,以及所述节点的每个出边表示由所述节点表示的张量的输出张量,以及
其中,所述规范数据为由所述有向图中的边表示的张量中的每个张量指定相应布局。


4.根据权利要求1至3中的任一项所述的方法,其中,对于每个输入和输出张量,所述布局针对所述张量的每个维度指定(i)在所述多个装置中的所有所述计算装置上复制沿所述维度的数据或者(ii)在多个处理器中的至少两个处理器之间拆分沿所述维度的数据。


5.根据权利要求4所述的方法,其中,所述多个计算装置被布置成n维阵列,并且其中,对于每个输入和输出张量,所述布局针对所述张量的每个维度指定(i)...

【专利技术属性】
技术研发人员:诺姆·M·沙泽尔
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国;US

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

1