背景技术:
1、本公开涉及计算,并且更具体地,涉及用于训练神经网络的技术。
2、人工神经网络(下文简称神经网络)在人工智能应用和现代计算中通常变得越来越重要。示例神经网络如图1所示。神经网络100接收与要被识别的特征对应的输入值。输入值乘以权重(由边101表示)并在节点102中被相加(例如,求和)。激活函数应用于节点102中的结果以生成输出值。值跨多个节点和节点的层被组合,以产生与结果对应的网络输出值。
3、这种系统通过考虑示例来“学习”以执行任务,通常不需要使用特定于任务的规则进行编程。最初,权重可未经训练。在训练阶段期间,针对对应的已知结果的输入值由网络处理,并且网络输出值与已知值之间的差异(或误差)被确定。可以使用被称为反向传播的过程基于误差来调整权重,其中计算以相反的方向(例如,从输出到输入)流过神经网络。训练可以涉及跨多个输入样本和对应的已知网络输出值连续地调整权重。这通常被称为训练阶段。一旦经训练,系统可以接收输入并且产生有意义的结果(例如,分类或识别)。这通常被称为推断阶段。
4、对于非常大的神经网络的训练可能涉及大量的计算。此外,一般来说,存储器使用是神经网络的一个问题。具有大深度的神经网络可以被需要来存储针对整个网络深度的激活。当网络使用管线时,这个问题就更加复杂了,这可能会导致存储器大小显著增加。例如,在某些神经网络中,管线可能会导致存储器大小呈二次方增长。
5、本公开涉及减少存储器使用并提供其他益处的神经网络训练技术。
技术实现思路
1、本公开的实施例跨管线处理用于人工智能模型的数据。管线包括第一多个级(例如,管线的第一半)和第二多个级(例如,管线的第二半)。第一多个级中的级可以逻辑地和/或物理地链接到第二多个级中的对应的级。例如,第一多个级中的一个或多个级可以使用与第二多个级中的对应的一个或多个级相关联的存储器,以平衡跨管线的存储器需求。
1.一种计算机系统,包括:
2.根据权利要求1所述的计算机系统,其中针对所述一个或多个第一多个级和对应的一个或多个第二多个级中的每个级的所述至少一个存储器的使用是近似恒定的。
3.根据权利要求1所述的计算机系统,其中所述管线中的、位于所述管线中的第一级与所述第一多个级中的特定级之间的级的数目,与所述管线中的、位于所述管线中的最后级与对应的特定级之间的级的数目相同,所述第一多个级中的所述特定级使用与所述第二多个级中的所述对应的特定级相关联的存储器。
4.根据权利要求1所述的计算机系统,其中所述第一多个级中的所述一个或多个级被配置在与所述第二多个级中的所述对应的一个或多个级相同的处理器上。
5.根据权利要求1所述的计算机系统,其中所述第一多个级中的所述一个或多个级被配置在一个或多个第一处理器上,并且所述第二多个级中的一个或多个第二级被配置在一个或多个第二处理器上,其中所述第一处理器使用所述第二处理器上的存储器。
6.根据权利要求1所述的计算机系统,其中所述第一多个级和所述第二多个级中的对应的级跨所述管线使用存储器的大致相同的量。
7.根据权利要求1所述的计算机系统,其中所述第一多个级中的所述一个或多个级被配置为紧邻所述第二多个级中的所述对应的一个或多个级,以增加使用关联于所述对应的级的存储器的级之间的带宽。
8.根据权利要求1所述的计算机系统,其中所述一个或多个第一多个级和所述对应的一个或多个第二多个级在完成正向传递操作之后将数据存储到与所述第二多个级中的所述对应的一个或多个级相关联的存储器中,并且在启动反向传递操作之前从与所述第二多个级中的所述对应的一个或多个级相关联的所述存储器取回所述数据。
9.一种处理人工智能模型的方法,包括:
10.根据权利要求9所述的方法,其中针对所述一个或多个第一多个级和对应的一个或多个第二多个级中的每个级的所述至少一个存储器的使用是近似恒定的。
11.根据权利要求9所述的方法,其中所述管线中的、位于所述管线中的第一级与所述第一多个级的特定级之间的级的数目,与所述管线中的、位于所述管线中的最后级与对应的特定级之间的级的数目相同,所述第一多个级中的所述特定级使用与所述第二多个级中的所述对应的特定级相关联的存储器。
12.根据权利要求9所述的方法,其中所述第一多个级中的所述一个或多个级被配置在与所述第二多个级中的所述对应的一个或多个级相同的处理器上。
13.根据权利要求9所述的方法,其中所述第一多个级中的所述一个或多个级被配置在一个或多个第一处理器上,并且所述第二多个级中的一个或多个第二级被配置在一个或多个第二处理器上,其中所述第一处理器使用所述第二处理器上的存储器。
14.根据权利要求9所述的方法,其中所述第一多个级和所述第二多个级中的对应的级跨所述管线使用存储器的大致相同的量。
15.一种计算机可读存储介质,其上存储有由计算机系统可执行的程序代码,所述程序代码使所述计算机系统: