WO2023236357A1 - 一种面向多并发深度学习训练任务的数据缓存方法和装置 - Google Patents
一种面向多并发深度学习训练任务的数据缓存方法和装置 Download PDFInfo
- Publication number
- WO2023236357A1 WO2023236357A1 PCT/CN2022/114385 CN2022114385W WO2023236357A1 WO 2023236357 A1 WO2023236357 A1 WO 2023236357A1 CN 2022114385 W CN2022114385 W CN 2022114385W WO 2023236357 A1 WO2023236357 A1 WO 2023236357A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- training
- task
- tasks
- cache
- sample
- Prior art date
Links
- 238000012549 training Methods 0.000 title claims abstract description 195
- 238000013135 deep learning Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000013459 approach Methods 0.000 claims description 4
- 230000001174 ascending effect Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 230000002708 enhancing effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- 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
Definitions
- the present invention relates to the field of deep learning, and in particular, to a data caching method and device for multi-concurrent deep learning training tasks.
- Deep learning training tasks cover multiple stages such as data I/O, CPU computing, and GPU computing.
- components such as CPUs and GPUs continues to improve rapidly, the I/O bottleneck problem of deep learning training has become increasingly prominent.
- Caching technology is an important means to alleviate and eliminate I/O bottlenecks, but existing caches for deep learning training face the problem of "excessive hits". Specifically, during an epoch of a training cycle, some training batches have a large proportion of hits in the cache, making the data loading phase of these batches significantly shorter than the data enhancement phase or model training phase, while the time of other batches is significantly smaller than that of the data enhancement phase or model training phase. On the contrary, this uneven cache usage causes the previous part of the batch to waste limited cache resources. This phenomenon is called cache "excessive hit”.
- the issue of cache design for concurrent deep learning training is a current research hotspot.
- the most representative work is Quiver, which uses the substitutability of samples to ensure that all concurrent tasks can quickly obtain samples from the cache, thereby reducing task I/O
- the time overhead of the stage can be reduced to alleviate the I/O bottleneck of the task.
- Quiver has obvious shortcomings. On the one hand, its applicable application scenarios are very narrow, that is, multi-tasks sharing caches need to use the same data set; on the other hand, it destroys the global randomness of task access samples during each epoch, which may Adversely affects the accuracy of model training. Therefore, how to dynamically allocate and manage caches for multiple concurrent deep learning training tasks has become an urgent problem to be solved.
- the present invention proposes a data caching method and device for multiple concurrent deep learning training tasks, dynamically allocates and manages caches for concurrent deep learning training tasks, and solves the problem of "excessive The "hit" problem improves the cache utilization efficiency of each task, thereby alleviating and eliminating the I/O bottleneck of deep learning training tasks to the greatest extent.
- the specific technical solutions are as follows:
- a data caching method for multiple concurrent deep learning training tasks including the following steps:
- Step 1 Perform a separate warm-up training cycle for the sample set of each task in multiple concurrent tasks, and collect the characteristic parameters of the training batch samples. Based on the collected characteristic parameters, sort all tasks to generate a list;
- Step 2 Calculate the average number of samples of each training batch sample in the cache space for each task under the default cache allocation scheme and the expected number of samples of each training batch sample in the cache space for each task;
- step one specifically includes the following sub-steps:
- step two specifically includes the following sub-steps:
- Step S21 calculate each task The number of samples that hit the cache space for each training batch sample under the default cache allocation scheme, that is, system pre-allocation.
- the expression is:
- Step S31 The free cache space of multiple concurrent tasks is formed into a global free cache pool, and its total size is recorded as totalMem.
- the cache space of each task can be logically divided into two parts, recorded as and in Saves the samples that entered the cache space in the previous training cycle and will be used in the current training cycle. Save the samples that are cached in the current training cycle and will be used in the next training cycle; among them, the global free cache pool totalMem in the initial situation is calculated by the following formula:
- Step S36 if Requested sample Not entering the task cache space, and go to step S38; if Then go to step S37;
- the specific approach is if contains free space, directly move one unit of free space to Otherwise select it randomly A sample in is eliminated, the counter of the training batch corresponding to the eliminated sample is decremented by one, and then the vacated cache space is moved to and put the sample insert The counter of the corresponding training batch is incremented by one, and the process proceeds to step S38;
- Figure 1 is a schematic diagram of the training process of multiple concurrent tasks based on cache dynamic allocation and management strategies of the present invention
- Figure 4 is a schematic framework diagram of three concurrent tasks using cache dynamic allocation and management strategies in an embodiment of the present invention
- a dynamic cache allocation and management method for multiple concurrent deep learning training tasks The purpose is to improve the efficiency of cache usage by deep learning training tasks, use the cache to speed up the data loading phase of all tasks, and reduce or eliminate their I/O bottlenecks.
- this method collects the characteristic parameters of each task through preheating training, then configures and initializes cache allocation and management strategies based on these parameters, and finally multi-tasks perform concurrent training based on real-time cache dynamic allocation and management strategies.
- the device of the present invention can be deployed on the Pytorch platform.
- each concurrent deep learning training task has an independent GPU and CPU.
- the ImageNet data set is used.
- the trained model is ResNet.
- the main parameter configuration is shown in Figure 2.
- the method of the present invention as shown in Figure 3, includes the following steps:
- the third step includes the following sub-steps:
- Step S34 in task The sample access sequence in the next training cycle Retrieve sample request in Compute requested samples The training batch to which the next training cycle belongs is recorded as Then get that training batch The counter value is recorded as And go to step S35;
- the present invention also provides an embodiment of a data caching device for multiple concurrent deep learning training tasks.
- any device with data processing capabilities where the device in the embodiment is located may also include other hardware based on the actual functions of any device with data processing capabilities. This will not be described again.
- Embodiments of the present invention also provide a computer-readable storage medium on which a program is stored.
- the program is executed by a processor, the data caching method for multiple concurrent deep learning training tasks in the above embodiments is implemented.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种面向多并发深度学习训练任务的数据缓存方法和装置,该方法包括:步骤一,对多并发任务中每个任务执行预热训练,采集任务训练批次样本的特征参数,根据特征参数对所有任务进行排序;步骤二,计算每个任务在系统预分配下每个训练批次样本在缓存空间中的样本数目和每个任务期望每个训练批次样本在缓存空间中的样本数目;步骤三,采用缓存动态分配和管理策略并发执行任务的深度学习训练;步骤四,当各任务进入最后一个训练周期时,不再有新的样本数据加入这些任务的缓存空间,同时随着缓存空间内的样本数据被逐渐使用消耗,被占用的缓存空间逐步被释放,被释放的缓存空间被其他尚未结束的任务使用。本发明提高了全局缓存空间的利用率。
Description
本发明涉及深度学习领域,尤其是涉及一种面向多并发深度学习训练任务的数据缓存方法和装置。
作为机器学习的重要分支,深度学习的性能优化一直是近年的研究热点。深度学习训练任务涵盖数据I/O,CPU计算和GPU计算等多个阶段,而随着CPU和GPU等组件的性能持续快速提升,深度学习训练的I/O瓶颈问题日益凸显。
缓存技术是缓解和消除I/O瓶颈的重要手段,但现有的面向深度学习训练的缓存面临“过度命中”问题。具体地,在一个训练周期epoch期间,一些训练批次batch在缓存内命中的样本占比大,使得这些batch的数据载入阶段的时间显著小于数据增强阶段或模型训练阶段,而另一些batch的情况则相反,这种缓存使用不均衡的情况使得前一部分batch浪费了有限的缓存资源,这一现象被称为缓存“过度命中”。
此外,多个深度学习训练任务并发执行的情况越来越普遍,这些任务相互独立,它们可能使用不同的数据集,执行不同的增强操作,使用不同的模型训练。当这些任务并发执行时,常见的方法是根据任务的数据集的大小按预定的比例为它们预分配缓存。但这种静态的缓存分配方案的缓存利用率有待提高:一方面,任务所需缓存大小不仅取决于数据集大小,还需考虑任务的数据增强阶段和模型训练阶段的时间开销;另一方面,深度学习训练具有周期性,且不同任务的样本相邻两次被引用的平均间隔时间往往是不同的,这使得不同任务的样本在缓存中平均驻留时间也不相同,利用这一规律在多任务间动态分配缓存能进一步提高全局缓存空间的利用率。
面向并发深度学习训练的缓存设计问题是当前的研究热点,最有代表性的工作是Quiver,它利用样本的可替代性保证所有并发任务都能快速从缓存获取到样本,从而减少任务I/O阶段的时间开销,缓解任务的I/O瓶颈。但Quiver具有明显的缺点,一方面,其适用的应用场景很窄,即共享缓存的多任务需使用相同数据集;另一方面,它破坏了每个epoch期间任务访问样本的全局随机性,可能对模型训练的精度带来不利影响。因此,如何为多并发深度学习训练任务动 态地分配和管理缓存成为亟待解决的问题。
发明内容
为了解决现有技术中存在的上述技术问题,本发明提出了一种面向多并发深度学习训练任务的数据缓存方法和装置,动态地为并发深度学习训练任务分配和管理缓存,并通过解决“过度命中”问题提升每个任务对缓存的利用效率,从而在最大程度上缓解和消除深度学习训练任务的I/O瓶颈,其具体技术方案如下:
一种面向多并发深度学习训练任务的数据缓存方法,包括以下步骤:
步骤一,对多并发任务中每个任务的样本集,单独执行一个训练周期的预热训练,并采集训练批次样本的特征参数,根据采集到的特征参数,对所有任务进行排序产生列表;
步骤二,计算每个任务在默认缓存分配方案下每个训练批次样本在缓存空间中的平均样本数目和每个任务期望每个训练批次样本在缓存空间中的样本数目;
步骤三,基于步骤二中计算得到的两个参数,多并发任务采用缓存动态分配和管理策略并发执行深度学习训练;
步骤四,当各任务进入最后一个训练周期时,不再有新的样本数据加入各任务的缓存空间,同时随着缓存空间内的样本数据被逐渐使用消耗,被占用的缓存空间逐步被释放,被释放的缓存空间可被其他尚未结束的任务使用。
进一步地,所述步骤一具体包含如下子步骤:
步骤S11,获取初始参数配置,并发任务的总数记为M,对于其中的任务task
i,i∈[0,M),所用数据集包含样本总数记为D
i,一个训练批次包含的样本数记为N
i,系统预分配的缓存空间最多可保存的样本数记为C
i;
步骤S12,预热训练不使用任何缓存,当每个任务预热训练完成时,统计其信息:任务task
i单独执行一个训练周期所需的时间,记为
载入一个训练批次 的I/O平均时间,记为
载入一个样本的平均时间,记为
增强一个训练批次的平均时间,记为
训练一个训练批次的平均时间,记为
进一步地,所述步骤二具体包含如下子步骤:
进一步地,所述步骤三具体包括如下子步骤:
步骤S31,将多并发任务的空闲缓存空间组成一个全局的空闲缓存池,其总大小记为totalMem,每个任务的缓存空间在逻辑上可分为两部分,记为
和
其中
保存着上一训练周期进入缓存空间而当前训练周期将被使用的样本,
保存当前训练周期进入缓存而下一训练周期将被使用的样本;其中,初始情况下全局的空闲缓存池totalMem由下述公式计算而出:
步骤S32,对于任务
在每个训练周期内持有两个样本访问序列,其中一个指示当前训练周期内样本访问顺序,记为
另一个指示下一训练周期内的样本访问顺序,记为
所述
从头到尾依次划分成不同的序列片段,每个片段对应一个训练批次,每个片段配置一个计数器,记录训练批次在当前训练周期内进入缓存空间的样本数目,当一个训练周期开始时该任务的所有计数器清零,然后进入步骤S33;
步骤S35,当totalMem=0且
没有空闲空间时,转入步骤S36;当totalMem>0时,若
则任务
根据其增益系数从空闲缓存池申请空间给
(若缓存池为空则申请失败),然后将请求的样本
插入
然后
加一,更新totalMem,并转入步骤S38;若
则
不进入任务
的缓存空间,并转入步骤S38;
步骤S37,若任务
的
含有空闲空间,则样本
进入
并转入步骤S38;反之,若任务
是List列表中的第一个任务(即i=0),则请求的样本
不进入
的缓存空间,并转入步骤S38;否则List 列表中的上一个任务
的
需提供一个空闲空间给
具体做法是若
含有空闲空间,则直接将一个单位的空闲空间移至
否则随机选择其
中的一个样本淘汰,将淘汰样本对应的训练批次的计数器减一,然后将空出的缓存空间移至
并将样本
插入
相应的训练批次的计数器加一,转入步骤S38;
进一步地,所述多并发任务中的每个任务的缓存空间彼此隔离,只能存取各自的缓存空间内的样本。
进一步地,所述每个任务在其当前训练周期内,进入缓存空间的样本相对均匀地分布在下一个训练周期的所有训练批次中,列表中位置靠前的任务以更快的速度从空闲缓存池申请空闲的缓存空间,而位置靠后的任务可强制要求列表中位于其前面的其他任务归还部分缓存空间。
一种面向多并发深度学习训练任务的数据缓存装置,包括一个或多个处理器,用于实现所述的一种面向多并发深度学习训练任务的数据缓存方法。
一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现所述的一种面向多并发深度学习训练任务的数据缓存方法。
本发明的优势和有益效果在于:
本发明面向多并发深度学习训练任务设计了一个缓存动态分配和管理策略,对于 其中的任一训练任务,本发明在每个训练周期精准选择进入缓存的样本,使得它们尽可能均匀地分布在下一个训练周期的所有训练批次,从而解决每个任务的缓存“过度命中”问题,提高缓存空间的利用率;在此基础上,本发明面向多并发训练任务设计了实时的动态缓存分配策略,使得任一任务可在适当的时间将其缓存空间借给其他任务,并在其需要缓存空间时从其他任务借用缓存空间,从而充分利用所有并发任务的缓存空间,并保证每个任务实际利用的缓存空间不小于系统预分配的缓存空间,进一步提高全局缓存空间的利用率。
图1是本发明的多并发任务基于缓存动态分配和管理策略的训练过程示意图;
图2是本发明实施例的多并发深度学习训练任务的主要参数配置示意图;
图3是本发明实施例的面向多并发深度学习训练任务的数据缓存方法流程示意图;
图4是本发明实施例的三个并发任务采用缓存动态分配和管理策略的框架示意图;
图5是本发明实施例的多并发任务中每个任务缓存处理流程示意图;
图6是本发明实施例的一种面向多并发深度学习训练任务的数据缓存装置结构示意图。
为了使本发明的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图和实施例,对本发明作进一步详细说明。
一种面向多并发深度学习训练任务的缓存动态分配和管理方法,目的是提高深度学习训练任务对缓存的使用效率,利用缓存加快所有任务的数据载入阶段,减轻或消除它们的I/O瓶颈。如图1所示,该方法通过预热训练采集各任务的特征参数,然后根据这些参数配置和初始化缓存分配和管理策略,最后多任务基于实时的缓存动态分配和管理策略执行并发训练。
本发明提出的方法将不同任务的缓存相互隔离,对于每个任务,在其当前训练周期内,保证其缓存接收的样本尽可能均匀地分布于其下一训练周期的所有批次中,从而解决缓存“过度命中”问题。同时,它在不同任务间实时地动态 地分配缓存资源,一方面解决默认的缓存静态预分配策略带来的不均衡问题,另一方面利用任务的特征提高整个缓存空间的使用效率。
本发明的装置可部署在Pytorch平台,在单物理节点上,每个并发深度学习训练任务拥有独立的GPU和CPU,使用ImageNet数据集,训练的模型为ResNet,主要参数配置如图2所示,此场景下,本发明的方法,如图3所示,包括如下步骤:
步骤一,对多并发任务中每个任务的样本集,单独执行一个训练周期的预热训练,并采集训练批次样本的特征参数,根据采集到的特征参数,对所有任务进行排序产生列表,具体包含如下子步骤:
步骤S11,获取初始参数配置,并发任务的总数为M,本实施例中,M值为3个,对于其中的任务task
i,i∈M,所用数据集包含样本总数记为D
i,一个训练批次包含的样本数记为N
i,系统预分配的缓存空间可保存的样本数记为C
i;
步骤S12,每个任务预热训练完成时,统计其信息:任务单独执行一个训练周期所需的时间,记为
载入一个训练批次的I/O平均时间,记为
载入一个样本的平均时间,记为
增强一个训练批次的平均时间,记为
训练一个训练批次的平均时间,记为
步骤S13,根据步骤S12获取的任务task
i执行一个训练周期所需的时间
对所有任务作一次升序排序,得到有序的任务列表:
此实施例假设统计到的信息满足
那么,得到列表为List<task
1,task
0,task
2>,并且列表中每个任务
包含一个参数
作为该任务向空闲缓存池申请缓存空间的增益系数,即每当该任务向空闲缓存池申请一个样本的空间时,空闲缓存池将分配
倍的缓存空间给
的值与
呈反相关,且
此实施例中List中各任务的增益系数可设为<0.8,0.4,0>。
步骤二,计算每个任务在默认缓存分配方案下每个训练批次样本在缓存空间中的平均样本数目和每个任务期望每个训练批次样本在缓存空间中的样本数目;
具体的,包含如下子步骤:
步骤三,如图4所示,基于步骤二中计算得到的两个参数,多并发任务采用缓存动态分配和管理策略并发执行深度学习训练;在多并发任务中,将每个任务的缓存空间彼此隔离,只能存取各自所属缓存空间内的样本,各任务在当前训练周期内,使进入缓存空间的样本尽可能均匀地分布在下一个训练周期的所有训练批次中,列表中位置靠前的任务以更快的速度从空闲缓存池申请空闲的缓存空间,而当空闲缓存池为空时,位置靠后的任务可强制要求列表中位于其前面的其他任务归还部分缓存空间。
所述步骤三包含如下子步骤:
步骤S31,将多并发任务的空闲缓存空间组成一个全局的空闲缓存池,其总大小记为totalMem,每个任务的缓存空间在逻辑上可分为两部分,记为
和
其中
保存着上一训练周期进入缓存空间而当前训练周期将被使用的样本,
保存当前训练周期进入缓存而下一训练周期将被使用的样本;其中,初始情况下全局的空闲缓存池totalMem由下述公式计算而出:
步骤S32,如图5所示,对于任务
在每个训练周期内持有两个样本访问序列,其中一个指示当前训练周期内样本访问顺序,记为
另一个指示下一 训练周期内的样本访问顺序,记为
所述
从头到尾依次划分成不同的序列片段,每个片段对应一个训练批次,每个片段配置一个计数器,记录训练批次在当前训练周期内进入缓存空间的样本数目,当一个训练周期开始时该任务的所有计数器清零,然后进入步骤S33;
步骤S35,当totalMem≤0且
没有空闲空间时,转入步骤S36;当totalMem>0时,若
则任务
根据其增益系数从空闲缓存池申请空间给
(若缓存池为空则申请失败),然后将请求的样本
插入
然后
加一,更新totalMem,并转入步骤S38;若
则
不进入任务
的缓存空间,并转入步骤S38;
步骤S37,若任务
的
含有空闲空间,则样本
进入
并转入步骤S38;反之,若任务
是List列表中的第一个任务(即i=0),则请求的样本
不进入
的缓存空间,并转入步骤S38;否则List列表中的上一个任务
的
需提供一个空闲空间给
具体做法是若
含有空闲空间,则直接将一个单位的空闲空间移至
否则随机选择其
中的一个样本淘汰,将淘汰样本对应的训练批次的计数器减一,然后将空出的缓存空间移至
并将样本
插入
相应的训练批次的计数器加一,转入步骤S38;
步骤四,当各任务进入最后一个训练周期时,不再有新的样本数据加入各任务的缓存空间,同时随着缓存空间内的样本数据被逐渐使用消耗,被占用的缓存空间逐步被释放,被释放的缓存空间可被其他尚未结束的任务使用.
与前述一种面向多并发深度学习训练任务的数据缓存方法的实施例相对应,本发 明还提供了一种面向多并发深度学习训练任务的数据缓存装置的实施例。
参见图6,本发明实施例提供的一种面向多并发深度学习训练任务的数据缓存装置,包括一个或多个处理器,用于实现上述实施例中的一种面向多并发深度学习训练任务的数据缓存方法。
本发明一种面向多并发深度学习训练任务的数据缓存装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本发明一种面向多并发深度学习训练任务的数据缓存装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种面向多并发深度学习训练任务的数据缓存方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是风力发电机的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储 卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述,仅为本发明的优选实施案例,并非对本发明做任何形式上的限制。虽然前文对本发明的实施过程进行了详细说明,对于熟悉本领域的人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行同等替换。凡在本发明精神和原则之内所做修改、同等替换等,均应包含在本发明的保护范围之内。
Claims (8)
- 一种面向多并发深度学习训练任务的数据缓存方法,其特征在于,包括以下步骤:步骤一,对多并发任务中每个任务的样本集,单独执行一个训练周期的预热训练,并采集训练批次样本的特征参数,根据采集到的特征参数,对所有任务进行排序产生列表;步骤二,计算每个任务在默认缓存分配方案下每个训练批次样本在缓存空间中的平均样本数目和每个任务期望每个训练批次样本在缓存空间中的样本数目;步骤三,基于步骤二中计算得到的两个参数,多并发任务采用缓存动态分配和管理策略并发执行深度学习训练;步骤四,当各任务进入最后一个训练周期时,不再有新的样本数据加入各任务的缓存空间,同时随着缓存空间内的样本数据被逐渐使用消耗,被占用的缓存空间逐步被释放,被释放的缓存空间被其他尚未结束的任务使用。
- 如权利要求1所述的一种面向多并发深度学习训练任务的数据缓存方法,其特征在于,所述步骤一具体包含如下子步骤:步骤S11,获取初始参数配置,并发任务的总数记为M,对于其中的任务task i,i∈[0,M),所用数据集包含样本总数记为D i,一个训练批次包含的样本数记为N i,系统预分配的缓存空间最多可保存的样本数记为C i;步骤S12,预热训练不使用任何缓存,当每个任务预热训练完成时,统计其信息:任务task i单独执行一个训练周期所需的时间,记为T i epoch;载入一个训练批次的I/O平均时间,记为T i io;载入一个样本的平均时间,记为T i sample;增强一个训练批次的平均时间,记为T i aug;训练一个训练批次的平均时间,记为T i tr;步骤S13,根据步骤S12获取的任务task i执行一个训练周期所需的时间T i epoch,对所有任务作一次升序排序,得到有序的任务列表:
- 如权利要求3所述的一种面向多并发深度学习训练任务的数据缓存方法,其特征在于,所述步骤三具体包括如下子步骤:步骤S31,将多并发任务的空闲缓存空间组成一个全局的空闲缓存池,其总大小记为 totalMem,每个任务的缓存空间在逻辑上可分为两部分,记为 和 其中 保存着上一训练周期进入缓存空间而当前训练周期将被使用的样本, 保存当前训练周期进入缓存而下一训练周期将被使用的样本;其中,初始情况下全局的空闲缓存池totalMem由下述公式计算而出:步骤S32,对于任务 在每个训练周期内持有两个样本访问序列,其中一个指示当前训练周期内样本访问顺序,记为 另一个指示下一训练周期内的样本访问顺序,记为 所述 从头到尾依次划分成不同的序列片段,每个片段对应一个训练批次,每个片段配置一个计数器,记录训练批次在当前训练周期内进入缓存空间的样本数目,当一个训练周期开始时该任务的所有计数器清零,然后进入步骤S33;步骤S35,当totalMem≤0且 没有空闲空间时,转入步骤S36;当totalMem>0时,若 则任务 根据其增益系数从空闲缓存池申请空间给 (若缓存池为空则申请失败),然后将请求的样本 插入 然后 加一,更新totalMem,并转入步骤S38;若 则 不进入任务 的缓存空间,并转入步骤S38;步骤S37,若任务 的 含有空闲空间,则样本 进入 并转入步骤S38;反之,若任务 是List列表中的第一个任务(即i=0),则请求的样本 不进入 的缓存空间,并转入步骤S38;否则List列表中的上一个任务 的 需提供一个空闲空间给 具体做法是若 含有空闲空间,则直接将一个单位的空闲空间移至 否则随机选择其 中的一个样本淘汰,将淘汰样本对应的训练批次的计数器减一,然后将空出的缓存空间移至 并将样本 插入 相应的训练批次的计数器加一,转入步骤S38;
- 如权利要求1所述的一种面向多并发深度学习训练任务的数据缓存方法,其特征在于,所述多并发任务中的每个任务的缓存空间彼此隔离,只能存取各自的缓存空间内的样本。
- 如权利要求1所述的一种面向多并发深度学习训练任务的数据缓存方法,其特征在于,所述每个任务在其当前训练周期内,进入缓存空间的样本相对均匀地分布在下一个训练周期的所有训练批次中,列表中位置靠前的任务以更快的速度从空闲缓存池申请空闲的缓存空间,而当空闲缓存池为空时,位置靠后的任务可强制要求列表中位于其前面的其他任务归还部分缓存空间。
- 一种面向多并发深度学习训练任务的数据缓存装置,其特征在于,包括一个或多个处理器,用于实现权利要求1-6中任一项所述的一种面向多并发深度学习训练任务的数据缓存方法。
- 一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1-6中任一项所述的一种面向多并发深度学习训练任务的数据缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/348,362 US20230394307A1 (en) | 2022-06-07 | 2023-07-07 | Data caching method and apparatus for multiple concurrent deep learning training tasks |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210632036.6A CN114968588A (zh) | 2022-06-07 | 2022-06-07 | 一种面向多并发深度学习训练任务的数据缓存方法和装置 |
CN202210632036.6 | 2022-06-07 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/348,362 Continuation US20230394307A1 (en) | 2022-06-07 | 2023-07-07 | Data caching method and apparatus for multiple concurrent deep learning training tasks |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023236357A1 true WO2023236357A1 (zh) | 2023-12-14 |
Family
ID=82959320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/114385 WO2023236357A1 (zh) | 2022-06-07 | 2022-08-24 | 一种面向多并发深度学习训练任务的数据缓存方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114968588A (zh) |
WO (1) | WO2023236357A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555697A (zh) * | 2024-01-11 | 2024-02-13 | 之江实验室 | 一种面向分布式训练的缓存加载系统、方法、装置及设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501696B (zh) * | 2023-06-30 | 2023-09-01 | 之江实验室 | 适用于分布式深度学习训练预取缓存管理的方法和装置 |
CN116737607B (zh) * | 2023-08-16 | 2023-11-21 | 之江实验室 | 样本数据缓存方法、系统、计算机设备和存储介质 |
CN117215973B (zh) * | 2023-09-13 | 2024-05-28 | 之江实验室 | 一种缓存数据的处理方法、深度学习训练方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101339A (zh) * | 2018-08-15 | 2018-12-28 | 北京邮电大学 | 异构集群中视频任务并行化方法、装置及异构集群系统 |
CN112379849A (zh) * | 2021-01-18 | 2021-02-19 | 之江实验室 | 基于序列可预测的并行深度学习训练数据输入方法和系统 |
CN112416368A (zh) * | 2020-11-25 | 2021-02-26 | 中国科学技术大学先进技术研究院 | 缓存部署与任务调度方法、终端和计算机可读存储介质 |
US20210256418A1 (en) * | 2020-02-19 | 2021-08-19 | EMC IP Holding Company LLC | Caching of Machine Learning Model Training Parameters |
-
2022
- 2022-06-07 CN CN202210632036.6A patent/CN114968588A/zh active Pending
- 2022-08-24 WO PCT/CN2022/114385 patent/WO2023236357A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101339A (zh) * | 2018-08-15 | 2018-12-28 | 北京邮电大学 | 异构集群中视频任务并行化方法、装置及异构集群系统 |
US20210256418A1 (en) * | 2020-02-19 | 2021-08-19 | EMC IP Holding Company LLC | Caching of Machine Learning Model Training Parameters |
CN112416368A (zh) * | 2020-11-25 | 2021-02-26 | 中国科学技术大学先进技术研究院 | 缓存部署与任务调度方法、终端和计算机可读存储介质 |
CN112379849A (zh) * | 2021-01-18 | 2021-02-19 | 之江实验室 | 基于序列可预测的并行深度学习训练数据输入方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555697A (zh) * | 2024-01-11 | 2024-02-13 | 之江实验室 | 一种面向分布式训练的缓存加载系统、方法、装置及设备 |
CN117555697B (zh) * | 2024-01-11 | 2024-04-05 | 之江实验室 | 一种面向分布式训练的缓存加载系统、方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114968588A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2023236357A1 (zh) | 一种面向多并发深度学习训练任务的数据缓存方法和装置 | |
US11048442B2 (en) | Scalable in-memory object storage system using hybrid memory devices | |
Breß et al. | Robust query processing in co-processor-accelerated databases | |
US8793427B2 (en) | Remote memory for virtual machines | |
Patterson et al. | Informed prefetching and caching | |
US11977484B2 (en) | Adapting in-memory database in hybrid memory systems and operating system interface | |
KR101761301B1 (ko) | 메모리 자원 최적화 방법 및 장치 | |
CN102508638B (zh) | 用于非一致性内存访问的数据预取方法和装置 | |
US20130297655A1 (en) | Performance service level agreements in multi-tenant database systems | |
CN109032964A (zh) | 缓存替换方法及其装置、异构多核系统 | |
CN101976201B (zh) | 基于cpu亲和力的虚拟cpu动态绑定方法 | |
CN113590508A (zh) | 动态可重构的内存地址映射方法及装置 | |
CN109426623A (zh) | 一种读取数据的方法及装置 | |
On et al. | FD-buffer: a buffer manager for databases on flash disks | |
US9552295B2 (en) | Performance and energy efficiency while using large pages | |
WO2020125362A1 (zh) | 文件系统及数据布局方法 | |
CN107301270A (zh) | Ddr存储系统访存延时的解析建模方法 | |
US20230394307A1 (en) | Data caching method and apparatus for multiple concurrent deep learning training tasks | |
Zhang et al. | Transparent partial page migration between CPU and GPU | |
CN108388498B (zh) | 内存中计算的功率建模方法及功率管理方法 | |
Sun et al. | CalmWPC: A buffer management to calm down write performance cliff for NAND flash-based storage systems | |
CN102662891A (zh) | 基于亲和性感知的dma缓冲区管理方法及装置 | |
CN106383926A (zh) | 一种基于Cortex‑M系列处理器的指令预取方法及电路 | |
Lu et al. | Accelerate hardware logging for efficient crash consistency in persistent memory | |
CN109815249A (zh) | 基于内存映射的大数据文件快速并行提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22945491 Country of ref document: EP Kind code of ref document: A1 |