运算处理设备及其控制方法以及用于存储程序的存储介质技术

技术编号:26478348 阅读:43 留言:0更新日期:2020-11-25 19:22
本发明专利技术涉及运算处理设备及其控制方法以及用于存储程序的存储介质。一种运算处理设备,包括:能够彼此通信的多个节点(N个节点),多个节点中的每个节点包括存储器和处理器,存储器被配置成存储值和操作结果,处理器被配置成当N为2或大于2的自然数、n为1或大于1的自然数并且N≠2

【技术实现步骤摘要】
运算处理设备及其控制方法以及用于存储程序的存储介质
本文讨论的实施方式涉及运算处理设备、运算处理设备的控制方法以及用于存储程序的非暂态计算机可读存储介质。
技术介绍
近年来,在各种领域中已经使用了诸如高性能计算(HPC)、数据科学、机器学习(ML)、深度学习(DL)等的技术。这些技术难以在单个处理器中处理数据以执行大量的计算。因此,当使用这些技术时,引入了将数据划分并分配给多个处理器并且并行地执行计算以提高速度的并行计算机。并行计算机包括由处理器、存储器和通信装置形成的多个节点并且经由网络耦接多个节点以在处理器之间执行数据通信。例如,当执行DL时,在并行计算机中准备多个神经元层。在每个神经元层上重复地执行从输入数据获得输出数据的正向处理、将输出数据与正确答案进行比较以获得差的反向处理以及通过使用差来更新在每个神经元层中使用的参数的更新处理。由此,执行用于获得在每个神经元层中使用的参数的适当值的参数优化。当在例如图像识别等中用微分系数等表示时,通过后向处理获得的差有时被称为梯度信息。以这种方式,优化参数(或模型参数)以减少模型函数与数据之间的距离。在参数优化中,执行被称为“AllReduce”处理的处理,在该处理中,针对每个神经元层聚合通过后向处理在每个节点处获取的差,并且通过预定操作获得更新数据并将其分发给每个节点。在Allreduce处理中,例如,将所有节点的梯度信息相加,并且将相加值分发给每个节点。此后,在每个节点处,可以通过将相加后的值除以并行计算机中包括的节点的数目并取平均来获得更新数据。r>已知DL计算不同于执行例如32位或64位浮点运算的HPC计算,并且即使精度稍低,所获得的最终结果也几乎与例如HPC计算的结果相当。因此,由低位整数表示模型参数以减少节点之间的数据通信量。可以通过减少数据通信量来加速操作。例如,已经提出支持16位半精度浮点运算并且可以实现与32位浮点运算相比的两倍以上的吞吐量的图形处理单元(GPU)。存在通过使用作为定点数的低位整数来进一步提高吞吐量的技术。然而,在具有例如四个节点的并行计算机中,即使梯度信息是例如8位值,在Allreduce处理期间也可能不可避免地需要10位的寄存器。例如,如果四个节点中的每个节点中的8位值是无符号二进制数“11111111”,则这些值的相加后的值变为10位值“1111111100”。在这种情况下,最终以16位表达来执行操作,因此吞吐量减少1/2。当并行计算机中包括的节点的数目增加至512时,例如,相加后的值可能变为17位,并且在这种情况下,以32位表达来执行操作,因此吞吐量减少至1/4。因此,为了抑制溢出,可以在相加之前预先将每个节点的梯度信息除以节点的数目。然而,在这种情况下,尽管可以减少溢出的发生,但是当并行计算机中包括的节点的数目大时,商变得非常小或者变为0,因此在相加时发生误差,从而使操作精度劣化。例如,如果并行计算机中包括的512个节点中的每个节点中的8位值是无符号二进制数“11111111”,则通过将该值除以节点数目“512”获得的结果是8位值“00000000”。因此,难以通过避免溢出来维持操作精度。以这种方式,在相关技术中,当并行计算机的节点数目增加时,吞吐量降低,并且如果尝试通过使用低位整数来提高吞吐量,则操作精度劣化,因此难以通过获得节点平均值来抑制操作精度的劣化。[引用列表][专利文献]日本公开特许公报第2000-339278号。日本公开特许公报第2000-20501号。
技术实现思路
[技术问题]如上面所描述的,在相关技术中,难以通过获得节点平均值来抑制操作精度的劣化。因此,在一个方面中,目的是提供可以通过获得节点平均值来抑制操作精度的劣化的运算处理设备、程序和运算处理设备的控制方法。[问题的解决方案]根据实施方式的方面,一种运算处理设备包括:能够彼此通信的多个节点(N个节点),多个节点中的每个节点包括存储器和处理器,存储器被配置成存储值和使用该值进行的操作结果,处理器被配置成当N为2或大于2的自然数、n为1或大于1的自然数并且N≠2n时执行第一处理,其中,第一处理被配置成将由第一节点保存的值除以2,第一节点是多个节点中的任意节点和按照计数顺序的最后一个节点,通过将多个节点中除第一节点以外的剩余节点进行配对来获得一个或更多个节点对,并且重复地计算由一个或更多个节点对中的每个节点对保存的值的平均值。[本专利技术的有益效果]根据一个方面,可以通过获得节点平均值来抑制操作精度的劣化。附图说明图1是示出一个示例中的并行计算机的示例的框图;图2是示出节点的功能配置的示例的框图;图3是示出由编号分配单元进行的MPI处理是N=4的情况的图;图4是示出梯度信息的聚合处理的示例的图;图5是示出流水线形式的平均处理的图;图6是示出计算两个节点的保存数据的平均值的方法的图;图7是示出在一个示例中由并行计算机进行的AllReduce处理的流程图;图8是示出节点的硬件配置的示例的框图;图9是示出节点的计数顺序被固定的情况的示例的图;图10是示出其中节点的计数顺序被改变的示例的图;图11是示出其中节点的计数顺序被改变的另一示例的图;图12是示出正常所有节点平均处理的示例的流程图;以及图13是示出当N=6且p=3时图12中的处理的图。具体实施方式在下文中,将参照附图描述本申请中公开的运算处理设备、程序和运算处理设备的控制方法的示例。[示例]图1是示出一个示例中的并行计算机的示例的框图。并行计算机1是具有多个节点10-1至10-N的计算机的示例并且是该示例中的运算处理设备的示例。N是2或大于2的自然数。节点10-1至10-N经由网络5彼此耦接并且可以经由网络5相互发送和接收数据。网络5是通信路径的示例。例如,节点10-1至10-N可以经由网络5进行通信。节点10-1至10-N执行例如DL。在DL中,节点10-1至10-N执行参数优化。节点10-1至10-N在优化参数时计算更新数据。节点10-1至10-N中的每个节点具有作为用于计算更新数据的数值数据的梯度信息并且通过使用节点中的每个节点的梯度信息来执行AllReduce处理以计算更新数据。在下面的描述中,当节点10-1至10-N彼此不相区分时,节点也可以被称为“节点10”。接下来,将参照图2描述由节点10执行的AllReduce处理。图2是示出节点的功能配置的示例的框图。在该示例中,将描述作为Allreduce处理中的操作而执行平均的情况作为示例。然而,AllReduce处理中的操作可以是其他操作,例如,加法、乘法、获取最大值、获取最小值等。如图2所示,节点10-1包括编号分配单元101、执行处理确定单元102、正常聚合处理执行单元103、成对聚合处理执行单元104、数据发送单元105、数据接收单元106和数据存储单元107。本文档来自技高网...

【技术保护点】
1.一种运算处理设备,包括:/n能够彼此通信的多个节点(N个节点),所述多个节点中的每个节点包括存储器和处理器,所述存储器被配置成存储值和使用所述值进行的操作结果,所述处理器被配置成当N为2或大于2的自然数、n为1或大于1的自然数并且N≠2

【技术特征摘要】
20190521 JP 2019-0954671.一种运算处理设备,包括:
能够彼此通信的多个节点(N个节点),所述多个节点中的每个节点包括存储器和处理器,所述存储器被配置成存储值和使用所述值进行的操作结果,所述处理器被配置成当N为2或大于2的自然数、n为1或大于1的自然数并且N≠2n时执行第一处理,
其中,所述第一处理被配置成:
将由第一节点保存的值除以2,所述第一节点是所述多个节点中的任意节点和按照计数顺序的最后一个节点,
通过将所述多个节点中除所述第一节点以外的剩余节点进行配对来获得一个或更多个节点对,以及
重复地计算由所述一个或更多个节点对中的每个节点对保存的值的平均值。


2.根据权利要求1所述的运算处理设备,其中,
所述第一处理被配置成:
当N=2p+1+1并且p为满足2p-1<N<2p的自然数时,通过将由所述第一节点保存的值除以2来获得操作结果,
当所述操作结果为奇数时,执行第二处理,所述第二处理被配置成使得以先前最后一个操作结果作为第一的顺序将由所述第一节点保存的值除以2,所述第二处理还被配置成使得执行先前第一操作结果和随后的操作结果的平均操作并且此后按照先前操作结果的顺序执行两个连续操作结果的平均操作,以及
当所述操作结果为偶数时,执行第三处理,所述第三处理被配置成使得执行先前第一操作结果和随后的操作结果的平均操作并且此后按照先前操作结果的顺序执行两个连续操作结果的平均操作。


3.根据权利要求1所述的运算处理设备,其中,
当N=2p-1并且p为满足2p-1<N<2p的自然数时,

【专利技术属性】
技术研发人员:檀上匠
申请(专利权)人:富士通株式会社
类型:发明
国别省市:日本;JP

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

1