CN116136838B - 一种深度学习训练数据集快速载入临时缓存方法和装置 - Google Patents
一种深度学习训练数据集快速载入临时缓存方法和装置 Download PDFInfo
- Publication number
- CN116136838B CN116136838B CN202310420302.3A CN202310420302A CN116136838B CN 116136838 B CN116136838 B CN 116136838B CN 202310420302 A CN202310420302 A CN 202310420302A CN 116136838 B CN116136838 B CN 116136838B
- Authority
- CN
- China
- Prior art keywords
- file
- sample
- index
- aggregation
- large file
- 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
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/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/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种深度学习训练数据集快速载入临时缓存方法和装置,该方法用于使用临时缓存对深度学习训练进行加速时,提升数据从远端共享存储载入本地高速存储模块的性能。本发明核心思想是根据共享存储IO特性以及计算节点并发规模,将数据集样本预先组织成合适大小的文件,以解决载入时的元数据热点问题,同时挖掘共享存储的大IO单元优势和高并发访问优势。方法包括三个模块:样本聚合模块,用于在共享存储中把原始样本文件重新组织成适合高速载入的文件;载入模块,用于在训练的初始化阶段把共享存储中经过重新组织的数据集文件加载到临时缓存;样本读取模块,用于在训练过程中从载入临时缓存的数据集中识别并读取训练样本。
Description
技术领域
本发明涉及分布式深度学习领域,尤其涉及一种深度学习训练数据集快速载入临时缓存方法和装置。
背景技术
目前在HPC环境中采用共享存储(PFS)作为后端存储系统。HPC环境由计算节点和共享存储组成,其中计算节点用于执行深度学习任务和发起IO请求;共享存储由存储节点和元数据节点组成,存储节点用于存储深度学习任务所需的数据集,元数据节点用于存放存储节点所存数据的元数据信息,计算节点与共享存储之间通过高速网络连接。在训练过程中,一个完整的样本读流程包含两次读操作,第一步,到元数据节点读取所需样本的元数据信息;第二步,根据读到的元数据信息到存储节点查询样本并返回给计算节点。在分布式深度学习场景下,多个IO密集型应用程序并发操作,共享存储(尤其是元数据节点)对并发请求的处理能力将很快达到饱和,造成性能瓶颈。为了缓解共享存储的性能瓶颈,提高训练数据的访问效率,通常采用分级存储的方式,即在计算节点配备SSD或NVMe SSD等本地高速存储设备作为临时缓存,这就需要在训练之前把数据集从共享存储载入到各计算节点的本地存储中。目前的载入方式是扫描整个数据集,把样本根据序号映射到不同的计算节点,各计算节点的一次传输只载入一个样本,但是针对海量小样本的情况,该种方式有三点不足:1)由于一次只传输一个小样本,那么海量小样本的传输就需要频繁打开/关闭文件句柄,但是文件打开后需要传输的内容较少,因此消耗在建立连接上的时间比传输耗时要多,传输效率不高,导致从共享存储中载入数据集到本地存储的过程较耗时;2)每一次的载入都包含两次读操作,第一次是从元数据节点读元数据,第二次是从存储节点读数据,在海量小样本的载入过程中,会对元数据节点产生高并发读,造成元数据节点的热点问题;3)计算节点需要在内存中记录下样本序号与样本存储位置的元数据信息,如果是海量小样本,就存在海量的位置元数据信息,占用较多内存。
发明内容
本发明的目的在于针对现有技术的不足,提供了一种深度学习训练数据集快速载入临时缓存方法和装置。
本发明的目的是通过以下技术方案来实现的:一种深度学习训练数据集快速载入临时缓存方法,包括以下步骤:
(1)根据共享存储中传输效率最高的文件大小、计算节点的带宽、计算节点的并发度以及样本大小的均值设置分片数;
(2)根据分片数进行样本聚合,聚合成大文件数据集;
(3)设置A个计算节点,顺序扫描所述大文件数据集,获得所有的聚合完成后的大文件;根据聚合完成后的大文件与计算节点之间的映射策略,将聚合完成后的大文件分别载入到各计算节点的本地高速存储模块中;
(4)训练平台根据待测样本的样本序号计算得出相对应的聚合完成后的大文件的序号,并计算得出聚合完成后的大文件所属的计算节点的序号,然后发送读取待测样本的请求到所属的计算节点;
(5)所属的计算节点接收到读取待测样本的请求后,计算得到待测样本在相对应的聚合完成后的大文件中的偏移位置和样本长度,得到待测样本的全部数据并发送给训练平台。
进一步地,所述步骤(1)中,所述分片数为n, n通过下式确定:
;
其中,file_size表示共享存储中传输效率最高的文件大小;bandwidth表示计算节点的带宽;concurrency表示计算节点的并发度;sample_size表示样本大小的均值。
进一步地,所述步骤(2)具体包括以下子步骤:
(2.1)新建一个包含空间大小为metadata的映射关系元数据信息模块的大文件index_ file_j,j=1;所述metadata为,其中,sizeof(uint64)表示任意一个样本序号所占的空间,sizeof(int)1表示任意一个偏移位置所占的空间,sizeof(int)2表示任意一个样本长度所占的空间;
(2.2)按照子目录依次扫描整个样本数据集,根据分片数依次获取n个样本:file jn-n+1 、file jn-n+2 、…、file h 、…、file jn ,其中,;
(2.3)先将获取的第一个样本的序号index_first_j写入到大文件index_file_j的映射关系元数据信息模块中,所占空间为sizeof(uint64);再将获取的最后一个样本的序号index_last_j写入到大文件index_file_j的映射关系元数据信息模块中,所占空间为sizeof(uint64);然后将获取的样本file jn-n+1 、…、样本file h 、…、样本file jn 在大文件index_file_j中的偏移位置和样本长度写入到大文件index_file_j的映射关系元数据信息模块中;不同样本在大文件中的偏移位置所占的空间皆为sizeof(int)1,不同样本的样本长度所占的空间皆为sizeof(int)2;其中,任意一个样本file h 在大文件index_file_j中的偏移位置为offset j,h :;/>;
(2.4)最后在大文件index_file_j的映射关系元数据信息模块后写入样本file jn-n+1 、…、样本file h 、…、样本file jn 的全部数据,得到聚合完成后的大文件(index_ file_j)’;
(2.5)j=j+1,再新建一个包含空间大小为metadata的映射关系元数据信息模块的大文件,重复步骤(2.2)-步骤(2.4),得到聚合完成后的大文件;
(2.6)重复步骤(2.5),直到样本数据集中剩余的样本数为m,,新建最后一个包含空间大小为metadata的映射关系元数据信息模块的大文件,并获取剩余的m个样本,重复步骤(2.2)-步骤(2.4),得到最后一个聚合完成后的大文件;
(2.7)将得到的所有聚合完成后的大文件合并为一个大文件数据集:
。
进一步地,所述步骤(3)具体包括以下子步骤:
(3.1)设置A个计算节点:node 1 、node 2 、…、node a 、…、node A ,其中,;每个计算节点node a 包含相对应的本地高速存储模块M a ;
(3.2)顺序扫描步骤(2)得到的大文件数据集,获得所有的聚合完成后的大文件,得到聚合完成后的大文件的总数量为J;从聚合完成后的大文件(index_file_1)’ 的映射关系元数据信息模块中读取出index_first_ 1和index_last_ 1,计算得出分片数n=index_last_1-index_first_1+1;从聚合完成后的大文件(index_file_J)’的映射关系元数据信息模块中读取出index_last_ J,得到大文件数据集的样本总数D:D=index_last_J;
(3.3)根据聚合完成后的大文件与计算节点之间的映射策略,计算聚合完成后的大文件(index_file_ j)’所属的计算节点的序号;所述聚合完成后的大文件与计算节点之间的映射策略为:
;
其中,d_j表示聚合完成后的大文件(index_file_ j)’所属的计算节点的序号;mod(j,A)表示求余函数,表示聚合完成后的大文件(index_file_ j)’的序号j除以计算节点的总数A得到的余数;
随后将聚合完成后的大文件(index_file_ j)’载入到计算节点node d_j 的本地高速存储模块M d_j 中;
(3.4)重复步骤(3.3),将大文件数据集中的每一个聚合完成后的大文件载入到相对应的计算节点的本地高速存储模块中。
进一步地,所述步骤(4)具体包括以下子步骤:
(4.1)训练平台根据待测样本file b 的样本序号b计算得到相对应的聚合完成后的大文件的序号:
;
其中,f_b表示待测样本file b 相对应的聚合完成后的大文件的序号;quotient(b,n)表示待测样本file b 的样本序号b除以分片数n的整数部分;
(4.2)训练平台根据聚合完成后的大文件与计算节点之间的映射策略,计算得出聚合完成后的大文件(index_file_f_b)’的所属的计算节点的序号d_f_b:
;
(4.3)训练平台发送读取待测样本file b 的请求到所属的计算节点node d_f_b 。
进一步地,所述步骤(5)具体包括以下子步骤:
(5.1)所属的计算节点node d_f_b 接收到读取待测样本file b 的请求后,从本地高速存储模块M d_f_b 中读取待测样本file b 相对应的聚合完成后的大文件(index_file_f_b)’;
(5.2)从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为0处解析长度为sizeof(uint64)的空间,得到聚合完成后的大文件(index_file_f_b)’中第一个样本的序号index_first_f_b;随后计算得到待测样本file b 在聚合完成后的大文件(index_file_f_b)’中的偏移位置在聚合完成后的大文件(index_file_f_b)’中的起始储存位置meta_offset_ b:;从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为meta_offset_b处解析长度为sizeof(int) 1 的空间,得到待测样本file b 在聚合完成后的大文件(index_file_f_b)’中的偏移位置offset b ;再从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为meta_len_b处解析长度为sizeof(int) 2 的空间,得到待测样本file b 的样本长度len b ,其中,meta_len_b=meta_offset_b+sizeof(int) 1 ;
(5.3)从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为offset b 处解析长度为len b 的空间,得到待测样本file b 的全部数据,并发送给训练平台。
本发明还提供一种深度学习训练数据集快速载入临时缓存装置,包括:样本聚合模块、载入模块和样本读取模块;
所述样本聚合模块,用于根据分片数进行样本聚合,聚合成大文件数据集;
所述载入模块,用于设置A个计算节点,顺序扫描所述大文件数据集,获得所有的聚合完成后的大文件;根据聚合完成后的大文件与计算节点之间的映射策略,将聚合完成后的大文件分别载入到各计算节点的本地高速存储模块中;
所述样本读取模块,用于训练平台根据待测样本的样本序号计算得出相对应的聚合完成后的大文件的序号,并计算得出聚合完成后的大文件所属的计算节点的序号,然后发送读取待测样本的请求到所属的计算节点;所属的计算节点接收到读取待测样本的请求后,计算得到待测样本在相对应的聚合完成后的大文件中的偏移位置和样本长度,得到待测样本的全部数据并发送给训练平台。
本发明还提供一种深度学习训练数据集快速载入临时缓存装置,包括一个或多个处理器,用于实现上述深度学习训练数据集快速载入临时缓存方法。
本发明还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现上述深度学习训练数据集快速载入临时缓存方法。
本发明的有益效果是:利用分布式深度学习训练通过样本序号作为索引进行读取的特点,设计了样本根据序号进行顺序聚合的策略,把小的样本聚合成合适大小的文件,以充分利用共享存储的大IO单元和高并发的传输优势;并通过大文件数据集的文件序号把其与计算节点进行映射,使得数据集均衡的分布在各计算节点的临时缓存中;同时,把数据集通过序号进行管理的方式与大文件头部的元数据结构相结合,可通过样本序号计算出对应大文件的序号、所在的计算节点以及样本元数据位置,不需要记录大文件与样本的映射关系以及大文件与计算节点之间的存储关系等元数据信息;通过样本聚合,减少了元数据数量,并且把元数据和数据存储在一起,不需要单独的元数据服务器,避免元数据访问瓶颈,只需要一次读操作就可以获取到对应的样本。
附图说明
图1为一种深度学习训练数据集快速载入临时缓存方法的示意图;
图2为实施例1中聚合完成后的大文件(index_file_j)’的示意图;
图3为实施例2中聚合完成后的大文件(index_file_2)’ 的示意图;
图4为本地读和跨节点读的示意图;
图5为实施例3提供的一种深度学习训练数据集快速载入临时缓存装置的结构示意框图;
图6为实施例4提供的一种深度学习训练数据集快速载入临时缓存装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加明白清楚,结合附图和实施例,对本发明进一步的详细说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均在本发明保护范围。
实施例1:如图1所示,本发明提供了一种深度学习训练数据集快速载入临时缓存方法,包括以下步骤:
(1)根据共享存储中传输效率最高的文件大小、计算节点的带宽、计算节点的并发度以及样本大小的均值设置分片数,即为一个大文件聚合的样本的最大个数。
所述步骤(1)中,所述分片数为n, n通过下式确定:
;
其中,file_size表示共享存储中传输效率最高的文件大小;bandwidth表示计算节点的带宽;concurrency表示计算节点的并发度;sample_size表示样本大小的均值。
步骤(1)的分片数的设置综合考虑了共享存储的IO特征、计算节点的并发度和样本大小的分布情况,通过设置合理的分片数,聚合成大小合适的文件,使得载入时充分利用共享存储大IO单元和高并发的优势,可以满带宽载入。
(2)根据分片数进行样本聚合,聚合成大文件数据集。
所述步骤(2)具体包括以下子步骤:
(2.1)在分布式深度学习训练开始前,新建一个包含空间大小为metadata的映射关系元数据信息模块的大文件index_file_j,j=1;所述metadata为,其中,sizeof(uint64)表示任意一个样本序号所占的空间,sizeof(int)1表示任意一个偏移位置所占的空间,sizeof(int)2表示任意一个样本长度所占的空间。
(2.2)按照子目录依次扫描整个样本数据集,根据分片数依次获取n个样本:file jn-n+1 、file jn-n+2 、…、file h 、…、file jn ,其中,。
可以先对样本数据集中的子目录进行排序,步骤(2)中扫描整个样本数据集时,可以按照子目录的序号依次扫描整个样本数据集。
所述样本数据集包括N个子目录,所述N个子目录为subdir 1 ,subdir 2 ,…,subdir i ,…,subdir N ,其中,i表示子目录的序号,;子目录subdir i 包含mi个样本,子目录subdir i 中的每个样本的序号为:m1+m2+…+ mi-1+1,m1+m2+…+ mi-1+2,…,m1+m2+…+ mi-1+ mi;其中,m1表示子目录subdir 1 中包含m1个样本:file 1 ,file 2 ,…,file m1 ;m2表示子目录subdir 2 中包含m2个样本:file m1+1 ,file m1+2 ,…,file m1+m2 ;mi表示子目录subdir i 中包含mi个样本:file m1+m2+…+ mi-1+1 ,file m1+m2+…+ mi-1+2 ,…,file m1+m2+…+ mi-1+ mi 。
例如,当子目录subdir 1 中a个样本,子目录subdir 1 中每个样本的序号分别为1到a;当子目录subdir 2 中b个样本,序号分别为a+1到a+b。
(2.3)先将获取的第一个样本的序号index_first_j写入到大文件index_file_j的映射关系元数据信息模块中,所占空间为sizeof(uint64),获取的第一个样本的序号为index_first_j:index_first_j=jn-n+1;不同样本的序号所占的空间都一样,皆为sizeof(uint64),此操作只进行一次;再将获取的最后一个样本的序号index_last_j写入到大文件index_file_j的映射关系元数据信息模块中,所占空间为sizeof(uint64),获取的最后一个样本的序号index_last_j:index_last_j=jn;然后将获取的样本file jn-n+1 、…、样本file h 、…、样本file jn 在大文件index_file_j中的偏移位置和样本长度写入到大文件index_file_j的映射关系元数据信息模块中;不同样本在大文件中的偏移位置所占的空间皆为sizeof(int)1,不同样本的样本长度所占的空间皆为sizeof(int)2;其中,任意一个样本file h 在大文件index_file_j中的偏移位置为offset j,h :;。
(2.4)最后在大文件index_file_j的映射关系元数据信息模块后写入样本file jn-n+1 、…、样本file h 、…、样本file jn 的全部数据,得到聚合完成后的大文件(index_ file_j)’。
聚合完成后的大文件(index_file_j)’如图2所示,从储存的起始位置为0处开始,长度为metadata的空间作为映射关系元数据信息模块;图2中,第一行为聚合完成后的大文件(index_ file_j)’的映射关系元数据信息模块,从储存的起始位置为0处起长度为sizeof(uint64)的空间记载了获取的第一个样本的序号:index_first_j;从储存的起始位置为sizeof(uint64)处起长度为sizeof(uint64)的空间记载了获取的最后一个样本的序号:index_last_j。任意一个样本file h 在大文件index_file_j中的偏移位置offset j,h 在大文件index_file_j中的存储的起始位置为;任意一个样本file h 的样本大小len j,h 大文件index_file_j中的存储的起始位置为。
(2.5)j=j+1,再新建一个包含空间大小为metadata的映射关系元数据信息模块的大文件,重复步骤(2.2)-步骤(2.4),得到聚合完成后的大文件;
(2.6)重复步骤(2.5),直到样本数据集中剩余的样本数为m,,新建最后一个包含空间大小为metadata的映射关系元数据信息模块的大文件,并获取剩余的m个样本,重复步骤(2.2)-步骤(2.4),得到最后一个聚合完成后的大文件。
最后一个大文件中获取的第一个样本的序号为jn-n+1,获取的最后一个样本的序号为jn-n+m。
当m<n时,最后一个聚合完成后的大文件中的映射关系元数据信息模块的空间未被填满,但是样本的全部数据仍从储存的起始位置为metadata处开始写入。
(2.7)将得到的所有聚合完成后的大文件合并为一个大文件数据集:
。
在步骤(2)中,利用分布式深度学习训练通过样本序号作为索引进行读取的特点,设计了样本根据序号进行顺序聚合的策略,把小的样本聚合成合适大小的文件,以充分利用共享存储的大IO单元和高并发的传输优势。
对每个样本和大文件使用递增的方式进行编号,样本和大文件的编号互相独立,通过序号实现对文件读、写、存的管理。
不需要单独的元数据服务器存储大文件和样本的映射关系元数据,而是把映射关系元数据存储在大文件中,每个样本的映射关系元数据长度固定,可直接通过样本序号计算得出该样本的元数据位置,避免了元数据访问瓶颈。
(3)设置A个计算节点,顺序扫描所述大文件数据集,获得所有的聚合完成后的大文件;根据聚合完成后的大文件与计算节点之间的映射策略,将聚合完成后的大文件分别载入到各计算节点的本地高速存储模块中。
所述步骤(3)具体包括以下子步骤:
(3.1)在分布式深度学习任务初始化时,设置A个计算节点:node 1 、node 2 、…、node a 、…、node A ,其中,;每个计算节点node a 包含相对应的本地高速存储模块M a 。
(3.2)顺序扫描步骤(2)得到的大文件数据集,获得所有的聚合完成后的大文件,得到聚合完成后的大文件的总数量为J;从聚合完成后的大文件(index_file_1)’ 的映射关系元数据信息模块中读取出index_first_ 1和index_last_ 1,计算得出分片数n=index_last_1-index_first_1+1;从聚合完成后的大文件(index_file_J)’的映射关系元数据信息模块中读取出index_last_ J,得到大文件数据集的样本总数D:D=index_last_J。
(3.3)根据聚合完成后的大文件与计算节点之间的映射策略,计算聚合完成后的大文件(index_file_ j)’所属的计算节点的序号;所述聚合完成后的大文件与计算节点之间的映射策略为:
;
其中,d_j表示聚合完成后的大文件(index_file_ j)’所属的计算节点的序号;mod(j,A)表示求余函数,表示聚合完成后的大文件(index_file_ j)’的序号j除以计算节点的总数A得到的余数;
随后将聚合完成后的大文件(index_file_ j)’载入到计算节点node d_j 的本地高速存储模块M d_j 中。
(3.4)重复步骤(3.3),将大文件数据集中的每一个聚合完成后的大文件载入到相对应的计算节点的本地高速存储模块中。
步骤(3)通过大文件数据集的文件序号把其与计算节点进行映射,使得数据集均衡的分布在各计算节点的本地高速存储模块中。
(4)训练平台根据待测样本的样本序号计算得出相对应的聚合完成后的大文件的序号,并计算得出聚合完成后的大文件所属的计算节点的序号,然后发送读取待测样本的请求到所属的计算节点。
所述步骤(4)具体包括以下子步骤:
(4.1)在分布式深度学习任务训练时,训练平台根据待测样本file b 的样本序号b计算得到相对应的聚合完成后的大文件的序号:
;
其中,b表示待测样本file b 的样本序号;f_b表示待测样本file b 相对应的聚合完成后的大文件的序号;quotient(b,n)表示待测样本file b 的样本序号b除以分片数n的整数部分。
(4.2)训练平台根据聚合完成后的大文件与计算节点之间的映射策略,计算得出聚合完成后的大文件(index_file_f_b)’的所属的计算节点的序号d_f_b:
。
(4.3)训练平台发送读取待测样本file b 的请求到所属的计算节点node d_f_b 。
数据集均衡的缓存在各计算节点的本地高速存储模块中,一个完整的读流程只包含一次读取操作,即本地读或者跨节点读。一个训练平台位于一个计算节点上,若训练平台需要读取的样本存储在相应的计算节点的本地高速存储模块中,即为本地读;若训练平台需要读取的样本存储在其他的计算节点的本地高速存储模块中,即为跨节点读。
在一种深度学习训练数据集快速载入临时缓存方法中,可以多个训练平台同时读取数据。不同的训练平台可以位于同一个计算节点上,也可以分别位于不同的计算节点上。
(5)所属的计算节点接收到读取待测样本的请求后,计算得到待测样本在相对应的聚合完成后的大文件中的偏移位置和样本长度,得到待测样本的全部数据并发送给训练平台。
所述步骤(5)具体包括以下子步骤:
(5.1)所属的计算节点node d_f_b 接收到读取待测样本file b 的请求后,从本地高速存储模块M d_f_b 中读取待测样本file b 相对应的聚合完成后的大文件(index_file_f_b)’。
(5.2)从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为0处解析长度为sizeof(uint64)的空间,得到聚合完成后的大文件(index_file_f_b)’中第一个样本的序号index_first_f_b;随后计算得到待测样本file b 在聚合完成后的大文件(index_file_f_b)’中的偏移位置在聚合完成后的大文件(index_file_f_b)’中的起始储存位置meta_offset_ b:;从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为meta_offset_b处解析长度为sizeof(int) 1 的空间,得到待测样本file b 在聚合完成后的大文件(index_file_f_b)’中的偏移位置offset b ;再从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为meta_len_b处解析长度为sizeof(int) 2 的空间,得到待测样本file b 的样本长度len b ,其中,meta_len_b=meta_offset_b+sizeof(int) 1 。
(5.3)从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为offset b 处解析长度为len b 的空间,得到待测样本file b 的全部数据,并发送给训练平台。
步骤(4)和步骤(5)把数据集通过序号进行管理的方式与大文件头部的元数据结构相结合,可通过待测样本序号计算出对应大文件的序号、所在的计算节点以及样本元数据位置,不需要记录大文件与样本的映射关系以及大文件与计算节点之间的存储关系等元数据信息,减少了元数据数量,并且把元数据和数据存储在一起,不需要单独的元数据服务器,避免元数据访问瓶颈,只需要一次读操作就可以获取到对应的样本。
实施例2:如图3所示,样本数据集dir包括2个子目录subdir 1 和subdir 2 ,其中,子目录subdir 1 包含3个样本:file 1 、file 2 和file 3 ,子目录subdir 2 包含3个样本:file 4 、file 5 和file 6 。
(1)根据共享存储中传输效率最高的文件大小、计算节点的带宽、计算节点的并发度以及样本大小的均值设置分片数,本实施例中,分片数设置为2。
(2)根据分片数进行样本聚合,聚合成大文件数据集。
所述步骤(2)具体包括以下子步骤:
(2.1)在分布式深度学习训练开始前,新建一个包含空间大小为metadata的映射关系元数据信息模块的大文件index_file_j,j=1;所述metadata为字节;其中,任意一个样本序号所占的空间为8字节,任意一个偏移位置所占的空间为4字节,任意一个样本长度所占的空间为4字节。
(2.2)按照子目录依次扫描整个样本数据集dir,根据分片数依次获取n=2个样本:file 1 和file 2 。
(2.3)先将获取的第一个样本的序号index_first_1=1写入到大文件index_file_ 1的映射关系元数据信息模块中,所占空间为sizeof(uint64);不同样本的序号所占的空间都一样,皆为sizeof(uint64),本实施例中,sizeof(uint64)=8字节,此操作只进行一次。将获取的最后一个样本的序号index_last_1=2写入到大文件index_file_1的映射关系元数据信息模块中,所占空间为sizeof(uint64)。然后将获得的样本file 1 以及样本file 2 在大文件index_file_1中的偏移位置和样本长度写入到大文件index_file_j的映射关系元数据信息模块中,即将样本file 1 在大文件index_file_1中的偏移位置offset 1,1和样本长度len 1,1以及样本file 2 在大文件index_file_1中的偏移位置offset 1,2和样本长度len 1,2写入到大文件index_file_j的映射关系元数据信息模块中。不同样本在大文件中的偏移位置所占的空间皆为sizeof(int)1,本实施例中,sizeof(int)1=4字节。不同样本的样本长度所占的空间皆为sizeof(int)2,本实施例中,sizeof(int)2=4字节。
(2.4)最后在大文件index_file_1的映射关系元数据信息模块后依次写入样本file 1 和样本file 2 的全部数据,得到聚合完成后的大文件(index_file_1)’。
(2.5)j=j+1=1+1=2,再新建一个包含空间大小为metadata的映射关系元数据信息模块的大文件index_file_2,重复步骤(2.2)-步骤(2.4),得到聚合完成后的大文件(index_file_2)’。
本实施例中得到的聚合完成后的大文件(index_file_2)’如图6所示,第一行为聚合完成后的大文件(index_file_2)’的映射关系元数据信息模块,从储存的起始位置为0处起长度为8字节的空间记载了获取的第一个样本的序号,即为3;从储存的起始位置为8字节处起长度为8字节的空间记载了获取的最后一个样本的序号,即为4;从储存的起始位置为16字节处起长度为4字节的空间记载了样本file 3 在聚合完成后的大文件(index_file_2)’中的偏移位置offset 2,3,即为32;从储存的起始位置为20字节处起长度为4字节的空间记载了样本file 3 的样本长度len 2,3,即为102400;从储存的起始位置为24字节处起长度为4字节的空间记载了样本file 4 在聚合完成后的大文件(index_file_2)’中的偏移位置offset 2,4,即为102432;从储存的起始位置为28字节处起长度为8字节的空间记载了样本file 4 样本长度len 2,4,即为102400。在聚合完成后的大文件(index_file_2)’的映射关系元数据信息模块后依次写入样本file 3 的全部数据和样本file 4 的全部数据,即在从储存的起始位置为offset 2,3=32处起长度为len 2,3=102400的空间记载了样本file 3 的全部数据,在从储存的起始位置为offset 2,4=102432处起长度为len 2,4=102400的空间记载了样本file 4 的全部数据。
(2.6)j=j+1=2+1=3,再新建一个包含空间大小为metadata的映射关系元数据信息模块的大文件index_file_3,此时样本数据集中剩余的样本数为m=2,满足的条件,大文件index_file_3为最后一个新建的大文件;重复步骤(2.2)-步骤(2.4),得到聚合完成后的大文件(index_file_3)’。
(2.7)将得到的所有聚合完成后的大文件合并为一个大文件数据集:
。
(3)设置A个计算节点,顺序扫描所述大文件数据集,获得所有的聚合完成后的大文件;根据聚合完成后的大文件与计算节点之间的映射策略,将聚合完成后的大文件分别载入到各计算节点的本地高速存储模块中。
所述步骤(3)具体包括以下子步骤:
(3.1)本实施例中,在分布式深度学习任务初始化时,设置A=3个计算节点:node 1 、node 2 、node 3 ;每个计算节点node a 包含相对应的本地高速存储模块M a ,其中,。
(3.2)顺序扫描步骤(2)得到的大文件数据集,获得所有的聚合完成后的大文件:(index_file_1)’、 (index_file_2)’和 (index_file_3)’,得到聚合完成后的大文件的总数量为J=3。
从聚合完成后的大文件(index_file_1)’的映射关系元数据信息模块中读取出index_first_ 1=1和index_last_ 1=2,计算得出分片数n=index_last_1-index_first_1+1=2-1+1=2;从聚合完成后的大文件(index_file_3)’的映射关系元数据信息模块中读取出index_last_3=6,得到大文件数据集的样本总数D=6。
(3.3)根据聚合完成后的大文件与计算节点之间的映射策略,计算聚合完成后的大文件(index_file_ j)’所属的计算节点的序号。本实施例中,可以得到聚合完成后的大文件(index_file_1)’属于计算节点node 2 ,聚合完成后的大文件(index_file_2)’属于计算节点node 1 ,聚合完成后的大文件(index_file_3)’属于计算节点node 3 。
(3.4)随后将聚合完成后的大文件(index_file_1)’ 载入到计算节点node 2 的本地高速存储模块M 2 中;将聚合完成后的大文件(index_file_2)’载入到计算节点node 1 的本地高速存储模块M 1 中;将聚合完成后的大文件(index_file_3)’载入到计算节点node 3 的本地高速存储模块M 3 中。
(4)训练平台根据待测样本的样本序号计算得出相对应的聚合完成后的大文件的序号,并计算得出聚合完成后的大文件所属的计算节点的序号,然后发送读取待测样本的请求到所属的计算节点。
所述步骤(4)具体包括以下子步骤:
(4.1)在分布式深度学习任务训练时,训练平台需要对待测样本file 3 进行训练,只知道样本序号为b=3;然后根据待测样本的样本序号计算得到对应的聚合完成后的大文件的序号为。
(4.2)训练平台根据聚合完成后的大文件与计算节点之间的映射策略,计算得出聚合完成后的大文件(index_file_f_b)’的所属的计算节点的序号为
。
(4.3)训练平台发送读取待测样本file 3 的请求到所属的计算节点node 1 。
当训练平台位于计算节点node 1 上,训练平台发送读取待测样本file 3 的请求到所属的计算节点node 1 ,这属于本地读。当训练平台位于计算节点node 2 上,训练平台发送读取待测样本file 3 的请求到所属的计算节点node 1 ,这属于跨节点读。
图4中的数字表示聚合完成后的大文件的序号。从图4中可以看出,本实施例中,计算节点node 1 的本地高速存储模块M 1 中记载了聚合完成后的大文件(index_file_2)’,计算节点node 2 的本地高速存储模块M 2 中记载了聚合完成后的大文件(index_file_1)’,计算节点node 3 的本地高速存储模块M 3 中记载了聚合完成后的大文件(index_file_3)’。本实施例中,训练平台位于计算节点node 1 上,训练平台读取聚合完成后的大文件(index_file_1)’中的样本,需要从本地高速存储模块M 2 中读取,这属于跨节点读;训练平台读取聚合完成后的大文件(index_file_2)’中的样本,需要从本地高速存储模块M 1 中读取,这属于本地读;训练平台读取聚合完成后的大文件(index_file_3)’中的样本,需要从本地高速存储模块M 3 中读取,这属于跨节点读。
(5)所属的计算节点接收到读取待测样本的请求后,计算得到待测样本在相对应的聚合完成后的大文件中的偏移位置和样本长度,得到待测样本的全部数据并发送给训练平台。
所述步骤(5)具体包括以下子步骤:
(5.1)所属的计算节点node 1 接收到读取待测样本file 3 的请求后,从本地高速存储模块M 1 中读取待测样本file 3 相对应的聚合完成后的大文件(index_file_ 2)’ 。
(5.2)从聚合完成后的大文件(index_file_2)’ 的储存的起始位置为0处解析长度为sizeof(uint64)=8字节的空间,得到聚合完成后的大文件(index_file_2)’中第一个样本的序号为index_first_2=3;随后计算得到待测样本file 3 在聚合完成后的大文件(index_file_2)’中的偏移位置在聚合完成后的大文件(index_file_2)’中的起始储存位置:meta_offset_3=2*sizeof(uint64)+(3-3)*(sizeof(int)1+sizeof(int)2)=2*8+0*(4+4)=16字节;从聚合完成后的大文件(index_file_2)’ 的储存的起始位置为meta_offset_3 =16字节处解析长度为sizeof(int) 1 =4字节的空间,得到待测样本file 3 在聚合完成后的大文件(index_file_2)’中偏移位置,为32字节;再从聚合完成后的大文件(index_file_2)’的储存的起始位置为meta_len_b=meta_offset_b+sizeof(int) 1 =16+4=20字节处解析长度为sizeof(int) 2 =4字节的空间,得到待测样本file 3 的样本长度,为102400字节。
(5.3)从聚合完成后的大文件(index_file_2)’ 的储存的起始位置为32字节处解析长度为102400字节的空间,得到待测样本file 3 的全部数据,并发送给训练平台。
实施例3:本实施例提供一种深度学习训练数据集快速载入临时缓存装置,用于实现前述的度学习训练数据集快速载入临时缓存方法。
如图5所示为本实施例3提供的一种深度学习训练数据集快速载入临时缓存装置的结构示意框图,包括:样本聚合模块、载入模块和样本读取模块。
所述样本聚合模块,用于根据分片数进行样本聚合,聚合成大文件数据集;
所述载入模块,用于设置A个计算节点,顺序扫描所述大文件数据集,获得所有的聚合完成后的大文件;根据聚合完成后的大文件与计算节点之间的映射策略,将聚合完成后的大文件分别载入到各计算节点的本地高速存储模块中;
所述样本读取模块,用于训练平台根据待测样本的样本序号计算得出相对应的聚合完成后的大文件的序号,并计算得出聚合完成后的大文件所属的计算节点的序号,然后发送读取待测样本的请求到所属的计算节点;所属的计算节点接收到读取待测样本的请求后,计算得到待测样本在相对应的聚合完成后的大文件中的偏移位置和样本长度,得到待测样本的全部数据并发送给训练平台。
实施例4:与前述一种深度学习训练数据集快速载入临时缓存方法的实施例1相对应,本发明还提供了一种深度学习训练数据集快速载入临时缓存装置的实施例。
参见图6,本发明实施例提供的一种深度学习训练数据集快速载入临时缓存装置,包括一个或多个处理器,用于实现上述实施例中的一种深度学习训练数据集快速载入临时缓存方法。
本发明一种深度学习训练数据集快速载入临时缓存装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本发明一种深度学习训练数据集快速载入临时缓存装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种深度学习训练数据集快速载入临时缓存方法。所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (7)
1.一种深度学习训练数据集快速载入临时缓存方法,其特征在于,包括以下步骤:
(1)根据共享存储中传输效率最高的文件大小、计算节点的带宽、计算节点的并发度以及样本大小的均值设置分片数;
所述分片数为n,n通过下式确定:
n=min(file_size,bandwidth×0.7÷concurrency)÷sample_size;
其中,file_size表示共享存储中传输效率最高的文件大小;bandwidth表示计算节点的带宽;concurrency表示计算节点的并发度;sample_size表示样本大小的均值;
(2)根据分片数进行样本聚合,聚合成大文件数据集;
所述步骤(2)具体包括以下子步骤:
(2.1)新建一个包含空间大小为metadata的映射关系元数据信息模块的大文件index_file_j,j=1;所述metadata为metadata=2*sizeof(uint64)+n*(sizeof(int)1+sizeof(int)2),其中,sizeof(uint64)表示任意一个样本序号所占的空间,sizeof(int)1表示任意一个偏移位置所占的空间,sizeof(int)2表示任意一个样本长度所占的空间;
(2.2)按照子目录依次扫描整个样本数据集,根据分片数依次获取n个样本:filejn-n+1、filejn-n+2、…、fileh、…、filejn,其中,h={jn-n+1,jn-n+2,…,h,…,jn};
(2.3)先将获取的第一个样本的序号index_first_j写入到大文件index_file_j的映射关系元数据信息模块中,所占空间为sizeof(uint64);再将获取的最后一个样本的序号index_last_j写入到大文件index_file_j的映射关系元数据信息模块中,所占空间为sizeof(uint64);然后将获取的样本filejn-n+1、…、样本fileh、…、样本filejn在大文件index_file_j中的偏移位置和样本长度写入到大文件index_file_j的映射关系元数据信息模块中;不同样本在大文件中的偏移位置所占的空间皆为sizeof(int)1,不同样本的样本长度所占的空间皆为sizeof(int)2;其中,任意一个样本fileh在大文件index_file_j中的偏移位置为offsetj,h:offsetj,h=offsetj,h-1+lenj,h-1;offsetj,jn-n+1=metadata;
(2.4)最后在大文件index_file_j的映射关系元数据信息模块后写入样本filejn-n+1、…、样本fileh、…、样本filejn的全部数据,得到聚合完成后的大文件(index_file_j)’;
(2.5)j=j+1,再新建一个包含空间大小为metadata的映射关系元数据信息模块的大文件,重复步骤(2.2)-步骤(2.4),得到聚合完成后的大文件;
(2.6)重复步骤(2.5),直到样本数据集中剩余的样本数为m,m≤n,新建最后一个包含空间大小为metadata的映射关系元数据信息模块的大文件,并获取剩余的m个样本,重复步骤(2.2)-步骤(2.4),得到最后一个聚合完成后的大文件;
(2.7)将得到的所有聚合完成后的大文件合并为一个大文件数据集:{(index_file_1)′,(index_file_2)′,…,(index_file_j)′,…};
(3)设置A个计算节点,顺序扫描所述大文件数据集,获得所有的聚合完成后的大文件;根据聚合完成后的大文件与计算节点之间的映射策略,将聚合完成后的大文件分别载入到各计算节点的本地高速存储模块中;
(4)训练平台根据待测样本的样本序号计算得出相对应的聚合完成后的大文件的序号,并计算得出聚合完成后的大文件所属的计算节点的序号,然后发送读取待测样本的请求到所属的计算节点;
(5)所属的计算节点接收到读取待测样本的请求后,计算得到待测样本在相对应的聚合完成后的大文件中的偏移位置和样本长度,得到待测样本的全部数据并发送给训练平台。
2.根据权利要求1所述的一种深度学习训练数据集快速载入临时缓存方法,其特征在于,所述步骤(3)具体包括以下子步骤:
(3.1)设置A个计算节点:node1、node2、…、nodea、…、nodeA,其中,a={1,2,…a,…A};每个计算节点nodea包含相对应的本地高速存储模块Ma;
(3.2)顺序扫描步骤(2)得到的大文件数据集,获得所有的聚合完成后的大文件,得到聚合完成后的大文件的总数量为J;从聚合完成后的大文件(index_file_1)’的映射关系元数据信息模块中读取出index_first_1和index_last_1,计算得出分片数n=index_last_1-index_first_1+1;从聚合完成后的大文件(index_file_J)’的映射关系元数据信息模块中读取出index_last_J,得到大文件数据集的样本总数D:D=index_last_J;
(3.3)根据聚合完成后的大文件与计算节点之间的映射策略,计算聚合完成后的大文件(index_file_j)’所属的计算节点的序号;所述聚合完成后的大文件与计算节点之间的映射策略为:
d_j=A-mod(j,A);
其中,d_j表示聚合完成后的大文件(index_file_j)’所属的计算节点的序号;mod(j,A)表示求余函数,表示聚合完成后的大文件(index_file_j)’的序号j除以计算节点的总数A得到的余数;
随后将聚合完成后的大文件(index_file_j)’载入到计算节点noded_j的本地高速存储模块Md_j中;
(3.4)重复步骤(3.3),将大文件数据集中的每一个聚合完成后的大文件载入到相对应的计算节点的本地高速存储模块中。
3.根据权利要求2所述的一种深度学习训练数据集快速载入临时缓存方法,其特征在于,所述步骤(4)具体包括以下子步骤:
(4.1)训练平台根据待测样本fileb的样本序号b计算得到相对应的聚合完成后的大文件的序号:
f_b=quotient(b,n)+1;
其中,f_b表示待测样本fileb相对应的聚合完成后的大文件的序号;quotient(b,n)表示待测样本fileb的样本序号b除以分片数n的整数部分;
(4.2)训练平台根据聚合完成后的大文件与计算节点之间的映射策略,计算得出聚合完成后的大文件(index_file_f_b)’的所属的计算节点的序号d_f_b:d_f_b=A-mod(f_b,A);
(4.3)训练平台发送读取待测样本fileb的请求到所属的计算节点noded_f_b。
4.根据权利要求3所述的一种深度学习训练数据集快速载入临时缓存方法,其特征在于,所述步骤(5)具体包括以下子步骤:
(5.1)所属的计算节点noded_f_b接收到读取待测样本fileb的请求后,从本地高速存储模块Md_f_b中读取待测样本fileb相对应的聚合完成后的大文件(index_file_f_b)’;
(5.2)从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为0处解析长度为sizeof(uint64)的空间,得到聚合完成后的大文件(index_file_f_b)’中第一个样本的序号index_first_f_b;随后计算得到待测样本fileb在聚合完成后的大文件(index_file_f_b)’中的偏移位置在聚合完成后的大文件(index_file_f_b)’中的起始储存位置meta_offset_b:meta_offset_b=2*sizeof(uint64)+(b-index_first_f_b)*(sizeof(int)1+sizeof(int)2);从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为meta_offset_b处解析长度为sizeof(int)1的空间,得到待测样本fileb在聚合完成后的大文件(index_file_f_b)’中的偏移位置offsetb;再从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为meta_len_b处解析长度为sizeof(int)2的空间,得到待测样本fileb的样本长度lenb,其中,meta_len_b=meta_offset_b+sizeof(int)1;
(5.3)从聚合完成后的大文件(index_file_f_b)’的储存的起始位置为offsetb处解析长度为lenb的空间,得到待测样本fileb的全部数据,并发送给训练平台。
5.一种深度学习训练数据集快速载入临时缓存装置,其特征在于,包括:样本聚合模块、载入模块和样本读取模块;
所述样本聚合模块,用于根据分片数进行样本聚合,聚合成大文件数据集,具体包括以下子步骤:
(2.1)新建一个包含空间大小为metadata的映射关系元数据信息模块的大文件index_file_j,j=1;所述metadata为metadata=2*sizeof(uint64)+n*(sizeof(int)1+sizeof(int)2),其中,sizeof(uint64)表示任意一个样本序号所占的空间,sizeof(int)1表示任意一个偏移位置所占的空间,sizeof(int)2表示任意一个样本长度所占的空间;
(2.2)按照子目录依次扫描整个样本数据集,根据分片数依次获取n个样本:filejn-n+1、filejn-n+2、…、fileh、…、filejn,其中,h={jn-n+1,jn-n+2,…,h,…,jn};
(2.3)先将获取的第一个样本的序号index_first_j写入到大文件index_file_j的映射关系元数据信息模块中,所占空间为sizeof(uint64);再将获取的最后一个样本的序号index_last_j写入到大文件index_file_j的映射关系元数据信息模块中,所占空间为sizeof(uint64);然后将获取的样本filejn-n+1、…、样本fileh、…、样本filejn在大文件index_file_j中的偏移位置和样本长度写入到大文件index_file_j的映射关系元数据信息模块中;不同样本在大文件中的偏移位置所占的空间皆为sizeof(int)1,不同样本的样本长度所占的空间皆为sizeof(int)2;其中,任意一个样本fileh在大文件index_file_j中的偏移位置为offsetj,h:offsetj,h=offsetj,h-1+lenj,h-1;offsetj,jn-n+1=metadata;
(2.4)最后在大文件index_file_j的映射关系元数据信息模块后写入样本filejn-n+1、…、样本fileh、…、样本filejn的全部数据,得到聚合完成后的大文件(index_file_j)’;
(2.5)j=j+1,再新建一个包含空间大小为metadata的映射关系元数据信息模块的大文件,重复步骤(2.2)-步骤(2.4),得到聚合完成后的大文件;
(2.6)重复步骤(2.5),直到样本数据集中剩余的样本数为m,m≤n,新建最后一个包含空间大小为metadata的映射关系元数据信息模块的大文件,并获取剩余的m个样本,重复步骤(2.2)-步骤(2.4),得到最后一个聚合完成后的大文件;
(2.7)将得到的所有聚合完成后的大文件合并为一个大文件数据集:{(index_file_1)′,(index_file_2)′,…,(index_file_j)′,…};
所述载入模块,用于设置A个计算节点,顺序扫描所述大文件数据集,获得所有的聚合完成后的大文件;根据聚合完成后的大文件与计算节点之间的映射策略,将聚合完成后的大文件分别载入到各计算节点的本地高速存储模块中;
所述样本读取模块,用于训练平台根据待测样本的样本序号计算得出相对应的聚合完成后的大文件的序号,并计算得出聚合完成后的大文件所属的计算节点的序号,然后发送读取待测样本的请求到所属的计算节点;所属的计算节点接收到读取待测样本的请求后,计算得到待测样本在相对应的聚合完成后的大文件中的偏移位置和样本长度,得到待测样本的全部数据并发送给训练平台。
6.一种深度学习训练数据集快速载入临时缓存装置,其特征在于,包括一个或多个处理器,用于实现权利要求1-4中任一项所述的深度学习训练数据集快速载入临时缓存方法。
7.一种计算机可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行时,用于实现权利要求1-4中任一项所述的深度学习训练数据集快速载入临时缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310420302.3A CN116136838B (zh) | 2023-04-19 | 2023-04-19 | 一种深度学习训练数据集快速载入临时缓存方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310420302.3A CN116136838B (zh) | 2023-04-19 | 2023-04-19 | 一种深度学习训练数据集快速载入临时缓存方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116136838A CN116136838A (zh) | 2023-05-19 |
CN116136838B true CN116136838B (zh) | 2023-07-25 |
Family
ID=86333597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310420302.3A Active CN116136838B (zh) | 2023-04-19 | 2023-04-19 | 一种深度学习训练数据集快速载入临时缓存方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116136838B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107749893A (zh) * | 2017-11-09 | 2018-03-02 | 北京精强远科技有限公司 | 一种共享文件系统中实现快速接收和储存数据的方法 |
CN109189696A (zh) * | 2018-08-12 | 2019-01-11 | 华中科技大学 | 一种照片分类器训练方法、ssd缓存系统及缓存方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763473A (zh) * | 2018-05-29 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种分布式存储的本地对象存储方法及装置 |
CN112306623A (zh) * | 2019-07-31 | 2021-02-02 | 株式会社理光 | 深度学习任务的处理方法、装置及计算机可读存储介质 |
CN111860835A (zh) * | 2020-07-17 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种神经网络模型训练方法和装置 |
CN111709533B (zh) * | 2020-08-19 | 2021-03-30 | 腾讯科技(深圳)有限公司 | 机器学习模型的分布式训练方法、装置以及计算机设备 |
CN112597113B (zh) * | 2021-03-05 | 2021-06-01 | 之江实验室 | 一种数据快速读取方法、装置、电子设备及存储介质 |
CN114328576A (zh) * | 2021-12-15 | 2022-04-12 | 复旦大学 | 一种基于星际文件系统的分布式协同查询处理系统 |
CN115114239A (zh) * | 2022-07-22 | 2022-09-27 | 济南浪潮数据技术有限公司 | 分布式系统数据处理方法、装置、设备及介质 |
-
2023
- 2023-04-19 CN CN202310420302.3A patent/CN116136838B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107749893A (zh) * | 2017-11-09 | 2018-03-02 | 北京精强远科技有限公司 | 一种共享文件系统中实现快速接收和储存数据的方法 |
CN109189696A (zh) * | 2018-08-12 | 2019-01-11 | 华中科技大学 | 一种照片分类器训练方法、ssd缓存系统及缓存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116136838A (zh) | 2023-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101422557B1 (ko) | 예측 데이터 로더 | |
US8838894B2 (en) | Storing row-major data with an affinity for columns | |
JP2020038623A (ja) | データを記憶するための方法、装置及びシステム | |
CN101533408B (zh) | 一种海量数据的处理方法及处理装置 | |
US9933962B1 (en) | Method for achieving sequential I/O performance from a random workload | |
CN102902724B (zh) | 海量栅格瓦块地图发布方法 | |
CN112287182A (zh) | 图数据存储、处理方法、装置及计算机存储介质 | |
CN103229164B (zh) | 数据访问方法和装置 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN106874348A (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
US7512135B2 (en) | Method for transferring data among a logical layer, physical layer, and storage device | |
CN109766318A (zh) | 文件读取方法及装置 | |
CN110287201A (zh) | 数据访问方法、装置、设备及存储介质 | |
CN114817341B (zh) | 访问数据库的方法和装置 | |
JP5448428B2 (ja) | データ管理システム及びデータ管理方法及びデータ管理プログラム | |
CN116136838B (zh) | 一种深度学习训练数据集快速载入临时缓存方法和装置 | |
CN111752941B (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
US20170286442A1 (en) | File system support for file-level ghosting | |
CN113590566B (zh) | 基于堆结构的SequenceFile存储优化方法、装置、设备及存储介质 | |
CN106557277A (zh) | 磁盘阵列的读方法及装置 | |
CN110780806A (zh) | 促进元数据和数据捆绑存储的原子性保证的方法和系统 | |
CN111352591B (zh) | 医疗影像文件的存储方法及设备 | |
WO2022165797A1 (en) | Data layout optimization for object-oriented storage engine | |
CN110968577A (zh) | 一种写入、读取资源的方法和系统以及时序存储系统 | |
CN113934371B (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 |