一种基于三元组的分布式深度学习通信的梯度优化压缩方法技术

技术编号:35870940 阅读:53 留言:0更新日期:2022-12-07 11:05
本发明专利技术公开了一种基于三元组的分布式深度学习通信的梯度优化压缩方法,包括获取参数列表,由参数获取其对应的优化梯度列表;使用随机化的三元组压缩算法对梯度进行编码,将梯度分量压缩为两位二进制数,并存储编码中每个分量所占位数,同时选取扩张值;对编码后的完整数据进行节点间的AllReduce同步,传输时使用三元组的求和方法进行增量位数迭代;按照编码后的完整数据对接收方的缓冲区进行扩张;将编码后的完整数据解码;求取解码后每个梯度的平均值;计算更新参数。可在保证分布式深度学习计算节点的迭代间等待时间不超过基准线的情况下提高单位时间内传输梯度的吞吐量并减少梯度的传输延迟。少梯度的传输延迟。少梯度的传输延迟。

【技术实现步骤摘要】
一种基于三元组的分布式深度学习通信的梯度优化压缩方法


[0001]本专利技术属于AllReduce通信
,具体涉及一种基于三元组的分布式深度学习通信的梯度优化压缩方法。

技术介绍

[0002]随着深度学习在各个领域的蓬勃发展,深度学习训练的模型规模和样本规模也在不断扩大,在单GPU训练无法满足计算性能需求与模型存储需求的情况下,使用多节点多GPU进行分布式深度学习已经成为目前的研究热点。但是使用分布式方式进行深度学习势必会集成以往分布式计算的一些缺陷,并行模型理想情况下可以达到串行模型的线性加速比提升,而真实情况下,线性加速比是一个很难实现的目标,而造成加速比偏差的原因,就是在分布式计算模型中,节点间的通信会占用大量的时间开销。
[0003]目前,分布式深度学习的并行模式可以分为数据并行和模型并行,数据并行由于其出色的可编码性和模型融合速度已经成为大多数分布式深度学习开发者的首选模式。在使用模型并行进行的分布式深度学习时,可以根据系统的架构使用两种不同的同步方式,一种是参数服务器(Parameter Server)架构,另一种是AllReduce架构。参数服务器一般是使用除GPU节点以外的计算节点作为汇总所有其他节点计算梯度与分发更新参数的控制服务器,是一种中心化的通信架构,而AllReduce是在所有GPU计算节点之间进行数据传输,在各自计算节点上使用其他所有节点计算的梯度更新参数,是一种典型的去中心化通信架构。由于AllReduce同步方式出色的性能和较为成熟的生态支持,也成为了目前的主流训练方式。
[0004]在使用AllReduce同步模型进行数据并行的分布式深度学习时,训练较大模型会引入较大的通信数据开销,即节点的迭代间数据同步时间会占用较大的整体训练时间,造成训练效率的严重下跌。
[0005]现有研究针对通信数据开销造成的训练效率下跌问题,集中于使用压缩算法对节点间同步的数据进行一定程度的压缩,尽可能地减少同步时的数据量。但是现有的压缩算法研究大多基于参数服务器架构进行开发,而使用AllReduce架构时,由于同步方式的不同,节点会获取上一个节点的一部分压缩后数据,与本节点相对应数据求和后进行再次压缩,造成精度的进一步损失,因此需要一种针对AllReduce通信架构的减少精度损失的压缩算法。

技术实现思路

[0006]本专利技术所要解决的技术问题是针对上述现有技术的不足,提供一种基于三元组的分布式深度学习通信的梯度优化压缩方法,使用随机化的三元组压缩,构建增量迭代的同步求和算法,配合缓存空间的扩张算法,达到压缩通信数据量的目的,在保证分布式深度学习计算节点的迭代间等待时间不超过基准线的情况下提高单位时间内传输梯度的吞吐量并减少梯度的传输延迟,可解决使用AllReduce进行分布式深度学习训练时通信数据量较
大,为了AllReduce压缩引入的梯度精度损失叠加的问题。
[0007]为实现上述技术目的,本专利技术采取的技术方案为:
[0008]一种基于三元组的分布式深度学习通信的梯度优化压缩方法,包括:
[0009]步骤1:获取Backward与Optimizer使用的参数列表,由参数获取其对应的优化梯度列表;
[0010]步骤2:使用随机化的三元组压缩算法对梯度进行编码,将梯度分量压缩为两位二进制数,并存储编码中每个分量所占位数,同时选取扩张值;
[0011]步骤3:对步骤2编码后的完整数据进行节点间的AllReduce同步,传输时使用三元组的求和方法进行增量位数迭代;
[0012]步骤4:AllReduce同步结束后,每个节点拥有所有编码后的完整数据,按照编码后的完整数据对接收方的缓冲区进行扩张;
[0013]步骤5:调用解压缩算法,结合步骤2的扩张值,将编码后的完整数据解码;
[0014]步骤6:调用AllReduce的求平均方法求取解码后每个梯度的平均值;
[0015]步骤7:根据步骤6每个梯度的平均值,使用PyTorch或TensorFlow的参数优化方法计算更新参数。
[0016]为优化上述技术方案,采取的具体措施还包括:
[0017]上述的梯度采用32为浮点数表示。
[0018]上述的步骤2具体如下:
[0019]步骤2.1:所有节点将本轮迭代计算出的最大分量值广播给其余所有节点;
[0020]步骤2.2:每个节点获取到其他节点的最大分量值后,选取整个系统本轮迭代的最大分量值,作为扩张值存储;
[0021]步骤2.3:使用扩张值进行概率运算,概率运算的结果代表每个分量在本轮迭代时压缩后的值;
[0022]步骤2.4:使用概率运算结果和每个分量的符号函数进行乘积操作,得出压缩后的分量值;
[0023]步骤2.5:对步骤2.4中的压缩结果进行编码,使用UINT8数据类型存储所有分量的二进制编码,合并成为UINT32数据后存储于缓冲区中,同时取一个UINT8格式空间存入分量编码位数。
[0024]上述的步骤2.1中,所有节点使用Broadcast通信方法,将本轮迭代计算出的最大分量值广播给其余所有节点。
[0025]上述的步骤3所述AllReduce同步中,每个节点既是发送方也是接收方。
[0026]上述的步骤3所述三元组的求和方法具体为:
[0027]首先进行解码:获取编码中每个分量所占位数,按照UINT32格式读取缓冲区数据,使用掩码与数据块相与,获得该分量数据;
[0028]其次进行加和、编码:分量数据进行加和操作后再按位写入UINT32格式的缓冲区中,进行编码操作;
[0029]最后将加和结果和掩码进行移位运算,循环进行下一个数据分量的解码、加和、编码。
[0030]上述的步骤4使用的缓冲区扩张方法具体为:
[0031]按照编码中每个分量所占位数与所有分量的个数扩充接收方的缓冲区大小,同时更新每个梯度的入口指针。
[0032]上述的缓冲区扩张方法构建在Horovod代码中,扩张所需的所有信息被编码到具体数据的二进制数据内,最后更新梯度的入口指针保证以最大限度保证与原有系统的兼容性。
[0033]上述的步骤5使用的解压缩算法具体步骤如下:
[0034]步骤5.1:读取编码中末位存储的分量所占位数;
[0035]步骤5.2:根据分量所占位数构造每次移位所需的按位与操作数;
[0036]步骤5.3:按照分量顺序,依次进行按位与和移位操作;
[0037]步骤5.4:对移位后得出的分量值进行位数扩充;
[0038]步骤5.5:按照梯度的形状和规模,将分量值填充进相应的结果梯度内;
[0039]步骤5.6:将步骤5.5中得到的梯度,乘以扩张值,作为最终解码结果返回。
[0040]上述的解压缩算法构建在Compression.py文件中,使用Pytorch或TensorFlow的GPU方法对梯度数组进行处理。
[0041]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于三元组的分布式深度学习通信的梯度优化压缩方法,其特征在于,包括:步骤1:获取分布式深度学习通信的参数列表,由参数获取其对应的优化梯度列表;步骤2:使用随机化的三元组压缩算法对梯度进行编码,将梯度分量压缩为两位二进制数,并存储编码中每个分量所占位数,同时选取扩张值;步骤3:对步骤2编码后的完整数据进行节点间的AllReduce同步,传输时使用三元组的求和方法进行增量位数迭代;步骤4:AllReduce同步结束后,每个节点拥有所有编码后的完整数据,按照编码后的完整数据对接收方的缓冲区进行扩张;步骤5:调用解压缩算法,结合步骤2的扩张值,将编码后的完整数据解码;步骤6:调用AllReduce的求平均方法求取解码后每个梯度的平均值;步骤7:根据步骤6每个梯度的平均值,计算更新参数。2.根据权利要求1所述的一种基于三元组的分布式深度学习通信的梯度优化压缩方法,其特征在于,所述梯度采用32为浮点数表示。3.根据权利要求1所述的一种基于三元组的分布式深度学习通信的梯度优化压缩方法,其特征在于,所述步骤2具体如下:步骤2.1:所有节点将本轮迭代计算出的最大分量值广播给其余所有节点;步骤2.2:每个节点获取到其他节点的最大分量值后,选取整个系统本轮迭代的最大分量值,作为扩张值存储;步骤2.3:使用扩张值进行概率运算,概率运算的结果代表每个分量在本轮迭代时压缩后的值;步骤2.4:使用概率运算结果和每个分量的符号函数进行乘积操作,得出压缩后的分量值;步骤2.5:对步骤2.4中的压缩结果进行编码,使用UINT8数据类型存储所有分量的二进制编码,合并成为UINT32数据后存储于缓冲区中,同时取一个UINT8格式空间存入分量编码位数。4.根据权利要求3所述的一种基于三元组的分布式深度学习通信的梯度优化压缩方法,其特征在于,所述步骤2.1中,所有节点使用Broadcast通信方法,将本轮迭代计算出的最大分量值广播给其余所有节点。5.根据权利要求1所述的一种基于三元组的分布式深度学习通信...

【专利技术属性】
技术研发人员:肖利民刘禹廷王良贾志斌郭为
申请(专利权)人:北京天数微芯半导体科技有限公司
类型:发明
国别省市:

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

1