CN116501696B - 适用于分布式深度学习训练预取缓存管理的方法和装置 - Google Patents
适用于分布式深度学习训练预取缓存管理的方法和装置 Download PDFInfo
- Publication number
- CN116501696B CN116501696B CN202310790835.0A CN202310790835A CN116501696B CN 116501696 B CN116501696 B CN 116501696B CN 202310790835 A CN202310790835 A CN 202310790835A CN 116501696 B CN116501696 B CN 116501696B
- Authority
- CN
- China
- Prior art keywords
- cache
- sample data
- deep learning
- prefetch
- space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 84
- 238000012549 training Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000003379 elimination reaction Methods 0.000 claims abstract description 48
- 230000008030 elimination Effects 0.000 claims abstract description 45
- 238000004590 computer program Methods 0.000 claims description 6
- 238000005070 sampling Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 9
- 238000004364 calculation method Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- VQLYBLABXAHUDN-UHFFFAOYSA-N bis(4-fluorophenyl)-methyl-(1,2,4-triazol-1-ylmethyl)silane;methyl n-(1h-benzimidazol-2-yl)carbamate Chemical compound C1=CC=C2NC(NC(=O)OC)=NC2=C1.C=1C=C(F)C=CC=1[Si](C=1C=CC(F)=CC=1)(C)CN1C=NC=N1 VQLYBLABXAHUDN-UHFFFAOYSA-N 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种适用于分布式深度学习训练预取缓存管理的方法和装置,包括:深度学习任务初始化时,初始化预取缓存空间;在深度学习训练任务每个轮次训练开始前,生成轮次的洗牌序列,按照该洗牌序列构建缓存索引;在深度学习训练任务进行训练时,根据缓存索引,从预取缓存空间中获取数据,若缓存未命中,则以存储节点为划分依据,到分布式存储中进行批量预取;在预取缓存空间已用容量达到指定阈值时启动缓存淘汰,淘汰掉缓存命中的数据。该方法和装置以存储节点为划分依据进行批量预取,减少了节点之间的通信次数,提高了通信效率,同时,对缓存命中的数据进行淘汰,使得缓存中都是即将命中的数据,提高了缓存命中率。
Description
技术领域
本发明属于深度学习技术领域,更具体地,涉及一种适用于分布式深度学习训练预取缓存管理的方法和装置。
背景技术
深度学习广泛应用于计算机视觉、语音识别、气候科学等领域,借助于高性能计算环境极高的计算性能、存储能力和节点间通信能力,深度学习的规模可以进一步扩大,但是,在高性能计算环境中如何高效运行和扩展深度学习应用仍是一个巨大的挑战。目前,主要有三个因素影响深度学习训练:1)I/O性能,用于给计算节点提供训练样本以标签;2)执行深度学习训练的计算能力;3)通信性能,进行节点之间同步。
在高性能计算机系统上,通常使用GPFS和Lustre等并行文件系统存储超大规模的深度学习训练数据集,深度学习训练的数据集由大量小文件组成,例如,ImageNet-1K数据集包含1000个类别的128万个文件;Images数据集包含大约900万张图像。而深度学习任务在训练过程中会进行多个轮次的训练,每个轮次都以随机的顺序读取整个数据集,但是,高性能计算机的I/O子系统没有考虑深度学习框架这种读取大规模数据的方式,因此容易被大并发的小文件随机访问所饱和。因此,如果高性能计算机的I/O软件栈不能满足深度学习应用大规模运行的需求,需要让深度学习应用等待从共享存储PFS读取数据,那么所有的计算能力无法充分利用。
目前针对以上问题的解决方案分为两种,一种是把深度学习训练过程流水线化,另外一种是利用计算节点的本地存储进行缓存。其中,把深度学习训练过程流水线化的方案利用了深度学习训练不同阶段之间可重合的特性,主要是计算与I/O可并行运行,但是随着计算能力的不断提高,该部分的并行化优化效果有限,瓶颈仍在于I/O。对于利用计算节点的本地存储进行缓存的方案,由于深度学习训练的每个轮次以随机的序列对数据集进行遍历,并且在一个轮次过程中不重复访问,这使得传统缓存策略不再适用。
常用的缓存策略有两种,一种是固定缓存一部分数据,不进行缓存淘汰,因此,缓存命中率取决于缓存容量与数据集大小之比。由于深度学习训练的数据集往往非常庞大,因此缓存的效果非常有限。另一种策略把缓存与洗牌相结合,每个计算节点缓存数据集的一部分,根据计算节点本地存储的数据进行洗牌,这种方式会导致训练精度下降,或者对计算节点间本地存储的数据进行交换后进行本地洗牌,这种方式增加了节点间通信的开销。
发明内容
鉴于上述,本发明的目的是提供一种适用于分布式深度学习训练预取缓存管理的方法和装置,减少对分布式存储系统的访问以及增加内存缓存的命中率,提高训练过程中的I/O效率,提升训练速度。
为实现上述发明目的,本发明实施例提供的一种适用于分布式深度学习训练预取缓存管理的方法,包括以下步骤:
深度学习任务初始化时,在计算节点的内存中初始化预取缓存空间;
在深度学习任务每个轮次的训练开始时,为每个轮次生成样本数据的洗牌序列,并按照洗牌序列为预取缓存构建顺序一致的缓存索引,按照索引对应样本数据所在的分布式存储的存储节点把缓存索引划分成不同的预取链表,每个存储节点对应一个预取链表,且预取链表中索引按照洗牌序列中顺序排列;
在深度学习任务训练时,按照缓存索引顺序从预取缓存空间中获取样本数据,若未命中对应样本数据,则根据预取链表从存储节点获取一批样本数据并存入预取缓存空间中;
若预取缓存空间的已用容量达到指定阈值,则对预取缓存空间中样本数据进行缓存淘汰;
在深度学习任务结束时,释放预取缓存空间。
优选地,所述按照索引对应的样本数据所在的分布式存储的存储节点把缓存索引划分成不同的预取链表,包括:
采用M=mod(i,N)计算缓存索引对应的样本数据所在的存储节点,其中i表示缓存索引,N表示存储节点总数,mod(i,N)为取余函数,表示i除以N得到的余数,该余数作为存储节点的序号M;
依据存储节点把缓存索引划分成存储节点对应的预取链表。
优选地,所述根据预取链表从分布式存储获取一批样本数据并存入预取缓存空间,包括:
将当前缓存索引以及其在预取链表中随后的k-1个缓存索引组合成一个请求,并发送至当前缓存索引对应的存储节点获取样本数据;
若预取链表中当前缓存索引随后的剩余缓存索引不足k-1,则剩余缓存索引对应的样本数据需要被全部取出,其中,k为设定的预取个数;
深度学习任务的计算节点接收存储节点返回的样本数据,其中,请求的当前样本数据返回给深度学习训练框架,其余的样本数据依次存入预取缓存空间。
优选地,所述方法还包括:为预取缓存的样本数据构建预取元数据链表;
在预取缓存时,将样本数据的元数据信息存入预取元数据链表,其中,元数据信息包括指向预取链表中对应缓存索引的指针、样本数据在预取缓存空间中的起始位置、样本数据的长度、缓存命中标记。
优选地,所述若预取缓存空间的已用容量达到指定阈值,则对预取缓存空间中样本数据进行缓存淘汰,包括:
当预取样本数据存入预取缓存空间时,进行已用容量判断,当已用容量达到指定阈值时,则把预取缓存空间起始位置至当前位置的空间设为淘汰区,对淘汰区中样本数据进行缓存淘汰。
优选地,对淘汰区中样本数据进行缓存淘汰中,从预取元数据链表中读取缓存数据的元数据信息,若样本数据已被命中,则进行淘汰,若连续的几个样本数据均被命中,则一起淘汰,直至遇到未命中的样本数据为止。
优选地,所述方法还包括:淘汰区中样本数据淘汰后,对于淘汰样本数据后面的尚未命中的样本数据要向预取缓存空间的开始位置进行搬移,若连续的几个样本数据均未命中,则一起进行搬移。
优选地,所述方法还包括:在缓存淘汰过程中,若预取缓存空间仍有空闲空间,则在淘汰区后面继续存入样本数据,并将淘汰区后面新存入的样本数据进行搬移。
优选地,深度学习任务初始化时,在计算节点的内存中还初始化缓存管理结构空间,用于管理洗牌序列、预取链表以及预取元数据链表;
在深度学习任务结束时,还释放缓存管理结构空间。
为实现上述发明目的,实施例还提供了一种适用于分布式深度学习训练预取缓存管理的装置,包括计算机存储器、计算机处理器以及存储在所述计算机存储器中并可在所述计算机处理器上执行的计算机程序,所述计算机处理器执行所述计算机程序时实现上述适用于分布式深度学习训练预取缓存管理的方法。
与现有技术相比,本发明具有的有益效果至少包括:
(1)利用深度学习训练可提前生成洗牌序列的特点,根据提前生成的洗牌序列对样本数据进行预取,使得训练时可直接从预取缓存空间中获取样本数据,减少了深度学习训练过程中的I/O耗时,提高了训练效率;
(2)采用批处理的方式对样本数据进行预取,即一次获取一批缓存在同一存储节点上的样本数据,减少了计算节点与存储节点之间的通信次数,提高通信效率;
(3)利用深度学习训练在一个轮次训练过程中不重复获取样本数据的特点进行预取缓存空间中样本数据的淘汰,淘汰掉已缓存命中的样本数据,保留未命中样本数据,提高缓存利用率及命中率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是实施例提供的适用于分布式深度学习训练预取缓存管理的方法的流程图;
图2是实施例提供的数据集载入分布式缓存的示意图;
图3是实施例提供的预取链表表示意图;
图4是实施例提供的预取缓存示意图;
图5是实施例提供的淘汰过程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
本发明的发明构思为:针对现有高性能计算系统存储方法在深度学习应用场景的缺陷,本发明实施例提出一种适用于分布式深度学习训练预取缓存管理的方法和装置,利用深度学习任务中计算节点的内存做预取缓存空间,在训练过程中以一个轮次为周期对属于同一存储节点的数据进行预取,并通过缓存已用容量控制触发缓存淘汰,包括淘汰已命中的样本数据以及搬移未命中的样本数据,其目的在于,减少对分布式存储系统的访问以及增加内存缓存的命中率,提高训练过程中的I/O效率,提升训练速度。
图1是实施例提供的适用于分布式深度学习训练预取缓存管理的方法的流程图。如图1所示,实施例提供的一种用于分布式深度学习训练预取缓存管理的方法,包括以下步骤:
S1,深度学习任务初始化时,在计算节点的内存中初始化预取缓存空间。
深度学习任务由多个计算节点完成,每个计算节点基于样本数据进行计算,实现深度学习。在初始化深度学习任务时,分配参与深度学习的计算节点以及样本数据。
在初始化深度学习时,把共享存储中样本数据集载入到分布式存储中,还进行预取缓存空间的初始化,包括在计算节点的内存中初始化预取缓存空间以及缓存管理结构空间。其中,共享存储中样本数据集载入到的存储节点的计算公式如下:
M=mod(i,N)
其中,i表示样本数据的缓存索引,N表示存储节点总数,mod(i,N)为取余函数,表示i除以N得到的余数,该余数作为存储节点的序号M。针对包含16个样本的样本数据集,样本序号分别为0、1、2……15,分布存储情况如图2所示,存储节点有3个,序号分别为0、1、2,其中,样本0、3、6、9、12、15位于存储节点0,样本1、4、7、10、13位于存储节点1,样本2、5、8、11、14位于存储节点2。
其中预取缓存空间用于存储预取缓存的样本数据,缓存管理结构空间用于管理洗牌序列、预取链表以及预取元数据链表。
S2,在深度学习任务每个轮次的训练开始时,为每个轮次生成样本数据的洗牌序列,并按照洗牌序列为预取缓存构建顺序一致的缓存索引,按照索引对应样本数据所在的分布式存储的存储节点把缓存索引划分成不同的预取链表。
实施例中,在深度学习任务每个轮次的训练开始时,为每个轮次生成样本数据的洗牌序列。假设对该样本数据集生成的洗牌序列为3、7、11、0、8、12、15、1、2、6、13、4、14、5、10、9,如图3所示。
实施例中,在获得洗牌序列后,根据洗牌序列为预取缓存构建顺序一致的缓存索引,并计算缓存索引对应样本数据所在的存储节点,把缓存索引按照存储节点划分成N个预取链表,N与组成分布式存储的存储节点总量一致,每个预取链表按照洗牌序列中的顺序把属于同一存储节点的索引连接在一起。
在获得存储节点序号后,把缓存索引划分成存储节点对应的预取链表,每个存储节点对应一个预取链表,且预取链表中索引按照洗牌序列中顺序排列。如图3所示,存储节点个数为3,即N为3,假设要在计算节点0获取全部样本数据,那么,对应存储节点0的缓存索引包括0、3、6、9、12、15;对应存储节点1的缓存索引包括1、4、7、10、13;对应存储节点2的缓存索引包括2、5、8、11、14。然后,将每个存储节点分到的缓存索引按照其在洗牌序列中顺序排序,则预取链表得到存储节点0的预取链表为3、0、12、15、6、9,存储节点1的预取链表为7、1、13、4、10,存储节点2的预取链表为11、8、2、14、5。
S3,在深度学习任务训练时,按照缓存索引顺序从预取缓存空间中获取样本数据,若未命中对应样本数据,则根据预取链表从存储节点获取一批样本数据并存入预取缓存空间中。
实施例中,在深度学习任务训练时,根据预取缓存的缓存索引,按顺序在预取缓存空间中获取对应样本数据进行训练,若未命中对应样本数据,则需要进行预取缓存。
具体地,预取缓存过程包括:当前缓存索引以及其在预取链表中随后的k-1个缓存索引组合成一个请求,并发送至当前缓存索引对应的存储节点获取样本数据;若预取链表中当前缓存索引随后的剩余缓存索引不足k-1,则剩余缓存索引对应的样本数据需要被全部取出,其中,k为设定的预取个数,当预设个数k设为3时,在训练样本数据3时,此时预取缓存空间中没有样本数据3,需要进行预取,在计算节点0的预取链表中查找缓存索引3以及其后的2个样本序号组成一个批次,即缓存索引3、0、12对应的样本数据为一批进行预取;深度学习任务的计算节点接收存储节点返回的样本数据,其中,请求的当前样本数据返回给深度学习训练框架,其余的样本数据依次存入预取缓存空间。
实施例中,还为预取缓存空间的样本数据构建预取元数据链表;在预取缓存时,将样本数据的元数据信息存入预取元数据链表,其中,元数据信息包括指向预取链表中对应缓存索引的指针、样本数据在预取缓存空间中的起始位置、样本数据的长度、缓存命中标记。如图4所示,把0、12对应的样本数据存入预取缓存空间中,0、12对应的预取元数据信息存入预取元数据链表中,同样地,在训练到样本数据7需要进行预取缓存时,把1、13对应的样本数据存入预取缓存空间中,1、13对应的预取元数据信息存入预取元数据链表中。
S3中,利用深度学习训练可提前生成洗牌序列的特点,根据提前生成的洗牌序列对样本数据进行预取缓存,使得训练时可直接从内存获取样本数据,减少了深度学习训练过程中的I/O耗时,提高了训练效率;并且,采用批处理的方式对样本数据进行预取,即一次获取一批位于同一存储节点上即将进行训练的样本数据,减少了计算节点与存储节点之间的通信次数,提高通信效率。
S4,若预取缓存空间的已用容量达到指定阈值,则对预取缓存空间中样本数据进行缓存淘汰。
实施例中,当预取样本数据存入预取缓存空间时,进行已用容量判断,当已用容量达到指定阈值时,则把预取缓存空间起始位置至当前位置的空间设为淘汰区,启动后台进程对淘汰区中样本数据进行缓存淘汰。假设训练到样本数据11时,即存入样本数据2之后,已用容量超过总容量的指定阈值,此时启动缓存淘汰,但未有缓存命中的样本数据可供淘汰时,等待下一次插入操作时再触发缓存淘汰,例如训练到样本数据15时,再次触发缓存淘汰。
实施例中,对淘汰区中样本数据进行缓存淘汰中,从预取元数据链表中读取缓存数据的元数据信息,若样本数据已被命中,则进行淘汰,若连续的几个样本数据均被命中,则一起淘汰,直至遇到未命中的样本数据为止。如图5所示,当样本数据0至样本数据2所在的空间区域为淘汰区,此时样本数据0、样本数据12均已缓存命中且地址连续,因此,样本数据0、样本数据12一起淘汰,淘汰的同时删除预取元数据链表中对应的元数据信息。
实施例中,淘汰区中样本数据淘汰后,对于淘汰样本数据后面的尚未命中的样本数据要向预取缓存空间的开始位置进行搬移,若连续的几个样本数据均未命中,则一起进行搬移。如图5所示,样本数据0、样本数据12淘汰后,对未命中样本数据1、样本数据13进行搬移,搬移时把样本数据1、样本数据13作为一个整体向预取缓存空间的开始位置进行搬移,搬移后更新预取元数据中的信息。
实施例中,重复上述命中样本数据的缓存淘汰和未命中数据的搬移过程,直到预取元数据链表遍历完成,此时完成预取缓存的淘汰。在缓存淘汰过程中,若预取缓存空间仍有空闲空间,则在淘汰区后面继续存入样本数据。如图5所示,对样本数据8单独进行淘汰,淘汰后对样本数据2进行搬移,在淘汰过程中,由于预取缓存空间此时仍有空间,在淘汰区后面可继续存入样本数据6、9。在淘汰过程中,还将淘汰区后面新存入的样本数据进行搬移,如图5所示,例如将样本数据6、9进行搬移。
S4中,利用深度学习训练在一个轮次训练过程中不重复获取样本数据的特点进行预取缓存淘汰,淘汰掉已缓存命中的样本数据,保留未命中样本数据,提高缓存利用率及命中率。
S5,在深度学习任务结束时,释放预取缓存空间。
实施例中,在深度学习任务结束时,从计算节点的内存中释放预取缓存空间、缓存管理结构空间以及分布式存储节点空间。
基于同样的发明构思,实施例还提供了一种适用于分布式深度学习训练预取缓存管理的装置,包括计算机存储器、计算机处理器以及存储在所述计算机存储器中并可在所述计算机处理器上执行的计算机程序,所述计算机处理器执行所述计算机程序时实现上述适用于分布式深度学习训练预取缓存管理的方法,包括以下步骤:
S1、深度学习任务初始化时,在计算节点的内存中初始化预取缓存空间;
S2,在深度学习任务每个轮次的训练开始时,为每个轮次生成样本数据的洗牌序列,并按照洗牌序列为预取缓存构建顺序一致的缓存索引,按照索引对应样本数据分布式存储的存储节点把缓存索引划分成不同的预取链表;
S3,在深度学习任务训练时,按照缓存索引顺序从预取缓存空间中获取样本数据,若未命中对应样本数据,则根据预取链表从存储节点获取一批样本数据并存入预取缓存空间中;
S4,若预取缓存空间的已用容量达到指定阈值,则对预取缓存空间中样本数据进行缓存淘汰;
S5,在深度学习任务结束时,释放预取缓存空间。
实施例中,计算机存储器可以为在近端的易失性存储器,如RAM,还可以是非易失性存储器,如ROM,FLASH,软盘,机械硬盘等,还可以是远端的存储云。计算机处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA),即可以通过这些计算机处理器实现离线渲染材质参数的获取和离线渲染材质参数转换为PBR实时渲染材质参数的转换步骤。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种适用于分布式深度学习训练预取缓存管理的方法,其特征在于,包括以下步骤:
深度学习任务初始化时,在计算节点的内存中初始化预取缓存空间;
在深度学习任务每个轮次的训练开始时,为每个轮次生成样本数据的洗牌序列,并按照洗牌序列为预取缓存构建顺序一致的缓存索引,按照索引对应样本数据所在的分布式存储的存储节点把缓存索引划分成不同的预取链表,每个存储节点对应一个预取链表,且预取链表中索引按照洗牌序列中顺序排列;其中,按照索引对应的样本数据所在的分布式存储的存储节点把缓存索引划分成不同的预取链表,包括:采用M=mod(i,N)计算缓存索引对应的样本数据所在的存储节点,其中i表示缓存索引,N表示存储节点总数,mod(i,N)为取余函数,表示除以N得到的余数,该余数作为存储节点的序号M;依据存储节点把缓存索引划分成存储节点对应的预取链表;
在深度学习任务训练时,按照缓存索引顺序从预取缓存空间中获取样本数据,若未命中对应样本数据,则根据预取链表从存储节点获取一批样本数据并存入预取缓存空间中;其中,根据预取链表从分布式存储获取一批样本数据并存入预取缓存空间,包括:将当前缓存索引以及其在预取链表中随后的k-1个缓存索引组合成一个请求,并发送至当前缓存索引对应的存储节点获取样本数据;若预取链表中当前缓存索引随后的剩余缓存索引不足k-1,则剩余缓存索引对应的样本数据需要被全部取出,其中,k为设定的预取个数;深度学习任务的计算节点接收存储节点返回的样本数据,其中,请求的当前样本数据返回给深度学习训练框架,其余的样本数据依次存入预取缓存空间;
为预取缓存的样本数据构建预取元数据链表,具体包括:在预取缓存时,将样本数据的元数据信息存入预取元数据链表,其中,元数据信息包括指向预取链表中对应缓存索引的指针、样本数据在预取缓存空间中的起始位置、样本数据的长度、缓存命中标记;
若预取缓存空间的已用容量达到指定阈值,则对预取缓存空间中样本数据进行缓存淘汰;
在深度学习任务结束时,释放预取缓存空间。
2.根据权利要求1所述的适用于分布式深度学习训练预取缓存管理的方法,其特征在于,所述若预取缓存空间的已用容量达到指定阈值,则对预取缓存空间中样本数据进行缓存淘汰,包括:
当预取样本数据存入预取缓存空间时,进行已用容量判断,当已用容量达到指定阈值时,则把预取缓存空间起始位置至当前位置的空间设为淘汰区,对淘汰区中样本数据进行缓存淘汰。
3.根据权利要求2所述的适用于分布式深度学习训练预取缓存管理的方法,其特征在于,对淘汰区中样本数据进行缓存淘汰中,从预取元数据链表中读取缓存数据的元数据信息,若样本数据已被命中,则进行淘汰,若连续的几个样本数据均被命中,则一起淘汰,直至遇到未命中的样本数据为止。
4.根据权利要求3所述的适用于分布式深度学习训练预取缓存管理的方法,其特征在于,所述方法还包括:淘汰区中样本数据淘汰后,对于淘汰样本数据后面的尚未命中的样本数据要向预取缓存空间的开始位置进行搬移,若连续的几个样本数据均未命中,则一起进行搬移。
5.根据权利要求4所述的适用于分布式深度学习训练预取缓存管理的方法,其特征在于,所述方法还包括:在缓存淘汰过程中,若预取缓存空间仍有空闲空间,则在淘汰区后面继续存入样本数据,并将淘汰区后面新存入的样本数据进行搬移。
6.根据权利要求1所述的适用于分布式深度学习训练预取缓存管理的方法,其特征在于,深度学习任务初始化时,在计算节点的内存中还初始化缓存管理结构空间,用于管理洗牌序列、预取链表以及预取元数据链表;
在深度学习任务结束时,还释放缓存管理结构空间。
7.一种适用于分布式深度学习训练预取缓存管理的装置,包括计算机存储器、计算机处理器以及存储在所述计算机存储器中并可在所述计算机处理器上执行的计算机程序,其特征在于,所述计算机处理器执行所述计算机程序时实现权利要求1-6任一项所述的适用于分布式深度学习训练预取缓存管理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310790835.0A CN116501696B (zh) | 2023-06-30 | 2023-06-30 | 适用于分布式深度学习训练预取缓存管理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310790835.0A CN116501696B (zh) | 2023-06-30 | 2023-06-30 | 适用于分布式深度学习训练预取缓存管理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116501696A CN116501696A (zh) | 2023-07-28 |
CN116501696B true CN116501696B (zh) | 2023-09-01 |
Family
ID=87318727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310790835.0A Active CN116501696B (zh) | 2023-06-30 | 2023-06-30 | 适用于分布式深度学习训练预取缓存管理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116501696B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215973B (zh) * | 2023-09-13 | 2024-05-28 | 之江实验室 | 一种缓存数据的处理方法、深度学习训练方法和系统 |
CN118484321B (zh) * | 2024-07-16 | 2024-10-18 | 齐鲁工业大学(山东省科学院) | 一种基于组级学习的缓存学习方法及系统 |
CN118642661A (zh) * | 2024-08-09 | 2024-09-13 | 之江实验室 | 一种分布式深度学习缓存数据存储的方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379849A (zh) * | 2021-01-18 | 2021-02-19 | 之江实验室 | 基于序列可预测的并行深度学习训练数据输入方法和系统 |
CN114817195A (zh) * | 2022-04-08 | 2022-07-29 | 苏州浪潮智能科技有限公司 | 一种分布式存储缓存管理的方法、系统、存储介质及设备 |
CN114968588A (zh) * | 2022-06-07 | 2022-08-30 | 之江实验室 | 一种面向多并发深度学习训练任务的数据缓存方法和装置 |
CN115237825A (zh) * | 2022-05-31 | 2022-10-25 | 杭州祺鲸科技有限公司 | 一种基于机器学习的智能缓存替换方法 |
WO2022222377A1 (zh) * | 2021-04-23 | 2022-10-27 | 华为技术有限公司 | 一种内存控制器、数据读取方法以及内存系统 |
CN115712583A (zh) * | 2023-01-09 | 2023-02-24 | 之江实验室 | 一种提升分布式缓存跨节点访问性能的方法及装置、介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
-
2023
- 2023-06-30 CN CN202310790835.0A patent/CN116501696B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379849A (zh) * | 2021-01-18 | 2021-02-19 | 之江实验室 | 基于序列可预测的并行深度学习训练数据输入方法和系统 |
WO2022222377A1 (zh) * | 2021-04-23 | 2022-10-27 | 华为技术有限公司 | 一种内存控制器、数据读取方法以及内存系统 |
CN114817195A (zh) * | 2022-04-08 | 2022-07-29 | 苏州浪潮智能科技有限公司 | 一种分布式存储缓存管理的方法、系统、存储介质及设备 |
CN115237825A (zh) * | 2022-05-31 | 2022-10-25 | 杭州祺鲸科技有限公司 | 一种基于机器学习的智能缓存替换方法 |
CN114968588A (zh) * | 2022-06-07 | 2022-08-30 | 之江实验室 | 一种面向多并发深度学习训练任务的数据缓存方法和装置 |
CN115712583A (zh) * | 2023-01-09 | 2023-02-24 | 之江实验室 | 一种提升分布式缓存跨节点访问性能的方法及装置、介质 |
Non-Patent Citations (1)
Title |
---|
基于集中控制的Web Cache体系结构;房至一, 黄孟陬, 张震;吉林大学学报(理学版)(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116501696A (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116501696B (zh) | 适用于分布式深度学习训练预取缓存管理的方法和装置 | |
CN110287010B (zh) | 一种面向Spark时间窗口数据分析的缓存数据预取方法 | |
CN104580437A (zh) | 一种云存储客户端及其高效数据访问方法 | |
CN105653684B (zh) | 分布式文件系统的预读方法和装置 | |
CN102542034A (zh) | 一种数据库接口的结果集缓存方法 | |
FR3023030A1 (zh) | ||
CN111324556B (zh) | 用于将预定数目的数据项预取到高速缓存的方法和系统 | |
CN107844380B (zh) | 一种支持指令预取的多核缓存wcet分析方法 | |
CN115712583B (zh) | 一种提升分布式缓存跨节点访问性能的方法及装置、介质 | |
CN103345449B (zh) | 一种面向重复数据删除技术的指纹预取方法及系统 | |
CN110222209A (zh) | 图片存储方法、查询方法、装置及存取系统 | |
US10157346B2 (en) | Parallel Gibbs sampler using butterfly-patterned partial sums | |
JP6394231B2 (ja) | データ配置制御プログラム、データ配置制御装置およびデータ配置制御方法 | |
CN113688113A (zh) | 针对分布式文件系统的元数据预取系统及方法 | |
US11561796B2 (en) | Linked miss-to-miss instruction prefetcher | |
CN113448897A (zh) | 适用于纯用户态远端直接内存访问的数组结构及优化方法 | |
CN111126619B (zh) | 一种机器学习方法与装置 | |
US11281588B2 (en) | Method, apparatus and computer program product for managing I/O operation using prediction model to predict storage area to be accessed | |
CN109189696B (zh) | 一种ssd缓存系统及缓存方法 | |
CN113901007A (zh) | 一种面向ai训练的海量小文件分布式缓存方法 | |
WO2015105043A1 (ja) | 演算システム、データベース管理装置および演算方法 | |
JP5655764B2 (ja) | サンプリング装置、サンプリングプログラム、およびその方法 | |
CN114492776A (zh) | 一种数据处理方法及装置、存储介质 | |
CN110795157B (zh) | 一种使用有限缓存提升无盘工作站开机速度的方法 | |
CN110825652B (zh) | 淘汰磁盘块上的缓存数据的方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |