当前位置: 首页 > 专利查询>之江实验室专利>正文

适用于分布式深度学习训练预取缓存管理的方法和装置制造方法及图纸

技术编号:38334856 阅读:15 留言:0更新日期:2023-08-02 09:15
本发明专利技术公开了一种适用于分布式深度学习训练预取缓存管理的方法和装置,包括:深度学习任务初始化时,初始化预取缓存空间;在深度学习训练任务每个轮次训练开始前,生成轮次的洗牌序列,按照该洗牌序列构建缓存索引;在深度学习训练任务进行训练时,根据缓存索引,从预取缓存空间中获取数据,若缓存未命中,则以存储节点为划分依据,到分布式存储中进行批量预取;在预取缓存空间已用容量达到指定阈值时启动缓存淘汰,淘汰掉缓存命中的数据。该方法和装置以存储节点为划分依据进行批量预取,减少了节点之间的通信次数,提高了通信效率,同时,对缓存命中的数据进行淘汰,使得缓存中都是即将命中的数据,提高了缓存命中率。提高了缓存命中率。提高了缓存命中率。

【技术实现步骤摘要】
适用于分布式深度学习训练预取缓存管理的方法和装置


[0001]本专利技术属于深度学习
,更具体地,涉及一种适用于分布式深度学习训练预取缓存管理的方法和装置。

技术介绍

[0002]深度学习广泛应用于计算机视觉、语音识别、气候科学等领域,借助于高性能计算环境极高的计算性能、存储能力和节点间通信能力,深度学习的规模可以进一步扩大,但是,在高性能计算环境中如何高效运行和扩展深度学习应用仍是一个巨大的挑战。目前,主要有三个因素影响深度学习训练:1)I/O性能,用于给计算节点提供训练样本以标签;2)执行深度学习训练的计算能力;3)通信性能,进行节点之间同步。
[0003]在高性能计算机系统上,通常使用GPFS和Lustre等并行文件系统存储超大规模的深度学习训练数据集,深度学习训练的数据集由大量小文件组成,例如,ImageNet

1K数据集包含1000个类别的128万个文件;Images数据集包含大约900万张图像。而深度学习任务在训练过程中会进行多个轮次的训练,每个轮次都以随机的顺序读取整个数据集,但是,高性能计算机的I/O子系统没有考虑深度学习框架这种读取大规模数据的方式,因此容易被大并发的小文件随机访问所饱和。因此,如果高性能计算机的I/O软件栈不能满足深度学习应用大规模运行的需求,需要让深度学习应用等待从共享存储PFS读取数据,那么所有的计算能力无法充分利用。
[0004]目前针对以上问题的解决方案分为两种,一种是把深度学习训练过程流水线化,另外一种是利用计算节点的本地存储进行缓存。其中,把深度学习训练过程流水线化的方案利用了深度学习训练不同阶段之间可重合的特性,主要是计算与I/O可并行运行,但是随着计算能力的不断提高,该部分的并行化优化效果有限,瓶颈仍在于I/O。对于利用计算节点的本地存储进行缓存的方案,由于深度学习训练的每个轮次以随机的序列对数据集进行遍历,并且在一个轮次过程中不重复访问,这使得传统缓存策略不再适用。
[0005]常用的缓存策略有两种,一种是固定缓存一部分数据,不进行缓存淘汰,因此,缓存命中率取决于缓存容量与数据集大小之比。由于深度学习训练的数据集往往非常庞大,因此缓存的效果非常有限。另一种策略把缓存与洗牌相结合,每个计算节点缓存数据集的一部分,根据计算节点本地存储的数据进行洗牌,这种方式会导致训练精度下降,或者对计算节点间本地存储的数据进行交换后进行本地洗牌,这种方式增加了节点间通信的开销。

技术实现思路

[0006]鉴于上述,本专利技术的目的是提供一种适用于分布式深度学习训练预取缓存管理的方法和装置,减少对分布式存储系统的访问以及增加内存缓存的命中率,提高训练过程中的I/O效率,提升训练速度。
[0007]为实现上述专利技术目的,本专利技术实施例提供的一种适用于分布式深度学习训练预取缓存管理的方法,包括以下步骤:
深度学习任务初始化时,在计算节点的内存中初始化预取缓存空间;在深度学习任务每个轮次的训练开始时,为每个轮次生成样本数据的洗牌序列,并按照洗牌序列为预取缓存构建顺序一致的缓存索引,按照索引对应样本数据所在的分布式存储的存储节点把缓存索引划分成不同的预取链表,每个存储节点对应一个预取链表,且预取链表中索引按照洗牌序列中顺序排列;在深度学习任务训练时,按照缓存索引顺序从预取缓存空间中获取样本数据,若未命中对应样本数据,则根据预取链表从存储节点获取一批样本数据并存入预取缓存空间中;若预取缓存空间的已用容量达到指定阈值,则对预取缓存空间中样本数据进行缓存淘汰;在深度学习任务结束时,释放预取缓存空间。
[0008]优选地,所述按照索引对应的样本数据所在的分布式存储的存储节点把缓存索引划分成不同的预取链表,包括:采用M=mod(i,N)计算缓存索引对应的样本数据所在的存储节点,其中i表示缓存索引,N表示存储节点总数,mod(i,N)为取余函数,表示i除以N得到的余数,该余数作为存储节点的序号M;依据存储节点把缓存索引划分成存储节点对应的预取链表。
[0009]优选地,所述根据预取链表从分布式存储获取一批样本数据并存入预取缓存空间,包括:将当前缓存索引以及其在预取链表中随后的k

1个缓存索引组合成一个请求,并发送至当前缓存索引对应的存储节点获取样本数据;若预取链表中当前缓存索引随后的剩余缓存索引不足k

1,则剩余缓存索引对应的样本数据需要被全部取出,其中,k为设定的预取个数;深度学习任务的计算节点接收存储节点返回的样本数据,其中,请求的当前样本数据返回给深度学习训练框架,其余的样本数据依次存入预取缓存空间。
[0010]优选地,所述方法还包括:为预取缓存的样本数据构建预取元数据链表;在预取缓存时,将样本数据的元数据信息存入预取元数据链表,其中,元数据信息包括指向预取链表中对应缓存索引的指针、样本数据在预取缓存空间中的起始位置、样本数据的长度、缓存命中标记。
[0011]优选地,所述若预取缓存空间的已用容量达到指定阈值,则对预取缓存空间中样本数据进行缓存淘汰,包括:当预取样本数据存入预取缓存空间时,进行已用容量判断,当已用容量达到指定阈值时,则把预取缓存空间起始位置至当前位置的空间设为淘汰区,对淘汰区中样本数据进行缓存淘汰。
[0012]优选地,对淘汰区中样本数据进行缓存淘汰中,从预取元数据链表中读取缓存数据的元数据信息,若样本数据已被命中,则进行淘汰,若连续的几个样本数据均被命中,则一起淘汰,直至遇到未命中的样本数据为止。
[0013]优选地,所述方法还包括:淘汰区中样本数据淘汰后,对于淘汰样本数据后面的尚未命中的样本数据要向预取缓存空间的开始位置进行搬移,若连续的几个样本数据均未命
中,则一起进行搬移。
[0014]优选地,所述方法还包括:在缓存淘汰过程中,若预取缓存空间仍有空闲空间,则在淘汰区后面继续存入样本数据,并将淘汰区后面新存入的样本数据进行搬移。
[0015]优选地,深度学习任务初始化时,在计算节点的内存中还初始化缓存管理结构空间,用于管理洗牌序列、预取链表以及预取元数据链表;在深度学习任务结束时,还释放缓存管理结构空间。
[0016]为实现上述专利技术目的,实施例还提供了一种适用于分布式深度学习训练预取缓存管理的装置,包括计算机存储器、计算机处理器以及存储在所述计算机存储器中并可在所述计算机处理器上执行的计算机程序,所述计算机处理器执行所述计算机程序时实现上述适用于分布式深度学习训练预取缓存管理的方法。
[0017]与现有技术相比,本专利技术具有的有益效果至少包括:(1)利用深度学习训练可提前生成洗牌序列的特点,根据提前生成的洗牌序列对样本数据进行预取,使得训练时可直接从预取缓存空间中获取样本数据,减少了深度学习训练过程中的I/O耗时,提高了训练效率;(2)采用批处理的方式对样本数据进行预取,即一次获取一批缓存在同一存储节点上的样本数据,减少了计算节点与存储节点之间的通信次数,提高通信效率;(3)利用深度学习训练在一个轮次训练过程中不重本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种适用于分布式深度学习训练预取缓存管理的方法,其特征在于,包括以下步骤:深度学习任务初始化时,在计算节点的内存中初始化预取缓存空间;在深度学习任务每个轮次的训练开始时,为每个轮次生成样本数据的洗牌序列,并按照洗牌序列为预取缓存构建顺序一致的缓存索引,按照索引对应样本数据所在的分布式存储的存储节点把缓存索引划分成不同的预取链表,每个存储节点对应一个预取链表,且预取链表中索引按照洗牌序列中顺序排列;在深度学习任务训练时,按照缓存索引顺序从预取缓存空间中获取样本数据,若未命中对应样本数据,则根据预取链表从存储节点获取一批样本数据并存入预取缓存空间中;若预取缓存空间的已用容量达到指定阈值,则对预取缓存空间中样本数据进行缓存淘汰;在深度学习任务结束时,释放预取缓存空间。2.根据权利要求1所述的适用于分布式深度学习训练预取缓存管理的方法,其特征在于,所述按照索引对应的样本数据所在的分布式存储的存储节点把缓存索引划分成不同的预取链表,包括:采用M=mod(i,N)计算缓存索引对应的样本数据所在的存储节点,其中i表示缓存索引,N表示存储节点总数,mod(i,N)为取余函数,表示i除以N得到的余数,该余数作为存储节点的序号M;依据存储节点把缓存索引划分成存储节点对应的预取链表。3.根据权利要求1所述的适用于分布式深度学习训练预取缓存管理的方法,其特征在于,所述根据预取链表从分布式存储获取一批样本数据并存入预取缓存空间,包括:将当前缓存索引以及其在预取链表中随后的k

1个缓存索引组合成一个请求,并发送至当前缓存索引对应的存储节点获取样本数据;若预取链表中当前缓存索引随后的剩余缓存索引不足k

1,则剩余缓存索引对应的样本数据需要被全部取出,其中,k为设定的预取个数;深度学习任务的计算节点接收存储节点返回的样本数据,其中,请求的当前样本数据返回给深度学习训练框架,其余的样本数据依次存入预取缓存空间。4.根据权利要求1所述的适用于分布式深度学习训练预取缓存管理的方法,其特征在于,所述方法还包括:为预取缓存的样本数据构建预取元数据链...

【专利技术属性】
技术研发人员:孔丽娟梅飞刘鹏
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1