一种数据传输方法、装置、电子设备和介质制造方法及图纸

技术编号:33083762 阅读:51 留言:0更新日期:2022-04-15 10:42
本申请实施例公开了一种数据传输方法、装置、电子设备和计算机可读存储介质,将待处理数据的梯度矩阵划分为多个固定长度的数据集;按照设定的筛选粒度,从每个数据集中筛选出预设个数的梯度数值。将筛选出的梯度数值组合为目标数据集;基于梯度数值在梯度矩阵中的位置,确定出每个目标数据集对应的梯度掩码。将目标数据集及其对应的梯度掩码传输至对端设备,对端设备可以根据梯度掩码将目标数据集还原至对应的位置,从而可以重构出梯度矩阵。通过设置筛选粒度实现对梯度矩阵的压缩,以及基于梯度掩码实现对目标数据集的还原,既降低压缩后的梯度矩阵的稀疏度,又能够保证压缩后的梯度矩阵是原始梯度矩阵的有效近似。梯度矩阵是原始梯度矩阵的有效近似。梯度矩阵是原始梯度矩阵的有效近似。

【技术实现步骤摘要】
一种数据传输方法、装置、电子设备和介质


[0001]本申请涉及设备通信
,特别是涉及一种数据传输方法、装置、电子设备和计算机可读存储介质。

技术介绍

[0002]分布式深度学习的模型训练通常依赖图形处理器(Graphics Processing Unit,GPU)集群加速,具体的并行算法又可分为数据并行和模型并行两种,其中最常用的是数据并行。在数据并行中,每个GPU上都有完整的模型,训练数据分发到不同的GPU上,每个GPU均独立执行前向处理计算损失函数,再执行反向传播计算梯度矩阵,最后多个GPU执行AllReduce集合通信同步梯度,使用平均梯度更新权重矩阵,重复上述过程直到模型训练完成。
[0003]多个GPU执行AllReduce集合通信最常用的实现方式是Ring

AllReduce算法。该算法采用环形拓扑连接多个GPU,将数据切分为小块并在环内循环传递。每个GPU均从环形拓扑的上一个GPU接收一块数据,同时也向环形拓扑的下一个GPU发送大小相同的一块数据,这种方式可以平衡利用每条链路的发送和接收带宽。假设GPU数量是N,数据大小是K,链路带宽是B,可以得出整体通信时间是2*(N

1)*K/(N*B)。当GPU数量N足够大时,整体通信时间只依赖于数据大小K和链路带宽B。链路带宽B取决于现有外部总线和网络互联技术,短期内无法快速提升,数据大小K却可以通过算法优化来有效降低。
[0004]深度学习模型的梯度矩阵非常庞大,其中很多梯度的绝对值都比较小,对更新权重矩阵作用不大。因此,研究人员提出了多种方法来压缩梯度矩阵,使得通信时可以去掉这些不重要的梯度数值。在梯度矩阵压缩方面,现有两种常用的技术方案包括细粒度稀疏通信和粗粒度稀疏通信。细粒度稀疏通信首先选择一个阈值,然后遍历梯度矩阵,仅保留梯度数值绝对值超过阈值的梯度,保存为(数值,索引)的键值对形式,通信时仅传输这些键值对的集合。粗粒度稀疏通信首先将梯度矩阵分成若干个固定大小的块,一般将全部梯度矩阵分为数百或上千个块,然后计算每个块的L1范数,选择一定比例的L1范数较大的块进行通信。
[0005]但是细粒度稀疏通信的稀疏矩阵计算不适合GPU体系结构,导致压缩相关的计算开销非常高。并且每个GPU选出的梯度的数量和位置都不同,导致负载不平衡,网络带宽利用率较低。粗粒度稀疏通信虽然能够解决细粒度稀疏通信不适合GPU体系结构的问题,但是这项技术对梯度矩阵分块的粒度较大,选择分块的方式也不够细致,导致压缩后的梯度矩阵对原始梯度矩阵的近似程度不足,通信过程容易损失精度。
[0006]可见,如何既降低压缩后的梯度矩阵的稀疏度,又能够保证压缩后的梯度矩阵是原始梯度矩阵的有效近似,是本领域技术人员需要解决的问题。

技术实现思路

[0007]本申请实施例的目的是提供一种数据传输方法、装置、电子设备和计算机可读存
储介质,可以既降低压缩后的梯度矩阵的稀疏度,又能够保证压缩后的梯度矩阵是原始梯度矩阵的有效近似。
[0008]为解决上述技术问题,本申请实施例提供一种数据传输方法,包括:
[0009]将待处理数据的梯度矩阵划分为多个固定长度的数据集;
[0010]按照设定的筛选粒度,从每个所述数据集中筛选出预设个数的梯度数值;将筛选出的所述梯度数值组合为目标数据集;
[0011]基于所述梯度数值在所述梯度矩阵中的位置,确定出每个所述目标数据集对应的梯度掩码;
[0012]将所述目标数据集及其对应的梯度掩码传输至对端设备。
[0013]可选地,所述按照设定的筛选粒度,从每个所述数据集中筛选出预设个数的梯度数值包括:
[0014]所述数据集的各线程按照设定的掩码计算方式,确定出其所在数据集中剩余数据的源线程编号;
[0015]基于所述源线程编号,获取到对应的梯度数值;
[0016]依据每个所述数据集包含的所有所述梯度数值,选取出取值最大的预设个数的梯度数值。
[0017]可选地,所述设定的筛选粒度包括从相邻的四个梯度数值中筛选两个梯度数值;
[0018]相应的,所述依据每个所述数据集包含的所有所述梯度数值,选取出取值最大的预设个数的梯度数值包括:
[0019]将每相邻的四个梯度数值作为一个数据集,从所述四个梯度数值中筛选出取值最大的两个梯度数值。
[0020]可选地,所述基于所述梯度数值在所述梯度矩阵中的位置,确定出每个所述目标数据集对应的梯度掩码包括:
[0021]按照二进制形式,将筛选出的所述梯度数值在所述梯度矩阵中的位置置一,将所述梯度矩阵中的剩余位置置零。
[0022]可选地,所述将所述目标数据集及其对应的梯度掩码传输至对端设备包括:
[0023]按照设定的数据长度,将多个所述梯度掩码合并为一个梯度掩码组;
[0024]调用线程将所述梯度掩码组写入全局内存,以便于所述对端设备从所述全局内存读取所述梯度掩码。
[0025]可选地,还包括:
[0026]在获取到待还原数据集及其对应的目标梯度掩码的情况下,依据所述目标梯度掩码,将所述待还原数据集中包含的目标梯度数值填写至对应的位置,将没有对应数据的位置置零,以得到还原后的梯度矩阵。
[0027]可选地,还包括:
[0028]依据模型训练的不同阶段,动态调整所述设定的筛选粒度。
[0029]本申请实施例还提供了一种数据传输装置,包括划分单元、筛选单元、组合单元、确定单元和传输单元;
[0030]所述划分单元,用于将待处理数据的梯度矩阵划分为多个固定长度的数据集;
[0031]所述筛选单元,用于按照设定的筛选粒度,从每个所述数据集中筛选出预设个数
的梯度数值;
[0032]所述组合单元,用于将筛选出的所述梯度数值组合为目标数据集;
[0033]所述确定单元,用于基于所述梯度数值在所述梯度矩阵中的位置,确定出每个所述目标数据集对应的梯度掩码;
[0034]所述传输单元,用于将所述目标数据集及其对应的梯度掩码传输至对端设备。
[0035]可选地,所述筛选单元包括确定子单元、获取子单元和选取子单元;
[0036]所述确定子单元,用于所述数据集的各线程按照设定的掩码计算方式,确定出其所在数据集中剩余数据的源线程编号;
[0037]所述获取子单元,用于基于所述源线程编号,获取到对应的梯度数值;
[0038]所述选取子单元,用于依据每个所述数据集包含的所有所述梯度数值,选取出取值最大的预设个数的梯度数值。
[0039]可选地,所述设定的筛选粒度包括从相邻的四个梯度数值中筛选两个梯度数值;
[0040]相应的,所述选取子单元用于将每相邻的四个梯度数值作为一个数据集,从所述四个梯度数值中筛选出取值最大的两个梯度数值。
[0041]可选地,所述确定单元用于按照二进制形式,将筛选出的所述梯度数值在所述梯度矩阵中的位置置一,将所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据传输方法,其特征在于,包括:将待处理数据的梯度矩阵划分为多个固定长度的数据集;按照设定的筛选粒度,从每个所述数据集中筛选出预设个数的梯度数值;将筛选出的所述梯度数值组合为目标数据集;基于所述梯度数值在所述梯度矩阵中的位置,确定出每个所述目标数据集对应的梯度掩码;将所述目标数据集及其对应的梯度掩码传输至对端设备。2.根据权利要求1所述的数据传输方法,其特征在于,所述按照设定的筛选粒度,从每个所述数据集中筛选出预设个数的梯度数值包括:所述数据集的各线程按照设定的掩码计算方式,确定出其所在数据集中剩余数据的源线程编号;基于所述源线程编号,获取到对应的梯度数值;依据每个所述数据集包含的所有所述梯度数值,选取出取值最大的预设个数的梯度数值。3.根据权利要求2所述的数据传输方法,其特征在于,所述设定的筛选粒度包括从相邻的四个梯度数值中筛选两个梯度数值;相应的,所述依据每个所述数据集包含的所有所述梯度数值,选取出取值最大的预设个数的梯度数值包括:将每相邻的四个梯度数值作为一个数据集,从所述四个梯度数值中筛选出取值最大的两个梯度数值。4.根据权利要求1所述的数据传输方法,其特征在于,所述基于所述梯度数值在所述梯度矩阵中的位置,确定出每个所述目标数据集对应的梯度掩码包括:按照二进制形式,将筛选出的所述梯度数值在所述梯度矩阵中的位置置一,将所述梯度矩阵中的剩余位置置零。5.根据权利要求1所述的数据传输方法,其特征在于,所述将所述目标数据集及其对应的梯度掩码传输至对端设备包括:按照设定的数...

【专利技术属性】
技术研发人员:赵谦谦阚宏伟王彦伟
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1