WO2023236357A1 - 一种面向多并发深度学习训练任务的数据缓存方法和装置 - Google Patents

一种面向多并发深度学习训练任务的数据缓存方法和装置 Download PDF

Info

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
Application number
PCT/CN2022/114385
Other languages
English (en)
French (fr)
Inventor
朱春节
周方
汤志航
秦亦
方启明
Original Assignee
之江实验室
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 之江实验室 filed Critical 之江实验室
Priority to US18/348,362 priority Critical patent/US20230394307A1/en
Publication of WO2023236357A1 publication Critical patent/WO2023236357A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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单独执行一个训练周期所需的时间,记为
Figure PCTCN2022114385-appb-000001
载入一个训练批次 的I/O平均时间,记为
Figure PCTCN2022114385-appb-000002
载入一个样本的平均时间,记为
Figure PCTCN2022114385-appb-000003
增强一个训练批次的平均时间,记为
Figure PCTCN2022114385-appb-000004
训练一个训练批次的平均时间,记为
Figure PCTCN2022114385-appb-000005
步骤S13,根据步骤S12获取的任务task i执行一个训练周期所需的时间
Figure PCTCN2022114385-appb-000006
对所有任务作一次升序排序,得到有序的任务列表:
Figure PCTCN2022114385-appb-000007
并且列表中每个任务
Figure PCTCN2022114385-appb-000008
包含一个参数
Figure PCTCN2022114385-appb-000009
作为该任务向空闲缓存池申请缓存空间的增益系数,即每当该任务向空闲缓存池申请一个样本的空间时,空闲缓存池将分配
Figure PCTCN2022114385-appb-000010
倍的缓存空间给此任务,同时,
Figure PCTCN2022114385-appb-000011
的值与
Figure PCTCN2022114385-appb-000012
呈反相关,且
Figure PCTCN2022114385-appb-000013
进一步地,所述步骤二具体包含如下子步骤:
步骤S21,计算每个任务
Figure PCTCN2022114385-appb-000014
在默认的缓存分配方案即系统预分配情况下每个训练批次样本在缓存空间中命中的样本数目
Figure PCTCN2022114385-appb-000015
表达式为:
Figure PCTCN2022114385-appb-000016
Figure PCTCN2022114385-appb-000017
为排序后的任务
Figure PCTCN2022114385-appb-000018
所用数据集包含样本总数,
Figure PCTCN2022114385-appb-000019
为排序后的任务
Figure PCTCN2022114385-appb-000020
的一个训练批次包含的样本数,
Figure PCTCN2022114385-appb-000021
为排序后的任务
Figure PCTCN2022114385-appb-000022
在系统预分配的缓存空间可保存的样本数;
步骤S22,计算每个任务
Figure PCTCN2022114385-appb-000023
期望每个训练批次样本在缓存空间中的样本数目
Figure PCTCN2022114385-appb-000024
表达式为:
Figure PCTCN2022114385-appb-000025
进一步地,所述步骤三具体包括如下子步骤:
步骤S31,将多并发任务的空闲缓存空间组成一个全局的空闲缓存池,其总大小记为totalMem,每个任务的缓存空间在逻辑上可分为两部分,记为
Figure PCTCN2022114385-appb-000026
Figure PCTCN2022114385-appb-000027
其中
Figure PCTCN2022114385-appb-000028
保存着上一训练周期进入缓存空间而当前训练周期将被使用的样本,
Figure PCTCN2022114385-appb-000029
保存当前训练周期进入缓存而下一训练周期将被使用的样本;其中,初始情况下全局的空闲缓存池totalMem由下述公式计算而出:
Figure PCTCN2022114385-appb-000030
步骤S32,对于任务
Figure PCTCN2022114385-appb-000031
在每个训练周期内持有两个样本访问序列,其中一个指示当前训练周期内样本访问顺序,记为
Figure PCTCN2022114385-appb-000032
另一个指示下一训练周期内的样本访问顺序,记为
Figure PCTCN2022114385-appb-000033
所述
Figure PCTCN2022114385-appb-000034
从头到尾依次划分成不同的序列片段,每个片段对应一个训练批次,每个片段配置一个计数器,记录训练批次在当前训练周期内进入缓存空间的样本数目,当一个训练周期开始时该任务的所有计数器清零,然后进入步骤S33;
步骤S33,若任务
Figure PCTCN2022114385-appb-000035
请求的样本
Figure PCTCN2022114385-appb-000036
在其缓存空间
Figure PCTCN2022114385-appb-000037
命 中,则从
Figure PCTCN2022114385-appb-000038
获取命中的样本,并将空闲缓存池totalMem加一,否则从底层存储系统载入样本;然后进入步骤S34;
步骤S34,在任务
Figure PCTCN2022114385-appb-000039
的下一训练周期内的样本访问顺序
Figure PCTCN2022114385-appb-000040
中检索请求的样本
Figure PCTCN2022114385-appb-000041
计算请求的样本
Figure PCTCN2022114385-appb-000042
在下一训练周期所属的训练批次,记为
Figure PCTCN2022114385-appb-000043
然后获取该训练批次
Figure PCTCN2022114385-appb-000044
的计数器值,记为
Figure PCTCN2022114385-appb-000045
并转入步骤S35;
步骤S35,当totalMem=0且
Figure PCTCN2022114385-appb-000046
没有空闲空间时,转入步骤S36;当totalMem>0时,若
Figure PCTCN2022114385-appb-000047
则任务
Figure PCTCN2022114385-appb-000048
根据其增益系数从空闲缓存池申请空间给
Figure PCTCN2022114385-appb-000049
(若缓存池为空则申请失败),然后将请求的样本
Figure PCTCN2022114385-appb-000050
插入
Figure PCTCN2022114385-appb-000051
然后
Figure PCTCN2022114385-appb-000052
加一,更新totalMem,并转入步骤S38;若
Figure PCTCN2022114385-appb-000053
Figure PCTCN2022114385-appb-000054
不进入任务
Figure PCTCN2022114385-appb-000055
的缓存空间,并转入步骤S38;
步骤S36,若
Figure PCTCN2022114385-appb-000056
请求的样本
Figure PCTCN2022114385-appb-000057
不进入任务
Figure PCTCN2022114385-appb-000058
的缓存空间,并转入步骤S38;若
Figure PCTCN2022114385-appb-000059
则转入步骤S37;
步骤S37,若任务
Figure PCTCN2022114385-appb-000060
Figure PCTCN2022114385-appb-000061
含有空闲空间,则样本
Figure PCTCN2022114385-appb-000062
进入
Figure PCTCN2022114385-appb-000063
并转入步骤S38;反之,若任务
Figure PCTCN2022114385-appb-000064
是List列表中的第一个任务(即i=0),则请求的样本
Figure PCTCN2022114385-appb-000065
不进入
Figure PCTCN2022114385-appb-000066
的缓存空间,并转入步骤S38;否则List 列表中的上一个任务
Figure PCTCN2022114385-appb-000067
Figure PCTCN2022114385-appb-000068
需提供一个空闲空间给
Figure PCTCN2022114385-appb-000069
具体做法是若
Figure PCTCN2022114385-appb-000070
含有空闲空间,则直接将一个单位的空闲空间移至
Figure PCTCN2022114385-appb-000071
否则随机选择其
Figure PCTCN2022114385-appb-000072
中的一个样本淘汰,将淘汰样本对应的训练批次的计数器减一,然后将空出的缓存空间移至
Figure PCTCN2022114385-appb-000073
并将样本
Figure PCTCN2022114385-appb-000074
插入
Figure PCTCN2022114385-appb-000075
相应的训练批次的计数器加一,转入步骤S38;
步骤S38,任务
Figure PCTCN2022114385-appb-000076
请求的样本
Figure PCTCN2022114385-appb-000077
进入后续的增强阶段和模型训练阶段;
步骤S39,当任务
Figure PCTCN2022114385-appb-000078
执行完当前训练周期的训练后,若所有训练周期的训练都已完成,则任务
Figure PCTCN2022114385-appb-000079
结束;否则,转入步骤S32进行任务
Figure PCTCN2022114385-appb-000080
下一个训练周期的训练。
进一步地,所述多并发任务中的每个任务的缓存空间彼此隔离,只能存取各自的缓存空间内的样本。
进一步地,所述每个任务在其当前训练周期内,进入缓存空间的样本相对均匀地分布在下一个训练周期的所有训练批次中,列表中位置靠前的任务以更快的速度从空闲缓存池申请空闲的缓存空间,而位置靠后的任务可强制要求列表中位于其前面的其他任务归还部分缓存空间。
一种面向多并发深度学习训练任务的数据缓存装置,包括一个或多个处理器,用于实现所述的一种面向多并发深度学习训练任务的数据缓存方法。
一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现所述的一种面向多并发深度学习训练任务的数据缓存方法。
本发明的优势和有益效果在于:
本发明面向多并发深度学习训练任务设计了一个缓存动态分配和管理策略,对于 其中的任一训练任务,本发明在每个训练周期精准选择进入缓存的样本,使得它们尽可能均匀地分布在下一个训练周期的所有训练批次,从而解决每个任务的缓存“过度命中”问题,提高缓存空间的利用率;在此基础上,本发明面向多并发训练任务设计了实时的动态缓存分配策略,使得任一任务可在适当的时间将其缓存空间借给其他任务,并在其需要缓存空间时从其他任务借用缓存空间,从而充分利用所有并发任务的缓存空间,并保证每个任务实际利用的缓存空间不小于系统预分配的缓存空间,进一步提高全局缓存空间的利用率。
附图说明
图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,每个任务预热训练完成时,统计其信息:任务单独执行一个训练周期所需的时间,记为
Figure PCTCN2022114385-appb-000081
载入一个训练批次的I/O平均时间,记为
Figure PCTCN2022114385-appb-000082
载入一个样本的平均时间,记为
Figure PCTCN2022114385-appb-000083
增强一个训练批次的平均时间,记为
Figure PCTCN2022114385-appb-000084
训练一个训练批次的平均时间,记为
Figure PCTCN2022114385-appb-000085
步骤S13,根据步骤S12获取的任务task i执行一个训练周期所需的时间
Figure PCTCN2022114385-appb-000086
对所有任务作一次升序排序,得到有序的任务列表:
Figure PCTCN2022114385-appb-000087
此实施例假设统计到的信息满足
Figure PCTCN2022114385-appb-000088
那么,得到列表为List<task 1,task 0,task 2>,并且列表中每个任务
Figure PCTCN2022114385-appb-000089
包含一个参数
Figure PCTCN2022114385-appb-000090
作为该任务向空闲缓存池申请缓存空间的增益系数,即每当该任务向空闲缓存池申请一个样本的空间时,空闲缓存池将分配
Figure PCTCN2022114385-appb-000091
倍的缓存空间给
Figure PCTCN2022114385-appb-000092
的值与
Figure PCTCN2022114385-appb-000093
呈反相关,且
Figure PCTCN2022114385-appb-000094
此实施例中List中各任务的增益系数可设为<0.8,0.4,0>。
步骤二,计算每个任务在默认缓存分配方案下每个训练批次样本在缓存空间中的平均样本数目和每个任务期望每个训练批次样本在缓存空间中的样本数目;
具体的,包含如下子步骤:
步骤S21,计算每个任务
Figure PCTCN2022114385-appb-000095
在默认的缓存分配方案(即系统预分配情况下)每个训练批次样本在缓存空间中命中的样本数目
Figure PCTCN2022114385-appb-000096
表达式为:
Figure PCTCN2022114385-appb-000097
其中,
Figure PCTCN2022114385-appb-000098
为排序后的任务
Figure PCTCN2022114385-appb-000099
所用数据集包含样本总数,
Figure PCTCN2022114385-appb-000100
为排序后的任务
Figure PCTCN2022114385-appb-000101
的一个训练批次包含的样本数,
Figure PCTCN2022114385-appb-000102
为排序后的任务
Figure PCTCN2022114385-appb-000103
在系统预分配的缓存空间可保存的样本数;
步骤S22,计算每个任务
Figure PCTCN2022114385-appb-000104
期望每个训练批次样本在缓存空间中的样本数目
Figure PCTCN2022114385-appb-000105
表达式为:
Figure PCTCN2022114385-appb-000106
步骤三,如图4所示,基于步骤二中计算得到的两个参数,多并发任务采用缓存动态分配和管理策略并发执行深度学习训练;在多并发任务中,将每个任务的缓存空间彼此隔离,只能存取各自所属缓存空间内的样本,各任务在当前训练周期内,使进入缓存空间的样本尽可能均匀地分布在下一个训练周期的所有训练批次中,列表中位置靠前的任务以更快的速度从空闲缓存池申请空闲的缓存空间,而当空闲缓存池为空时,位置靠后的任务可强制要求列表中位于其前面的其他任务归还部分缓存空间。
所述步骤三包含如下子步骤:
步骤S31,将多并发任务的空闲缓存空间组成一个全局的空闲缓存池,其总大小记为totalMem,每个任务的缓存空间在逻辑上可分为两部分,记为
Figure PCTCN2022114385-appb-000107
Figure PCTCN2022114385-appb-000108
其中
Figure PCTCN2022114385-appb-000109
保存着上一训练周期进入缓存空间而当前训练周期将被使用的样本,
Figure PCTCN2022114385-appb-000110
保存当前训练周期进入缓存而下一训练周期将被使用的样本;其中,初始情况下全局的空闲缓存池totalMem由下述公式计算而出:
Figure PCTCN2022114385-appb-000111
步骤S32,如图5所示,对于任务
Figure PCTCN2022114385-appb-000112
在每个训练周期内持有两个样本访问序列,其中一个指示当前训练周期内样本访问顺序,记为
Figure PCTCN2022114385-appb-000113
另一个指示下一 训练周期内的样本访问顺序,记为
Figure PCTCN2022114385-appb-000114
所述
Figure PCTCN2022114385-appb-000115
从头到尾依次划分成不同的序列片段,每个片段对应一个训练批次,每个片段配置一个计数器,记录训练批次在当前训练周期内进入缓存空间的样本数目,当一个训练周期开始时该任务的所有计数器清零,然后进入步骤S33;
步骤S33,若任务
Figure PCTCN2022114385-appb-000116
请求的样本
Figure PCTCN2022114385-appb-000117
在其缓存空间
Figure PCTCN2022114385-appb-000118
命中,则从
Figure PCTCN2022114385-appb-000119
获取命中的样本,并将空闲缓存池totalMem加一,否则从底层存储系统载入样本;然后进入步骤S34;
步骤S34,在任务
Figure PCTCN2022114385-appb-000120
的下一训练周期内的样本访问顺序
Figure PCTCN2022114385-appb-000121
中检索请求的样本
Figure PCTCN2022114385-appb-000122
计算请求的样本
Figure PCTCN2022114385-appb-000123
在下一训练周期所属的训练批次,记为
Figure PCTCN2022114385-appb-000124
然后获取该训练批次
Figure PCTCN2022114385-appb-000125
的计数器值,记为
Figure PCTCN2022114385-appb-000126
并转入步骤S35;
步骤S35,当totalMem≤0且
Figure PCTCN2022114385-appb-000127
没有空闲空间时,转入步骤S36;当totalMem>0时,若
Figure PCTCN2022114385-appb-000128
则任务
Figure PCTCN2022114385-appb-000129
根据其增益系数从空闲缓存池申请空间给
Figure PCTCN2022114385-appb-000130
(若缓存池为空则申请失败),然后将请求的样本
Figure PCTCN2022114385-appb-000131
插入
Figure PCTCN2022114385-appb-000132
然后
Figure PCTCN2022114385-appb-000133
加一,更新totalMem,并转入步骤S38;若
Figure PCTCN2022114385-appb-000134
Figure PCTCN2022114385-appb-000135
不进入任务
Figure PCTCN2022114385-appb-000136
的缓存空间,并转入步骤S38;
步骤S36,若
Figure PCTCN2022114385-appb-000137
请求的样本
Figure PCTCN2022114385-appb-000138
不进入任务
Figure PCTCN2022114385-appb-000139
的缓存空间,并转 入步骤S38;若
Figure PCTCN2022114385-appb-000140
则转入步骤S37;
步骤S37,若任务
Figure PCTCN2022114385-appb-000141
Figure PCTCN2022114385-appb-000142
含有空闲空间,则样本
Figure PCTCN2022114385-appb-000143
进入
Figure PCTCN2022114385-appb-000144
并转入步骤S38;反之,若任务
Figure PCTCN2022114385-appb-000145
是List列表中的第一个任务(即i=0),则请求的样本
Figure PCTCN2022114385-appb-000146
不进入
Figure PCTCN2022114385-appb-000147
的缓存空间,并转入步骤S38;否则List列表中的上一个任务
Figure PCTCN2022114385-appb-000148
Figure PCTCN2022114385-appb-000149
需提供一个空闲空间给
Figure PCTCN2022114385-appb-000150
具体做法是若
Figure PCTCN2022114385-appb-000151
含有空闲空间,则直接将一个单位的空闲空间移至
Figure PCTCN2022114385-appb-000152
否则随机选择其
Figure PCTCN2022114385-appb-000153
中的一个样本淘汰,将淘汰样本对应的训练批次的计数器减一,然后将空出的缓存空间移至
Figure PCTCN2022114385-appb-000154
并将样本
Figure PCTCN2022114385-appb-000155
插入
Figure PCTCN2022114385-appb-000156
相应的训练批次的计数器加一,转入步骤S38;
步骤S38,任务
Figure PCTCN2022114385-appb-000157
请求的样本
Figure PCTCN2022114385-appb-000158
进入后续的增强阶段和模型训练阶段;
步骤S39,当任务
Figure PCTCN2022114385-appb-000159
执行完当前训练周期的训练后,若所有训练周期的训练都已完成,则任务
Figure PCTCN2022114385-appb-000160
结束;否则,转入步骤S32进行任务
Figure PCTCN2022114385-appb-000161
下一个训练周期的训练。
步骤四,当各任务进入最后一个训练周期时,不再有新的样本数据加入各任务的缓存空间,同时随着缓存空间内的样本数据被逐渐使用消耗,被占用的缓存空间逐步被释放,被释放的缓存空间可被其他尚未结束的任务使用.
与前述一种面向多并发深度学习训练任务的数据缓存方法的实施例相对应,本发 明还提供了一种面向多并发深度学习训练任务的数据缓存装置的实施例。
参见图6,本发明实施例提供的一种面向多并发深度学习训练任务的数据缓存装置,包括一个或多个处理器,用于实现上述实施例中的一种面向多并发深度学习训练任务的数据缓存方法。
本发明一种面向多并发深度学习训练任务的数据缓存装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本发明一种面向多并发深度学习训练任务的数据缓存装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种面向多并发深度学习训练任务的数据缓存方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是风力发电机的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储 卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述,仅为本发明的优选实施案例,并非对本发明做任何形式上的限制。虽然前文对本发明的实施过程进行了详细说明,对于熟悉本领域的人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行同等替换。凡在本发明精神和原则之内所做修改、同等替换等,均应包含在本发明的保护范围之内。

Claims (8)

  1. 一种面向多并发深度学习训练任务的数据缓存方法,其特征在于,包括以下步骤:
    步骤一,对多并发任务中每个任务的样本集,单独执行一个训练周期的预热训练,并采集训练批次样本的特征参数,根据采集到的特征参数,对所有任务进行排序产生列表;
    步骤二,计算每个任务在默认缓存分配方案下每个训练批次样本在缓存空间中的平均样本数目和每个任务期望每个训练批次样本在缓存空间中的样本数目;
    步骤三,基于步骤二中计算得到的两个参数,多并发任务采用缓存动态分配和管理策略并发执行深度学习训练;
    步骤四,当各任务进入最后一个训练周期时,不再有新的样本数据加入各任务的缓存空间,同时随着缓存空间内的样本数据被逐渐使用消耗,被占用的缓存空间逐步被释放,被释放的缓存空间被其他尚未结束的任务使用。
  2. 如权利要求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,对所有任务作一次升序排序,得到有序的任务列表:
    Figure PCTCN2022114385-appb-100001
    并且列表中每个任务
    Figure PCTCN2022114385-appb-100002
    包含参数
    Figure PCTCN2022114385-appb-100003
    作为该任务向空闲缓存池申请缓存空间的增益系数,即每当该任务向空闲缓存池申请一个样本的空间时,空闲缓存池将分配
    Figure PCTCN2022114385-appb-100004
    倍的缓存空间给此任务,同时,
    Figure PCTCN2022114385-appb-100005
    的值与
    Figure PCTCN2022114385-appb-100006
    呈反相关,且
    Figure PCTCN2022114385-appb-100007
    Figure PCTCN2022114385-appb-100008
  3. 如权利要求2所述的一种面向多并发深度学习训练任务的数据缓存方法,其特征在于,所述步骤二具体包含如下子步骤:
    步骤S21,计算每个任务
    Figure PCTCN2022114385-appb-100009
    在默认的缓存分配方案即系统预分配情况下每个训练批次样本在缓存空间中命中的样本数目
    Figure PCTCN2022114385-appb-100010
    表达式为:
    Figure PCTCN2022114385-appb-100011
    Figure PCTCN2022114385-appb-100012
    为排序后的任务
    Figure PCTCN2022114385-appb-100013
    所用数据集包含样本总数,
    Figure PCTCN2022114385-appb-100014
    为排序后的任务
    Figure PCTCN2022114385-appb-100015
    的一个训练批次包含的样本数,
    Figure PCTCN2022114385-appb-100016
    为排序后的任务
    Figure PCTCN2022114385-appb-100017
    在系统预分配的缓存空间可保存的样本数;
    步骤S22,计算每个任务
    Figure PCTCN2022114385-appb-100018
    期望每个训练批次样本在缓存空间中的样本数目
    Figure PCTCN2022114385-appb-100019
    表达式为:
    Figure PCTCN2022114385-appb-100020
  4. 如权利要求3所述的一种面向多并发深度学习训练任务的数据缓存方法,其特征在于,所述步骤三具体包括如下子步骤:
    步骤S31,将多并发任务的空闲缓存空间组成一个全局的空闲缓存池,其总大小记为 totalMem,每个任务的缓存空间在逻辑上可分为两部分,记为
    Figure PCTCN2022114385-appb-100021
    Figure PCTCN2022114385-appb-100022
    其中
    Figure PCTCN2022114385-appb-100023
    保存着上一训练周期进入缓存空间而当前训练周期将被使用的样本,
    Figure PCTCN2022114385-appb-100024
    保存当前训练周期进入缓存而下一训练周期将被使用的样本;其中,初始情况下全局的空闲缓存池totalMem由下述公式计算而出:
    Figure PCTCN2022114385-appb-100025
    步骤S32,对于任务
    Figure PCTCN2022114385-appb-100026
    在每个训练周期内持有两个样本访问序列,其中一个指示当前训练周期内样本访问顺序,记为
    Figure PCTCN2022114385-appb-100027
    另一个指示下一训练周期内的样本访问顺序,记为
    Figure PCTCN2022114385-appb-100028
    所述
    Figure PCTCN2022114385-appb-100029
    从头到尾依次划分成不同的序列片段,每个片段对应一个训练批次,每个片段配置一个计数器,记录训练批次在当前训练周期内进入缓存空间的样本数目,当一个训练周期开始时该任务的所有计数器清零,然后进入步骤S33;
    步骤S33,若任务
    Figure PCTCN2022114385-appb-100030
    请求的样本
    Figure PCTCN2022114385-appb-100031
    在其缓存空间
    Figure PCTCN2022114385-appb-100032
    命中,则从
    Figure PCTCN2022114385-appb-100033
    获取命中的样本,并将空闲缓存池totalMem加一,否则从底层存储系统载入样本;然后进入步骤S34;
    步骤S34,在任务
    Figure PCTCN2022114385-appb-100034
    的下一训练周期内的样本访问顺序
    Figure PCTCN2022114385-appb-100035
    中检索请求的样本
    Figure PCTCN2022114385-appb-100036
    计算请求的样本
    Figure PCTCN2022114385-appb-100037
    在下一训练周期所属的训练批次,记为
    Figure PCTCN2022114385-appb-100038
    然后获取该训练批次
    Figure PCTCN2022114385-appb-100039
    的计数器值,记为
    Figure PCTCN2022114385-appb-100040
    并转入步骤S35;
    步骤S35,当totalMem≤0且
    Figure PCTCN2022114385-appb-100041
    没有空闲空间时,转入步骤S36;当totalMem>0时,若
    Figure PCTCN2022114385-appb-100042
    则任务
    Figure PCTCN2022114385-appb-100043
    根据其增益系数从空闲缓存池申请空间给
    Figure PCTCN2022114385-appb-100044
    (若缓存池为空则申请失败),然后将请求的样本
    Figure PCTCN2022114385-appb-100045
    插入
    Figure PCTCN2022114385-appb-100046
    然后
    Figure PCTCN2022114385-appb-100047
    加一,更新totalMem,并转入步骤S38;若
    Figure PCTCN2022114385-appb-100048
    Figure PCTCN2022114385-appb-100049
    不进入任务
    Figure PCTCN2022114385-appb-100050
    的缓存空间,并转入步骤S38;
    步骤S36,若
    Figure PCTCN2022114385-appb-100051
    请求的样本
    Figure PCTCN2022114385-appb-100052
    不进入任务
    Figure PCTCN2022114385-appb-100053
    的缓存空间,并转入步骤S38;若
    Figure PCTCN2022114385-appb-100054
    则转入步骤S37;
    步骤S37,若任务
    Figure PCTCN2022114385-appb-100055
    Figure PCTCN2022114385-appb-100056
    含有空闲空间,则样本
    Figure PCTCN2022114385-appb-100057
    进入
    Figure PCTCN2022114385-appb-100058
    并转入步骤S38;反之,若任务
    Figure PCTCN2022114385-appb-100059
    是List列表中的第一个任务(即i=0),则请求的样本
    Figure PCTCN2022114385-appb-100060
    不进入
    Figure PCTCN2022114385-appb-100061
    的缓存空间,并转入步骤S38;否则List列表中的上一个任务
    Figure PCTCN2022114385-appb-100062
    Figure PCTCN2022114385-appb-100063
    需提供一个空闲空间给
    Figure PCTCN2022114385-appb-100064
    具体做法是若
    Figure PCTCN2022114385-appb-100065
    含有空闲空间,则直接将一个单位的空闲空间移至
    Figure PCTCN2022114385-appb-100066
    否则随机选择其
    Figure PCTCN2022114385-appb-100067
    中的一个样本淘汰,将淘汰样本对应的训练批次的计数器减一,然后将空出的缓存空间移至
    Figure PCTCN2022114385-appb-100068
    并将样本
    Figure PCTCN2022114385-appb-100069
    插入
    Figure PCTCN2022114385-appb-100070
    相应的训练批次的计数器加一,转入步骤S38;
    步骤S38,任务
    Figure PCTCN2022114385-appb-100071
    请求的样本
    Figure PCTCN2022114385-appb-100072
    进入后续的增强阶段和模型训练阶段;步骤S39,当任务
    Figure PCTCN2022114385-appb-100073
    执行完当前训练周期的训练后,若所有训练周期的训练都已完成,则任务
    Figure PCTCN2022114385-appb-100074
    结束;否则,转入步骤S32进行任务
    Figure PCTCN2022114385-appb-100075
    下一个训练周期的训练。
  5. 如权利要求1所述的一种面向多并发深度学习训练任务的数据缓存方法,其特征在于,所述多并发任务中的每个任务的缓存空间彼此隔离,只能存取各自的缓存空间内的样本。
  6. 如权利要求1所述的一种面向多并发深度学习训练任务的数据缓存方法,其特征在于,所述每个任务在其当前训练周期内,进入缓存空间的样本相对均匀地分布在下一个训练周期的所有训练批次中,列表中位置靠前的任务以更快的速度从空闲缓存池申请空闲的缓存空间,而当空闲缓存池为空时,位置靠后的任务可强制要求列表中位于其前面的其他任务归还部分缓存空间。
  7. 一种面向多并发深度学习训练任务的数据缓存装置,其特征在于,包括一个或多个处理器,用于实现权利要求1-6中任一项所述的一种面向多并发深度学习训练任务的数据缓存方法。
  8. 一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1-6中任一项所述的一种面向多并发深度学习训练任务的数据缓存方法。
PCT/CN2022/114385 2022-06-07 2022-08-24 一种面向多并发深度学习训练任务的数据缓存方法和装置 WO2023236357A1 (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117555697A (zh) * 2024-01-11 2024-02-13 之江实验室 一种面向分布式训练的缓存加载系统、方法、装置及设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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