【技术实现步骤摘要】
一种提升分布式缓存跨节点访问性能的方法及装置、介质
[0001]本专利技术涉及人工智能领域,尤其涉及一种提升分布式缓存跨节点访问性能的方法及装置、介质。
技术介绍
[0002]深度学习训练使用随机梯度下降算法,一般需要进行若干个轮次。每个轮次依据一个预先生成的随机序列遍历整个数据集样本,遍历分为多个步骤,每个步骤遍历一批样本。在分布式训练中,使用多个计算节点,对每一个步骤中的一批样本,将其均分到各个计算节点,各计算节点分配到的样本称为本地批,各计算节点对本地批样本特征根据训练模型进行计算并更新参数,然后再互相进行同步,完成一个训练步骤。计算节点共享一个基于并行文件系统的存储系统,称为共享存储,对分配的本地批样本,各计算节点从共享存储读取样本数据进行训练。
[0003]目前,深度学习训练需要的数据集越来越庞大,同时计算节点可以扩展到几百或几千个。节点数增多有助于减少计算过程耗时,但是由于共享存储带宽有上限,当节点数增多到一定数量时,从共享存储读取数据成为制约训练性能的瓶颈。为解决这个瓶颈问题,计算节点在本地配备了高速存储器比如SSD,作为本地缓存,在训练时先将数据从共享存储加载到本地缓存,后续的轮次训练均从本地缓存读取数据。然而,由于单个节点缓存无法容纳整个数据集,因此数据集以分片的方式分散存储在各个节点的缓存,形成一个分布式缓存系统,每个节点缓存保存整体数据集的一部分。在训练的时候,当需要的数据不在本节点缓存时,就从其他节点获取。然而,当节点数增多时,频繁的的跨节点访问带来的开销又成为新的需要解决的问题。r/>[0004]当前已有的对跨节点开销的解决方案是根据本地缓存的内容,对随机序列进行重排,以尽量使用本地缓存已有的数据进行训练。这种有目的的重排提升了本地缓存命中率,减少了跨节点访问,但是由于改变了训练序列的随机性,会影响训练结果的准确度。
技术实现思路
[0005]本专利技术的目的在于针对现有技术分布式缓存跨节点访问开销大的问题,提供一种提升分布式缓存跨节点访问性能的方法及装置、介质。
[0006]本专利技术的目的是通过以下技术方案来实现的:本专利技术实施例第一方面提供了一种提升分布式缓存跨节点访问性能的方法,包括以下步骤:(1)将数据集从共享存储系统加载到各计算节点的本地缓存,每个计算节点保存所述数据集的一部分,所有计算节点共同保存了所述数据集的全部数据样本,将所述数据样本按照顺序进行编号,将所述计算节点按照顺序进行编号;(2)根据随机序列进行轮次训练,一个轮次训练分为若干步骤,每个步骤训练一个批次的样本,批次样本会分发到各本地节点,称为本地批样本;(3)计算节点A对分发到本节点的所述本地批样本进行训练,若所述本地批样本中
的数据未在本计算节点缓存,而在另一个计算节点B缓存,则所述计算节点A通过网络从所述计算节点B中获取目标样本;(4)所述计算节点A从所述计算节点B获取所述本地批样本的目标样本时,同时根据映射方法查看所述计算节点B中是否存在所述计算节点A在当前步骤或后续步骤所需的样本,若存在,将这些样本与目标样本的编号组成一个请求发送给所述计算节点B,所述计算节点B收到请求后将对应的数据组成一个结果返回给所述计算节点A,所述计算节点A将除当前步骤所需样本外的其他样本数据暂存在本地的暂存区;若不存在,则只获取所述目标样本;(5)后续批次训练中,所述计算节点需要预取来的样本时,通过索引表进行访问,直接从所述暂存区读取,从所述暂存区读取样本后,将样本从所述暂存区删除,以将对应的存储空间释放。
[0007]进一步地,所述映射方法具体为:根据所述数据样本的编号映射到所述数据样本所在的计算节点。
[0008]进一步地,所述索引表用于记录预取来的样本在所述暂存区中的位置,还用于指示样本数据是否暂存在所述暂存区。
[0009]进一步地,所述计算节点A通过批量访问接口将需要预取的样本与目标样本的编号组成一个请求发送给所述计算节点B,所述批量访问接口将多个访问请求组成一个访问请求。
[0010]进一步地,所述方法包括并行请求方法,具体为:所述计算节点对当前步骤中需要预取的样本按照所述计算节点进行归属,对不同计算节点的样本批量预取并行执行。
[0011]进一步地,所述计算节点在跨节点访问时根据系统资源情况决定读取当前或后续的步骤数量,将该数量称为预取深度,所述预取深度大于等于0,小于等于轮次训练的总步骤数。
[0012]进一步地,所述预取深度根据训练环境情况配置,所述计算节点预取样本时向前查看的步骤不超过所述预取深度。
[0013]进一步地,所述计算节点在批次训练的步骤中,根据所述计算节点本地的可用存储空间及各个目标节点上的最大样本的尺寸,调整批量预取的数量。
[0014]本专利技术实施例第二方面提供了一种提升分布式缓存跨节点访问性能的装置,包括一个或多个处理器,用于实现上述的提升分布式缓存跨节点访问性能的方法。
[0015]本专利技术实施例第三方面提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现上述的提升分布式缓存跨节点访问性能的方法。
[0016]本专利技术的有益效果是,本专利技术通过使用分布式缓存进行深度学习训练,能够将多个跨节点访问通过一次跨节点访问完成,减少跨节点访问开销对深度学习训练效率造成的影响;并且能够通过训练环境情况配置预取深度,避免预取过深造成的副作用;同时能够根据系统资源调节预取数量,避免预取过来的数据无处存放。另外,本专利技术提供的预取系统,在一个训练步骤中需要对多个节点跨节点访问时,能够通过并行请求执行多个跨节点访问请求,进一步减少跨节点访问带来的开销,有助于提升跨节点访问的性能。
附图说明
[0017]图1展示数据集从共享存储加载到计算节点本地SSD缓存的示意图,加载完成后各节点各自缓存了数据集的一部分;图2展示了一个轮次的随机序列分配到本地批后的命中状态,灰色背景代表在本地命中的样本;图3展示了对第一个批次进行训练时跨节点访问示例,以及跨节点时可进行预取的数据,其中,节点B和节点C处的粗线条表示一次读取超过一个样本;图4展示了节点并行访问的示例;图5展示了跨节点批量访问接口的实现形式;图6展示了暂存区索引示意图;图7为本专利技术提升分布式缓存跨节点访问性能的装置的一种结构示意图。
具体实施方式
[0018]下面根据图1
‑
图7详细说明本专利技术。
[0019]本专利技术提出了一种提升深度学习训练分布式缓存跨节点访问性能的方法,具体包括以下步骤:(1)将数据集从共享存储系统加载到各计算节点的本地缓存,每个计算节点保存数据集的一部分,所有计算节点共同保存了数据集的全部数据样本,将数据样本按照顺序进行编号,将计算节点按照顺序进行编号。
[0020]可选地,各计算节点基于MPI通信进行分布式训练,可根据MPI分配的rank号作为各计算节点的编号。
[0021]进一步可选地,对数据样本进行编号,然后根据特定的哈希算法决定一个数据样本应该加载到哪个rank节点上,如此各计本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种提升分布式缓存跨节点访问性能的方法,其特征在于,包括以下步骤:(1)将数据集从共享存储系统加载到各计算节点的本地缓存,每个计算节点保存所述数据集的一部分,所有计算节点共同保存了所述数据集的全部数据样本,将所述数据样本按照顺序进行编号,将所述计算节点按照顺序进行编号;(2)根据随机序列进行轮次训练,一个轮次训练分为若干步骤,每个步骤训练一个批次的样本,批次样本会分发到各本地节点,称为本地批样本;(3)计算节点A对分发到本节点的所述本地批样本进行训练,若所述本地批样本中的数据未在本计算节点缓存,而在另一个计算节点B缓存,则所述计算节点A通过网络从所述计算节点B中获取目标样本;(4)所述计算节点A从所述计算节点B获取所述本地批样本的目标样本时,同时根据映射方法查看所述计算节点B中是否存在所述计算节点A在当前步骤或后续步骤所需的样本,若存在,将这些样本与目标样本的编号组成一个请求发送给所述计算节点B,所述计算节点B收到请求后将对应的数据组成一个结果返回给所述计算节点A,所述计算节点A将除当前步骤所需样本外的其他样本数据暂存在本地的暂存区;若不存在,则只获取所述目标样本;(5)后续批次训练中,所述计算节点需要预取来的样本时,通过索引表进行访问,直接从所述暂存区读取,从所述暂存区读取样本后,将样本从所述暂存区删除,以将对应的存储空间释放。2.根据权利要求1所述的提升分布式缓存跨节点访问性能的方法,其特征在于,所述映射方法具体为:根据所述数据样本的编号映射到所述数据样本所在的计算节点。3.根据权利要求1所述的提升分布式缓存跨节点访问性能的方法,其特征在于,所述索引表用于记录预取来的样本在所述暂存区中的位置,...
【专利技术属性】
技术研发人员:梅飞,陈起,刘鹏,刘鑫,
申请(专利权)人:无锡江南计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。