CN117130693A - 张量卸载方法、装置、计算机设备及存储介质 - Google Patents
张量卸载方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117130693A CN117130693A CN202311397785.6A CN202311397785A CN117130693A CN 117130693 A CN117130693 A CN 117130693A CN 202311397785 A CN202311397785 A CN 202311397785A CN 117130693 A CN117130693 A CN 117130693A
- Authority
- CN
- China
- Prior art keywords
- unloading
- tensor
- determining
- video memory
- delay
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004364 calculation method Methods 0.000 claims abstract description 124
- 238000012549 training Methods 0.000 claims abstract description 61
- 238000012216 screening Methods 0.000 claims abstract description 11
- 239000010410 layer Substances 0.000 claims description 144
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 16
- 230000001934 delay Effects 0.000 claims description 13
- 230000002441 reversible effect Effects 0.000 claims description 13
- 239000002356 single layer Substances 0.000 claims description 13
- 230000002085 persistent effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 10
- 125000003275 alpha amino acid group Chemical group 0.000 description 9
- 150000001875 compounds Chemical class 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44594—Unloading
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/509—Offload
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种张量卸载方法、装置、计算机设备及存储介质。所述方法包括:获取张量特征信息,所述张量特征信息包括待训练模型每层的显存容量需求、计算间隔以及计算延迟信息;基于预设卸载策略和所述显存容量需求确定显存约束条件,基于所述预设卸载策略和计算间隔确定卸载时间约束条件,所述预设卸载策略包括主存卸载和重计算卸载;基于所述显存约束条件和卸载时间约束条件筛选所述预设卸载策略,确定多个候选卸载策略;基于所述计算延迟信息确定每个候选卸载策略的额外计算延迟,基于所述额外计算延迟确定目标卸载策略,并基于所述目标卸载策略卸载张量。本申请在对模型训练精度影响较小或无影响的情况下,通过张量卸载来增加显存的有效容量。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种张量卸载方法、装置、计算机设备及存储介质。
背景技术
人工智能技术(Artificial Intelligence,AI)作为智能学科重要的组成部分,在图像识别、语音处理、机器翻译、游戏、医疗保健等诸多领域得到了广泛应用,AI模型也随之不断发展。但是随着AI模型规模的不断增加,模型参数、中间变量等张量的显存需求也越来越高。另一方面,随着AI芯片计算能力的快速增加,需要不断通过增加批量(batch)大小来充分发挥AI芯片的算力,但是批量大小的增加又受限于显存大小。因此,如何提高显存利用率对于AI模型的训练有着重要意义。
在传统技术中,通常使用剪枝、量化等模型压缩方法来减少显存的使用量,从而减少显存需求。但是,模型压缩会造成模型训练和推理精度的降低,并且会引入额外的计算开销。
基于此,传统技术中亟需一种在对模型训练精度影响较小的情况下,增加显存有效容量的方法。
发明内容
基于此,有必要针对上述技术问题,提供一种能够在对AI模型训练精度影响较小的情况下,增加显存有效容量的张量卸载方法、装置、计算机设备及存储介质。
第一方面,本申请提供了一种张量卸载方法。所述方法包括:
获取张量特征信息,所述张量特征信息包括待训练模型每层的显存容量需求、计算间隔以及计算延迟信息;
基于预设卸载策略和所述显存容量需求确定显存约束条件,基于所述预设卸载策略和计算间隔确定卸载时间约束条件,所述预设卸载策略包括主存卸载和重计算卸载;
基于所述显存约束条件和卸载时间约束条件筛选所述预设卸载策略,确定多个候选卸载策略;
基于所述计算延迟信息确定每个候选卸载策略的额外计算延迟,基于所述额外计算延迟确定目标卸载策略,并基于所述目标卸载策略卸载张量。
在其中一个实施例中,所述计算间隔基于以下方式确定:
确定目标层的前向计算延迟以及反向计算延迟之和,作为当前层的计算延迟信息,其中,所述目标层包括沿前向计算方向当前层之后的所有层,所述前向计算方向包括所述待训练模型的输入端至输出端的方向。
在其中一个实施例中,所述显存容量需求基于所述张量的数据信息确定,所述数据信息包括数据类型信息、数据形状信息和数据维度信息。
在其中一个实施例中,所述基于预设卸载策略和所述显存容量需求确定显存约束条件包括:
基于所述预设卸载策略确定所述待训练模型的张量卸载总量;
基于所述待训练模型每层的显存容量需求确定所述待训练模型显存容量的总需求;
所述显存约束条件为,所述张量卸载总量不小于所述显存容量总需求。
在其中一个实施例中,所述基于预设卸载策略和所述显存容量需求确定显存约束条件还包括:
基于所述预设卸载策略确定显存剩余容量;
确定多个显存容量需求中的最大单层显存容量需求;
所述显存约束条件为,所述显存剩余容量不小于所述最大单层显存容量需求。
在其中一个实施例中,所述基于所述预设卸载策略和计算间隔确定卸载时间约束条件包括:
基于所述预设卸载策略确定所述待训练模型每层的张量主存卸载量;
基于所述张量主存卸载量确定第一时间阈值;
所述卸载时间约束条件为,所述计算间隔不小于所述第一时间阈值。
在其中一个实施例中,所述基于所述预设卸载策略和计算间隔确定卸载时间约束条件还包括:
基于所述预设卸载策略确定所述待训练模型的张量主存卸载总量;
基于所述张量主存卸载总量确定第二时间阈值;
基于所述预设卸载策略确定主存卸载层,并基于所述计算间隔确定主存卸载层计算间隔,所述主存卸载层包括所述待训练模型中至少有一个张量卸载至主存的层;
所述卸载时间约束条件为,所述主存卸载层计算间隔不小于所述第二时间阈值。
在其中一个实施例中,所述张量包括常驻张量以及临时张量,所述常驻张量包括训练完成之前计算所需的持续张量,所述临时张量包括单次前后向计算所需张量,所述预设卸载策略基于以下方式确定:
确定所述常驻张量的预设卸载策略包括主存卸载;
确定所述临时张量的预设卸载策略包括主存卸载和/或重计算卸载。
在其中一个实施例中,所述计算延迟信息包括重计算延迟,所述预设卸载策略还基于以下方式确定:
若所述计算间隔不小于卸载传输延迟,则确定所述张量的预设卸载策略包括主存卸载,所述卸载传输延迟包括显存至主存的传输延迟;
若所述计算间隔不小于所述重计算延迟,且小于所述卸载传输延迟,则确定所述张量的预设卸载策略包括重计算卸载。
在其中一个实施例中,在所述基于所述目标卸载策略卸载张量之后,还包括:
确定当前可用显存容量与每轮次延迟时间,所述每轮次延迟时间包括所述待训练模型单次前后向计算的实际延迟时间;
基于所述每层的计算延迟信息确定每轮次延迟需求,所述每轮次延迟需求包括所述待训练模型单次前后向计算的延迟需求;
若所述每轮次延迟时间大于所述每轮次延迟需求,且需求显存容量不大于所述可用显存容量,则基于所述需求显存容量释放显存,其中,所述需求显存容量基于所述每轮次延迟时间和每轮次延迟需求确定。
在其中一个实施例中,所述确定当前可用显存容量包括:
基于所述目标卸载策略确定当前显存剩余容量;
若所述每轮次延迟时间小于所述每轮次延迟需求,则基于所述每轮次延迟时间和每轮次延迟需求确定可释放显存容量;
基于所述当前显存剩余容量和可释放显存容量确定所述可用显存容量。
第二方面,本申请还提供了一种张量卸载装置。所述装置包括:
张量特征信息获取模块,用于获取张量特征信息,所述张量特征信息包括待训练模型每层的显存容量需求、计算间隔以及计算延迟信息;
约束条件确定模块,用于基于预设卸载策略和所述显存容量需求确定显存约束条件,基于所述预设卸载策略和计算间隔确定卸载时间约束条件,所述预设卸载策略包括主存卸载和重计算卸载;
候选卸载策略确定模块,用于基于所述显存约束条件和卸载时间约束条件筛选所述预设卸载策略,确定多个候选卸载策略;
目标卸载策略确定模块,用于基于所述计算延迟信息确定每个候选卸载策略的额外计算延迟,基于所述额外计算延迟确定目标卸载策略,并基于所述目标卸载策略卸载张量。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一张量卸载方法所述的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一张量卸载方法所述的步骤。
上述张量卸载方法、装置、计算机设备及存储介质,通过获取张量特征信息,所述张量特征信息包括待训练模型每层的显存容量需求、计算间隔以及计算延迟信息;基于预设卸载策略和所述显存容量需求确定显存约束条件,基于所述预设卸载策略和计算间隔确定卸载时间约束条件,所述预设卸载策略包括主存卸载和重计算卸载;基于所述显存约束条件和卸载时间约束条件筛选所述预设卸载策略,确定多个候选卸载策略;基于所述计算延迟信息确定每个候选卸载策略的额外计算延迟,基于所述额外计算延迟确定目标卸载策略,并基于所述目标卸载策略卸载张量。本申请通过基于预设卸载策略和张量特征信息确定显存约束条件和卸载时间约束条件,对预设卸载策略进行筛选确定候选卸载策略,既从显存容量的角度保证了模型训练的容量空间,也从卸载时间的角度保证了卸载张量的及时取回,有效降低了张量卸载对模型训练的影响。再基于计算延迟信息确定额外计算延迟,进而确定目标卸载策略进行张量卸载,能够进一步减少张量卸载后的取回时间,在对模型训练精度影响较小或无影响的情况下,通过张量卸载来增加显存的有效容量,进而提高了显存的有效利用率。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为一个实施例中张量卸载方法的应用环境图;
图2为一个实施例中张量卸载方法的流程示意图;
图3为一个实施例中卸载分区的示意图;
图4为一个实施例中显存管理模块的工作示意图;
图5为一个实施例中张量卸载装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
以下所使用的术语“模块”、“单元”等为可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以硬件来实现,但是软件,或者软件和硬件的组合的实现也是可能并被构想的。
本申请实施例提供的张量卸载方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102获取张量特征信息,所述张量特征信息包括待训练模型每层的显存容量需求、计算间隔以及计算延迟信息,并将张量特征信息发送至服务器104。服务器104基于预设卸载策略和所述显存容量需求确定显存约束条件,基于所述预设卸载策略和计算间隔确定卸载时间约束条件,所述预设卸载策略包括主存卸载和重计算卸载。服务器104基于所述显存约束条件和卸载时间约束条件筛选所述预设卸载策略,确定多个候选卸载策略。服务器104基于所述计算延迟信息确定每个候选卸载策略的额外计算延迟,基于所述额外计算延迟确定目标卸载策略,并将目标卸载策略发送至终端102。终端102基于所述目标卸载策略卸载张量。上述步骤中由服务器104执行的步骤,也可以由终端102执行,或终端102执行的步骤也可以有服务器104执行。本申请对此不作限制。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种张量卸载方法,以该方法应用于图1中的应用场景为例进行说明,包括以下步骤:
S201:获取张量特征信息,所述张量特征信息包括待训练模型每层的显存容量需求、计算间隔以及计算延迟信息。
本申请实施例中,待训练模型包括基于双向流水计算并行的AI模型,如基于深度学习的神经网络模型。待训练模型包括多个层的数据结构。双向流水计算并行是指,待训练模型在由输入端的初始层逐层前向迭代计算至输出端的末层后,再由末层反向逐层迭代计算至初始层完成一轮次的任务训练。经过多轮次的训练过程后,待训练模型收敛完成训练。
本申请实施例中,张量包括待训练模型在训练过程中所使用的数据。在一些实施例中,基于存活时间对张量进行分类,张量可以包括常驻张量和临时张量。常驻张量包括训练完成之前计算所需的持续张量,也即待训练模型在每次前向和反向迭代计算过程中均需用到的张量,如待训练模型的模型参数等。临时张量包括单次前后向计算所需张量,具体的,临时张量包括在每一轮次的训练过程中使用的张量,如激活值等;还可以包括一次性张量,即计算完成后可立即释放的张量,如每层的输入张量等。
本申请实施例中,张量特征信息包括待训练模型每层的显存容量需求、计算间隔以及计算延迟信息。在一些实施例中,显存容量需求基于所述张量的数据信息确定,所述数据信息包括数据类型信息、数据形状信息和数据维度信息。张量的数据类型信息dtype可以包括64位浮点数fp64,或32位浮点数fp32等。基于张量的数据类型信息dtype和数据形状信息shape可以确定张量的单位数据量大小信息。再基于张量的单位数据量大小信息和数据维度信息可以确定显存容量需求。在一些具体实施例中,若确定张量的单位数据量大小信息为size(dtype),且数据维度信息为三维向量(m,n,k),则显存容量需求S可以根据式(1)确定:
S=size(dtype)×m×n×k (1)
在一些实施例中,计算延迟信息可以包括当前层的前向计算延迟信息和反向计算延迟信息。前向计算延迟信息包括当前层计算延迟以及与下一层的张量传递延迟之和,反向计算延迟信息包括当前层计算延迟以及与前一层的张量传递延迟之和,所述下一层指当前层沿前向计算方向的下一相邻层,所述前一层指当前层沿前向计算方向的上一相邻层。在一些具体实施例中,例如,若某待训练模型包括沿输入端至输出端的前向计算方向共四层,当前层为第二层,则前向延迟信息包括前向计算时第二层的计算延迟、第二层向第三层传递张量的时间延迟之和,反向延迟信息包括反向计算时第二层的计算延迟、第二层向第一层传递张量的时间延迟之和。
在一些具体实施例中,获取待训练模型每层的算子形状信息、算子类型信息以及硬件特征信息后,可以基于延迟计算模型确定计算延迟信息。硬件特征信息可以包括底层计算芯片的算力指标、L2级缓存大小、片内互联带宽等。延迟计算模型可以基于初始模型训练得到,初始模型可以包括K最邻近(KNN,K-NearestNeighbor)分类算法、决策树算法,初始模型的训练方法可以参考现有技术中对相应模型的训练方法,本申请不再赘述。
在一些实施例中,所述计算间隔基于以下方式确定:确定目标层的前向计算延迟以及反向计算延迟之和,作为当前层的计算延迟信息,其中,所述目标层包括沿前向计算方向当前层之后的所有层,所述前向计算方向包括所述待训练模型的输入端至输出端的方向。在一些具体实施例中,例如,若某待训练模型包括沿输入端至输出端的前向计算方向共四层,当前层为第二层,则计算间隔包括第三层、第四层的前向计算延迟与第三层、第四层的反向计算延迟之和。
S203:基于预设卸载策略和所述显存容量需求确定显存约束条件,基于所述预设卸载策略和计算间隔确定卸载时间约束条件,所述预设卸载策略包括主存卸载和重计算卸载。
S205:基于所述显存约束条件和卸载时间约束条件筛选所述预设卸载策略,确定多个候选卸载策略。
本申请实施例中,预设卸载策略包括主存卸载和重计算卸载。主存卸载是指将张量卸载至主存中,并在该张量下一次计算需求之前取回显存的策略。重计算卸载是指在该层完成前向计算后删除张量,并在该层进行反向计算之前重新计算得到该张量的卸载策略。在其他实施例中,预设卸载策略还可以包括驻留显存,驻留显存即不卸载该张量,保留在显存中的策略。对于每层不同的张量类型,可以相应设置不同的卸载策略。所述预设卸载策略基于以下方式确定:
S301:确定所述常驻张量的预设卸载策略包括主存卸载。
S303:确定所述临时张量的预设卸载策略包括主存卸载和/或重计算卸载。
可以理解的,对于使用频率较高的常驻张量,在待训练模型整个训练过程中均可用到,为避免降低对待训练模型训练精度的影响,可以设置相应预设卸载策略为驻留显存和/或主存卸载。对于使用频率较低的临时张量,可以基于该层的计算延迟信息确定预设卸载策略为主存卸载和/或重计算卸载。
在一些具体实施例中,若某一层的张量总数为10000,则根据张量类型的不同,预设卸载策略可以为4000个张量进行主存卸载,3000个张量进行重计算卸载,3000个张量驻留显存;也可以包括6000个张量进行主存卸载,2000个张量进行重计算卸载,2000个张量驻留显存等等。本申请实施例中预设卸载策略可以根据实际需求确定,确定的预设卸载策略的数量也可以自行设置,本申请对此不作限制。
本申请实施例中,对于每一个预设卸载策略,可以相应基于预设卸载策略和所述显存容量需求确定显存约束条件,从显存容量的角度保证了模型训练具有足够的容量空间。也可以基于所述预设卸载策略和计算间隔确定卸载时间约束条件,从卸载时间的角度保证了卸载张量的及时取回,以减小或避免张量卸载对于待训练模型训练精度的影响。
在确定多个预设卸载策略以及显存约束条件和卸载时间约束条件后,可以进一步对多个预设卸载策略进行筛选,确定满足显存约束条件和卸载时间约束条件的预设卸载策略,作为候选卸载策略。
S207:基于所述计算延迟信息确定每个候选卸载策略的额外计算延迟,基于所述额外计算延迟确定目标卸载策略,并基于所述目标卸载策略卸载张量。
本申请实施例中,计算延迟信息可以包括重计算延迟。在确定候选卸载策略后,可以根据式(2)确定每个候选卸载策略的额外计算延迟cost com :
(2)
式(2)中,第一决策变量x i (i=1或0)表示该候选卸载策略中张量是否需要卸载,i=1表示需要被卸载,i=0表示驻留显存。第二决策变量y i (i=1或0)表示张量的卸载策略,i=1表示主存卸载,i=0表示重计算卸载。T i 表示第i个张量,size(T i )表示第i个张量的张量大小。B memory 表示显存和主存之间的拷贝带宽。T re-computing 表示计算延迟信息,具体为重计算延迟,即在反向计算中重新计算中间激活值等中间张量的计算时间。k表示临时张量,即生命周期是每轮次训练的张量总数,t表示常驻张量,即持续整个训练过程的张量总数。
本申请实施例中,在确定每个候选卸载策略的额外计算延迟后,可以基于所述额外计算延迟确定目标卸载策略。在一些具体实施例中,可以将所有额外计算延迟进行排序,选择预设数量的额外计算延迟最低的候选卸载策略,再基于实际需求或随机选择目标卸载策略。也可以直接选择额外计算延迟最低的候选卸载策略作为目标卸载策略。基于目标卸载策略卸载张量。
本申请通过基于预设卸载策略和张量特征信息确定显存约束条件和卸载时间约束条件,对预设卸载策略进行筛选确定候选卸载策略,既从显存容量的角度保证了模型训练的容量空间,也从卸载时间的角度保证了卸载张量的及时取回,有效降低了张量卸载对模型训练的影响。再基于计算延迟信息确定额外计算延迟,进而确定目标卸载策略进行张量卸载,能够进一步减少张量卸载后的取回时间,在对模型训练精度影响较小或无影响的情况下,通过张量卸载来增加显存的有效容量,进而提高了显存的有效利用率。
下面通过本申请实施例说明两种显存约束条件的确定方法,两种方法可以择一使用,也可以同时使用,本申请对此不作限制。
在一些实施例中,所述基于预设卸载策略和所述显存容量需求确定显存约束条件包括:
S401:基于所述预设卸载策略确定所述待训练模型的张量卸载总量。
S403:基于所述待训练模型每层的显存容量需求确定所述待训练模型显存容量的总需求。
S405:所述显存约束条件为,所述张量卸载总量不小于所述显存容量总需求。
本申请实施例中,基于预设卸载策略可以确定待训练模型的张量卸载总量,即该预设卸载策略确定卸载张量的总大小。具体的,基于预设卸载策略可以确定主存卸载的张量与重计算卸载的张量之和,再乘以相应卸载张量的大小即可确定张量卸载总量。基于所述待训练模型每层的显存容量需求确定所述待训练模型显存容量的总需求,即每层的显存容量需求乘以待训练模型的总层数可以得到显存容量的总需求GraphicMemory offload 。所述显存约束条件为,所述张量卸载总量不小于所述显存容量总需求,表示为式(3):
(3)
式(3)中,表示张量卸载总量,size(T i )表示第i个张量的张量大小,n表示卸载张量的总数,GraphicMemory offload 表示显存容量的总需求。通过该显存容量约束条件,可以在卸载张量后使显存的容量足以完成目标模型的训练,增加了显存的有效容量,有效提高了显存的有效利用率。
在一些实施例中,所述基于预设卸载策略和所述显存容量需求确定显存约束条件还包括:
S501:基于所述预设卸载策略确定显存剩余容量。
S503:确定多个显存容量需求中的最大单层显存容量需求。
S505:所述显存约束条件为,所述显存剩余容量不小于所述最大单层显存容量需求。
本申请实施例中,基于所述预设卸载策略确定显存剩余容量可以包括,基于所述预设卸载策略确定所述待训练模型的张量卸载总量,将张量卸载总量作为显存剩余容量,或将张量卸载总量与卸载前显存空余容量之和作为显存剩余容量。确定多个显存容量需求中的最大单层显存容量需求,也即确定待训练模型每层的显存容量需求中最大的显存容量需求,最大单层显存容量需求Mem min 可以表示为式(4):
(4)
式(4)中,表示待训练模型第i层的显存容量需求,m表示待训练模型的层数。显存约束条件为,显存剩余容量不小于最大单层显存容量需求。通过设置该显存约束条件,可以使待训练模型的最小显存容量需求可以至少满足单层训练所需的显存大小。通过设置该显存约束条件,可以使得显存容量能够满足待训练模型任一单层训练的过程,若能够满足及时卸载张量以及及时取回或重计算已卸载的张量,则能够满足待训练模型的训练过程。本申请实施例可以在满足待训练模型训练所需显存容量的情况下,进一步增加显存的有效容量,有效提高了显存的有效利用率。
下面通过本申请实施例说明两种卸载时间约束条件的确定方法,两种方法可以择一使用,也可以同时使用,本申请对此不作限制。
在一些实施例中,所述基于所述预设卸载策略和计算间隔确定卸载时间约束条件包括:
S601:基于所述预设卸载策略确定所述待训练模型每层的张量主存卸载量。
S603:基于所述张量主存卸载量确定第一时间阈值。
S605:所述卸载时间约束条件为,所述计算间隔不小于所述第一时间阈值。
本申请实施例中,可以根据预设卸载策略确定待训练模型每层卸载至主存的张量数量,进而再根据相应每个卸载张量的大小可以确定每层的张量主存卸载量。基于张量主存卸载量可以根据式(5)确定第一时间阈值t 1:
t 1=size(T i )/B memory (5)
式(5)中,size(T i )表示第i个张量的张量大小,B memory 表示显存和主存之间的拷贝带宽。卸载时间约束条件为,计算间隔不小于第一时间阈值t 1,卸载时间约束条件可以表示为式(6):
T free (T i )≥t 1 (6)
式(6)中,T free (T i )表示第i个张量T i 的计算间隔。可以理解的,本申请所述第i个张量T i 的计算间隔,是指该张量所在层的计算间隔。通过确定第一时间阈值,进而设置卸载时间约束条件,可以使每层卸载至主存的张量在下一次计算需求之前及时取回,以减小对待检测模型训练的影响。
在一些实施例中,所述基于所述预设卸载策略和计算间隔确定卸载时间约束条件还包括:
S701:基于所述预设卸载策略确定所述待训练模型的张量主存卸载总量。
S703:基于所述张量主存卸载总量确定第二时间阈值。
S705:基于所述预设卸载策略确定主存卸载层,并基于所述计算间隔确定主存卸载层计算间隔,所述主存卸载层包括所述待训练模型中至少有一个张量卸载至主存的层。
S707:所述卸载时间约束条件为,所述主存卸载层计算间隔不小于所述第二时间阈值。
本申请实施例中,可以根据预设卸载策略确定待训练模型所有层卸载至主存的张量数量,进而再根据相应每个卸载张量的大小可以确定张量主存卸载总量。基于张量主存卸载总量可以根据式(7)确定第二时间阈值:
t 2=/B memory (7)
式(7)中,m表示待训练模型卸载至主存的张量总数,size(T i )表示第i个张量的张量大小,B memory 表示显存和主存之间的拷贝带宽。
基于预设卸载策略确定主存卸载层,主存卸载层包括所述待训练模型中至少有一个张量卸载至主存的层,即若某层有张量被卸载至主存,则确定该层为主存卸载层。基于计算间隔确定主存卸载层计算间隔可以包括,在多个主存卸载层中确定最大的主存卸载层计算间隔。卸载时间约束条件为,主存卸载层计算间隔不小于第二时间阈值,可以表示为式(8)。
max(T free (T 1),…,T free (T m ))≥t 2 (8)
式(8)中,m表示待训练模型的层数,T free (T m )表示待训练模型第m层张量的计算间隔。通过确定第二时间阈值,进而设置卸载时间约束条件,能够使所有卸载至主存的张量在下一次计算需求之前及时取回,避免对待检测模型训练的影响。
S801:下面通过本申请实施例给出另一种确定预设卸载策略的方法。所述计算延迟信息包括重计算延迟,所述预设卸载策略还基于以下方式确定。
S803:若所述计算间隔不小于卸载传输延迟,则确定所述张量的预设卸载策略包括主存卸载,所述卸载传输延迟包括显存至主存的传输延迟。
S805:若所述计算间隔不小于所述重计算延迟,且小于所述卸载传输延迟,则确定所述张量的预设卸载策略包括重计算卸载。
本申请实施例中,对于在反向计算中需要再次使用的激活值等临时张量,可以通过重计算卸载、主存卸载等方法减少显存需求。根据不同层的计算间隔可以将待训练模型的所有层划分为三个卸载分区,进而对每个分区中层的张量选择适配的预设卸载策略。三个卸载分区可以包括显存驻留区、重计算区和主存卸载区,如图3所示。可以理解的,靠近输出端的层计算间隔较小,因为在待检测模型的训练过程中,靠近输出端的层完成前向损失值计算后,会较快开始反向计算。将靠近输出端的层的张量驻留在显存中,可以减少显存访问延迟,从而满足这些层的计算间隔要求。将显存驻留区之外的层再划分为重计算区和主存卸载区。沿反向计算方向重计算区位于显存驻留区之后,主存卸载区位于重计算区之后。重计算区的层的张量可以选择重计算卸载策略,在完成前向计算后立即释放该张量的显存,反向计算时再重新计算生成该层的张量。主存卸载区则是将相应层的张量卸载到主存中,在反向计算之前再加载回来。
如图3所示,若计算间隔不小于卸载传输延迟,则将相应层划分为主存卸载区,确定主存卸载区相应层张量的预设卸载策略包括主存卸载,其中,卸载传输延迟包括显存至主存的传输延迟。若计算间隔不小于重计算延迟,且小于卸载传输延迟,则将相应层划分为重计算区,确定重计算区相应层张量的预设卸载策略包括重计算卸载。若计算间隔小于重计算延迟,则将相应层划分为显存驻留区,确定显存驻留区相应层的张量不卸载,驻留在显存中。通过合理设置预设卸载策略,一方面能够减小后续筛选的算力要求,另一方面也能使最终确定的目标筛选策略更加合理,进一步提高了显存的有效利用率。
为进一步提高显存利用率,在完成待训练模型的一轮次或多轮次训练后,可以根据实际显存需求进一步优化显存空间的分配。在一些实施例中,在所述基于所述目标卸载策略卸载张量之后,还包括:
S901:确定当前可用显存容量与每轮次延迟时间,所述每轮次延迟时间包括所述待训练模型单次前后向计算的实际延迟时间。
S903:基于所述每层的计算延迟信息确定每轮次延迟需求,所述每轮次延迟需求包括所述待训练模型单次前后向计算的延迟需求。
S905:若所述每轮次延迟时间大于所述每轮次延迟需求,且需求显存容量不大于所述可用显存容量,则基于所述需求显存容量释放显存,其中,所述需求显存容量基于所述每轮次延迟时间和每轮次延迟需求确定。
本申请实施例中,在待训练模型完成一轮次或多轮次训练后,可以获取该轮次训练所消耗的实际时间——每轮次延迟时间T real ,即单次前后向计算的实际延迟时间。基于每层的计算延迟信息确定每轮次延迟需求可以包括,基于每层的计算延迟信息确定待训练模型的总延迟需求T total ,再根据式(9)确定每轮次延迟需求T epoch :
T epoch =T total /n (9)
式(9)中,n表示待训练模型预计训练收敛的训练轮次。若每轮次延迟时间T real 大于每轮次延迟需求T epoch ,则说明该任务训练的实际延迟大于预期延迟,可以申请可用显存容量用于下一轮次的训练。若需求显存容量不大于可用显存容量,则说明可用显存容量充足,可以根据需求显存容量释放显存。其中,需求显存容量基于每轮次延迟时间T real 和每轮次延迟需求T epoch 确定。在一些具体实施例中,需求显存容量可以根据式(10)确定:
需求显存容量=β×(|T epoch -T real |/T real )×已分配显存 (10)
式(10)中,T epoch 表示每轮次延迟需求,T real 表示每轮次延迟时间,β表示第一缩放因子,已分配显存为该轮次训练任务已分配的显存。需求显存容量为下一轮次训练所需的显存容量。可以理解的,若需求显存容量大于可用显存容量,则说明可用显存容量不足,则拒绝该可用显存申请请求,不释放显存。
在一些实施例中,所述确定当前可用显存容量包括:
S1001:基于所述目标卸载策略确定当前显存剩余容量。
S1003:若所述每轮次延迟时间小于所述每轮次延迟需求,则基于所述每轮次延迟时间和每轮次延迟需求确定可释放显存容量。
S1005:基于所述当前显存剩余容量和可释放显存容量确定所述可用显存容量。
本申请实施例中,基于目标卸载策略可以确定当前释放的张量总大小,进而可以确定当前显存剩余容量。具体的,可以直接确定当前释放的张量总大小为当前显存剩余容量,也可以确定释放的张量总大小与历史显存空闲容量之和为当前显存剩余容量。若每轮次延迟时间T real 小于每轮次延迟需求T epoch ,则说明该训练任务轮次的实际训练延迟小于预期延迟需求,在必要时可以释放一部分显存给其他训练任务的轮次。基于每轮次延迟时间T real 和每轮次延迟需求T epoch 确定可释放显存容量。在一些具体实施例中,可释放显存容量可以根据式(11)确定:
可释放显存容量=α×(|T epoch -T real |/T real )×已分配显存 (11)
式(11)中,T epoch 表示每轮次延迟需求,T real 表示每轮次延迟时间,α表示第二缩放因子,已分配显存为该轮次训练任务已分配的显存。在一些实施例中,可释放显存容量不会立刻被释放,若其他训练任务轮次申请分配显存容量且当前显存剩余容量不足时,才会将可释放显存容量转分配给其他轮次训练任务。
基于当前显存剩余容量和可释放显存容量确定可用显存容量,可以包括,确定当前显存剩余容量和可释放显存容量之和为可用显存容量。也可以包括,确定当前显存剩余容量和部分可释放显存容量之和为可用显存容量,其中部分可释放显存容量可以自行设置,如80%可释放显存容量等。
在一些具体实施例中,可以通过显存管理模块实现上述显存空间分配的方法。如图4所示,显存管理模块包括训练结果跟踪单元、显存分配调整单元显存分配管理单元。显存分配调整单元确定每个训练任务轮次分配的显存、每个训练任务轮次分配的总内存,进而确定当前显存剩余容量,发送至显存分配管理单元。训练结果跟踪单元在确定每轮次延迟时间T real 和每轮次延迟需求T epoch 之后,将二者进行比较。若T real <T epoch ,则确定可释放显存容量发送至显存分配管理单元。显存分配管理单元管理显存空闲池,基于当前显存剩余容量和可释放显存容量确定显存空闲池的可用显存容量。训练结果跟踪单元在T real >T epoch 的情况下,向显存分配调整单元发送显存释放请求指令,显存分配调整单元确定需求显存容量发送至显存分配管理单元。显存分配管理单元确定需求显存容量是否大于显存空闲池的可用显存容量,若大于则反馈拒绝分配指令;若基于需求显存容量释放显存。训练结果跟踪单元在T rea= T epoch 的情况下不动作。
本申请实施例中,在完成待训练模型的一轮次或多轮次训练后,根据实际显存需求和显存可用容量进一步优化显存空间的分配,在降低对模型训练影响的同时进一步增加显存有效容量,提高显存的有效利用率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的张量卸载方法的张量卸载装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个张量卸载装置实施例中的具体限定可以参见上文中对于张量卸载方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种张量卸载装置1100,包括:
张量特征信息获取模块1101,用于获取张量特征信息,所述张量特征信息包括待训练模型每层的显存容量需求、计算间隔以及计算延迟信息;
约束条件确定模块1102,用于基于预设卸载策略和所述显存容量需求确定显存约束条件,基于所述预设卸载策略和计算间隔确定卸载时间约束条件,所述预设卸载策略包括主存卸载和重计算卸载;
候选卸载策略确定模块1103,用于基于所述显存约束条件和卸载时间约束条件筛选所述预设卸载策略,确定多个候选卸载策略;
目标卸载策略确定模块1104,用于基于所述计算延迟信息确定每个候选卸载策略的额外计算延迟,基于所述额外计算延迟确定目标卸载策略,并基于所述目标卸载策略卸载张量。
在一个实施例中,张量特征信息获取模块1101,还用于确定目标层的前向计算延迟以及反向计算延迟之和,作为当前层的计算延迟信息,其中,所述目标层包括沿前向计算方向当前层之后的所有层,所述前向计算方向包括所述待训练模型的输入端至输出端的方向。
在一个实施例中,所述显存容量需求基于所述张量的数据信息确定,所述数据信息包括数据类型信息、数据形状信息和数据维度信息。
在一个实施例中,约束条件确定模块1102,还用于基于所述预设卸载策略确定所述待训练模型的张量卸载总量;
基于所述待训练模型每层的显存容量需求确定所述待训练模型显存容量的总需求;
所述显存约束条件为,所述张量卸载总量不小于所述显存容量总需求。
在一个实施例中,约束条件确定模块1102,还用于基于所述预设卸载策略确定显存剩余容量;
确定多个显存容量需求中的最大单层显存容量需求;
所述显存约束条件为,所述显存剩余容量不小于所述最大单层显存容量需求。
在一个实施例中,约束条件确定模块1102,还用于基于所述预设卸载策略确定所述待训练模型每层的张量主存卸载量;
基于所述张量主存卸载量确定第一时间阈值;
所述卸载时间约束条件为,所述计算间隔不小于所述第一时间阈值。
在一个实施例中,约束条件确定模块1102,还用于基于所述预设卸载策略确定所述待训练模型的张量主存卸载总量;
基于所述张量主存卸载总量确定第二时间阈值;
基于所述预设卸载策略确定主存卸载层,并基于所述计算间隔确定主存卸载层计算间隔,所述主存卸载层包括所述待训练模型中至少有一个张量卸载至主存的层;
所述卸载时间约束条件为,所述主存卸载层计算间隔不小于所述第二时间阈值。
在一个实施例中,所述张量包括常驻张量以及临时张量,所述常驻张量包括训练完成之前计算所需的持续张量,所述临时张量包括单次前后向计算所需张量,所述张量卸载装置1100还包括预设卸载策略确定模块,用于确定所述常驻张量的预设卸载策略包括主存卸载;
确定所述临时张量的预设卸载策略包括主存卸载和/或重计算卸载。
在一个实施例中,所述计算延迟信息包括重计算延迟,所述张量卸载装置1100还包括预设卸载策略确定模块,用于若所述计算间隔不小于卸载传输延迟,则确定所述张量的预设卸载策略包括主存卸载,所述卸载传输延迟包括显存至主存的传输延迟;
若所述计算间隔不小于所述重计算延迟,且小于所述卸载传输延迟,则确定所述张量的预设卸载策略包括重计算卸载。
在一个实施例中,所述张量卸载装置1100还包括显存管理模块,用于确定当前可用显存容量与每轮次延迟时间,所述每轮次延迟时间包括所述待训练模型单次前后向计算的实际延迟时间;
基于所述每层的计算延迟信息确定每轮次延迟需求,所述每轮次延迟需求包括所述待训练模型单次前后向计算的延迟需求;
若所述每轮次延迟时间大于所述每轮次延迟需求,且需求显存容量不大于所述可用显存容量,则基于所述需求显存容量释放显存,其中,所述需求显存容量基于所述每轮次延迟时间和每轮次延迟需求确定。
在一个实施例中,所述张量卸载装置1100还包括显存管理模块,用于基于所述目标卸载策略确定当前显存剩余容量;
若所述每轮次延迟时间小于所述每轮次延迟需求,则基于所述每轮次延迟时间和每轮次延迟需求确定可释放显存容量;
基于所述当前显存剩余容量和可释放显存容量确定所述可用显存容量。
上述张量卸载装置1100中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种张量卸载方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一实施例中所述张量卸载方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例中所述张量卸载方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一实施例中所述张量卸载方法的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random AccessMemory,SRAM)或动态随机存取存储器(Dynamic RandomAccessMemory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (14)
1.一种张量卸载方法,其特征在于,所述方法包括:
获取张量特征信息,所述张量特征信息包括待训练模型每层的显存容量需求、计算间隔以及计算延迟信息;
基于预设卸载策略和所述显存容量需求确定显存约束条件,基于所述预设卸载策略和计算间隔确定卸载时间约束条件,所述预设卸载策略包括主存卸载和重计算卸载;
基于所述显存约束条件和卸载时间约束条件筛选所述预设卸载策略,确定多个候选卸载策略;
基于所述计算延迟信息确定每个候选卸载策略的额外计算延迟,基于所述额外计算延迟确定目标卸载策略,并基于所述目标卸载策略卸载张量。
2.根据权利要求1所述的方法,其特征在于,所述计算间隔基于以下方式确定:
确定目标层的前向计算延迟以及反向计算延迟之和,作为当前层的计算延迟信息,其中,所述目标层包括沿前向计算方向当前层之后的所有层,所述前向计算方向包括所述待训练模型的输入端至输出端的方向。
3.根据权利要求1所述的方法,其特征在于,所述显存容量需求基于所述张量的数据信息确定,所述数据信息包括数据类型信息、数据形状信息和数据维度信息。
4.根据权利要求1所述的方法,其特征在于,所述基于预设卸载策略和所述显存容量需求确定显存约束条件包括:
基于所述预设卸载策略确定所述待训练模型的张量卸载总量;
基于所述待训练模型每层的显存容量需求确定所述待训练模型显存容量的总需求;
所述显存约束条件为,所述张量卸载总量不小于所述显存容量总需求。
5.根据权利要求1所述的方法,其特征在于,所述基于预设卸载策略和所述显存容量需求确定显存约束条件还包括:
基于所述预设卸载策略确定显存剩余容量;
确定多个显存容量需求中的最大单层显存容量需求;
所述显存约束条件为,所述显存剩余容量不小于所述最大单层显存容量需求。
6.根据权利要求1所述的方法,其特征在于,所述基于所述预设卸载策略和计算间隔确定卸载时间约束条件包括:
基于所述预设卸载策略确定所述待训练模型每层的张量主存卸载量;
基于所述张量主存卸载量确定第一时间阈值;
所述卸载时间约束条件为,所述计算间隔不小于所述第一时间阈值。
7.根据权利要求1所述的方法,其特征在于,所述基于所述预设卸载策略和计算间隔确定卸载时间约束条件还包括:
基于所述预设卸载策略确定所述待训练模型的张量主存卸载总量;
基于所述张量主存卸载总量确定第二时间阈值;
基于所述预设卸载策略确定主存卸载层,并基于所述计算间隔确定主存卸载层计算间隔,所述主存卸载层包括所述待训练模型中至少有一个张量卸载至主存的层;
所述卸载时间约束条件为,所述主存卸载层计算间隔不小于所述第二时间阈值。
8.根据权利要求1所述的方法,其特征在于,所述张量包括常驻张量以及临时张量,所述常驻张量包括训练完成之前计算所需的持续张量,所述临时张量包括单次前后向计算所需张量,所述预设卸载策略基于以下方式确定:
确定所述常驻张量的预设卸载策略包括主存卸载;
确定所述临时张量的预设卸载策略包括主存卸载和/或重计算卸载。
9.根据权利要求1所述的方法,其特征在于,所述计算延迟信息包括重计算延迟,所述预设卸载策略还基于以下方式确定:
若所述计算间隔不小于卸载传输延迟,则确定所述张量的预设卸载策略包括主存卸载,所述卸载传输延迟包括显存至主存的传输延迟;
若所述计算间隔不小于所述重计算延迟,且小于所述卸载传输延迟,则确定所述张量的预设卸载策略包括重计算卸载。
10.根据权利要求1所述的方法,其特征在于,在所述基于所述目标卸载策略卸载张量之后,还包括:
确定当前可用显存容量与每轮次延迟时间,所述每轮次延迟时间包括所述待训练模型单次前后向计算的实际延迟时间;
基于所述每层的计算延迟信息确定每轮次延迟需求,所述每轮次延迟需求包括所述待训练模型单次前后向计算的延迟需求;
若所述每轮次延迟时间大于所述每轮次延迟需求,且需求显存容量不大于所述可用显存容量,则基于所述需求显存容量释放显存,其中,所述需求显存容量基于所述每轮次延迟时间和每轮次延迟需求确定。
11.根据权利要求10所述的方法,其特征在于,所述确定当前可用显存容量包括:
基于所述目标卸载策略确定当前显存剩余容量;
若所述每轮次延迟时间小于所述每轮次延迟需求,则基于所述每轮次延迟时间和每轮次延迟需求确定可释放显存容量;
基于所述当前显存剩余容量和可释放显存容量确定所述可用显存容量。
12.一种张量卸载装置,其特征在于,所述装置包括:
张量特征信息获取模块,用于获取张量特征信息,所述张量特征信息包括待训练模型每层的显存容量需求、计算间隔以及计算延迟信息;
约束条件确定模块,用于基于预设卸载策略和所述显存容量需求确定显存约束条件,基于所述预设卸载策略和计算间隔确定卸载时间约束条件,所述预设卸载策略包括主存卸载和重计算卸载;
候选卸载策略确定模块,用于基于所述显存约束条件和卸载时间约束条件筛选所述预设卸载策略,确定多个候选卸载策略;
目标卸载策略确定模块,用于基于所述计算延迟信息确定每个候选卸载策略的额外计算延迟,基于所述额外计算延迟确定目标卸载策略,并基于所述目标卸载策略卸载张量。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至权利要求11中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311397785.6A CN117130693B (zh) | 2023-10-26 | 2023-10-26 | 张量卸载方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311397785.6A CN117130693B (zh) | 2023-10-26 | 2023-10-26 | 张量卸载方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117130693A true CN117130693A (zh) | 2023-11-28 |
CN117130693B CN117130693B (zh) | 2024-02-13 |
Family
ID=88858632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311397785.6A Active CN117130693B (zh) | 2023-10-26 | 2023-10-26 | 张量卸载方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117130693B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112422644A (zh) * | 2020-11-02 | 2021-02-26 | 北京邮电大学 | 计算任务卸载方法及系统、电子设备和存储介质 |
CN112559165A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 内存管理方法、装置、电子设备及计算机可读存储介质 |
US20210158147A1 (en) * | 2019-11-26 | 2021-05-27 | International Business Machines Corporation | Training approach determination for large deep learning models |
CN112882830A (zh) * | 2021-02-03 | 2021-06-01 | 北京迈格威科技有限公司 | 显存管理、模型训练方法、装置、电子设备及存储介质 |
CN113504987A (zh) * | 2021-06-30 | 2021-10-15 | 广州大学 | 基于迁移学习的移动边缘计算任务卸载方法及装置 |
CN113573324A (zh) * | 2021-07-06 | 2021-10-29 | 河海大学 | 工业物联网中协作式任务卸载和资源分配的联合优化方法 |
CN114285853A (zh) * | 2022-01-14 | 2022-04-05 | 河海大学 | 设备密集型工业物联网中基于端边云协同的任务卸载方法 |
CN114880130A (zh) * | 2022-07-11 | 2022-08-09 | 中国科学技术大学 | 并行训练中突破内存限制的方法、系统、设备及存储介质 |
CN115118783A (zh) * | 2022-06-30 | 2022-09-27 | 江南大学 | 基于异构通信技术超可靠低时延强化学习的任务卸载方法 |
CN116016538A (zh) * | 2023-03-27 | 2023-04-25 | 南京邮电大学 | 面向动态环境的边端协同推理任务卸载优化方法与系统 |
CN115509644B (zh) * | 2022-11-21 | 2023-04-28 | 北京邮电大学 | 算力卸载方法、装置、电子设备和存储介质 |
CN116107754A (zh) * | 2023-02-24 | 2023-05-12 | 华中科技大学 | 一种面向深度神经网络的内存管理方法及系统 |
CN116257174A (zh) * | 2022-09-07 | 2023-06-13 | 北京潞晨科技有限公司 | 一种基于张量异步硬盘读写的异构空间优化器 |
CN116432778A (zh) * | 2023-06-12 | 2023-07-14 | 摩尔线程智能科技(北京)有限责任公司 | 一种数据处理的方法、装置、存储介质及电子设备 |
CN116862019A (zh) * | 2023-07-06 | 2023-10-10 | 清华大学 | 基于数据并行范式的模型训练方法及装置 |
-
2023
- 2023-10-26 CN CN202311397785.6A patent/CN117130693B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559165A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 内存管理方法、装置、电子设备及计算机可读存储介质 |
US20210158147A1 (en) * | 2019-11-26 | 2021-05-27 | International Business Machines Corporation | Training approach determination for large deep learning models |
CN112422644A (zh) * | 2020-11-02 | 2021-02-26 | 北京邮电大学 | 计算任务卸载方法及系统、电子设备和存储介质 |
CN112882830A (zh) * | 2021-02-03 | 2021-06-01 | 北京迈格威科技有限公司 | 显存管理、模型训练方法、装置、电子设备及存储介质 |
CN113504987A (zh) * | 2021-06-30 | 2021-10-15 | 广州大学 | 基于迁移学习的移动边缘计算任务卸载方法及装置 |
CN113573324A (zh) * | 2021-07-06 | 2021-10-29 | 河海大学 | 工业物联网中协作式任务卸载和资源分配的联合优化方法 |
CN114285853A (zh) * | 2022-01-14 | 2022-04-05 | 河海大学 | 设备密集型工业物联网中基于端边云协同的任务卸载方法 |
CN115118783A (zh) * | 2022-06-30 | 2022-09-27 | 江南大学 | 基于异构通信技术超可靠低时延强化学习的任务卸载方法 |
CN114880130A (zh) * | 2022-07-11 | 2022-08-09 | 中国科学技术大学 | 并行训练中突破内存限制的方法、系统、设备及存储介质 |
CN116257174A (zh) * | 2022-09-07 | 2023-06-13 | 北京潞晨科技有限公司 | 一种基于张量异步硬盘读写的异构空间优化器 |
CN115509644B (zh) * | 2022-11-21 | 2023-04-28 | 北京邮电大学 | 算力卸载方法、装置、电子设备和存储介质 |
CN116107754A (zh) * | 2023-02-24 | 2023-05-12 | 华中科技大学 | 一种面向深度神经网络的内存管理方法及系统 |
CN116016538A (zh) * | 2023-03-27 | 2023-04-25 | 南京邮电大学 | 面向动态环境的边端协同推理任务卸载优化方法与系统 |
CN116432778A (zh) * | 2023-06-12 | 2023-07-14 | 摩尔线程智能科技(北京)有限责任公司 | 一种数据处理的方法、装置、存储介质及电子设备 |
CN116862019A (zh) * | 2023-07-06 | 2023-10-10 | 清华大学 | 基于数据并行范式的模型训练方法及装置 |
Non-Patent Citations (3)
Title |
---|
XUTAO CHEN 等: "Computing Offloading Decision Based on DDPG Algorithm in Mobile Edge Computing", 2021 IEEE 6TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING AND BIG DATA ANALYTICS (ICCCBDA) * |
卢海峰;顾春华;罗飞;丁炜超;杨婷;郑帅;: "基于深度强化学习的移动边缘计算任务卸载研究", 计算机研究与发展, no. 07 * |
马玮良;彭轩;熊倩;石宣化;金海;: "深度学习中的内存管理问题研究综述", 大数据, no. 04 * |
Also Published As
Publication number | Publication date |
---|---|
CN117130693B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868867B1 (en) | Decompression and compression of neural network data using different compression schemes | |
CN113326126B (zh) | 任务处理方法、任务调度方法、装置及计算机设备 | |
WO2020042739A1 (zh) | 数据预处理方法、装置、计算机设备和存储介质 | |
US11733968B2 (en) | Neural processing unit, neural processing system, and application system | |
CN109144719B (zh) | 移动云计算系统中基于马尔科夫决策过程的协作卸载方法 | |
US20190012112A1 (en) | Hardware double buffering using a special purpose computational unit | |
US20220011982A1 (en) | Parallel Memory Access and Computation in Memory Devices | |
CN105808339B (zh) | 大数据并行计算方法及装置 | |
TWI775210B (zh) | 用於卷積運算的資料劃分方法及處理器 | |
CN111258980A (zh) | 一种云存储系统中基于组合预测的动态文件放置方法 | |
CN110874628A (zh) | 人工神经网络及其中控制定点的方法 | |
TW202207031A (zh) | 用於記憶體通道控制器之負載平衡 | |
CN114461384A (zh) | 任务执行方法、装置、计算机设备和存储介质 | |
CN117130693B (zh) | 张量卸载方法、装置、计算机设备及存储介质 | |
CN113723443A (zh) | 一种视觉大模型分布式训练方法及系统 | |
TWI758223B (zh) | 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體 | |
CN113935478A (zh) | 数据处理方法、微控制器系统和计算机程序产品 | |
US20220327368A1 (en) | Npu for generating feature map based on coefficients and method thereof | |
CN113778346B (zh) | 数据读取方法、装置、设备和存储介质 | |
US12008678B2 (en) | Discrete optimisation | |
CN115277570A (zh) | 流量分配方法、装置、计算机设备和存储介质 | |
CN115202591B (zh) | 一种分布式数据库系统的存储装置、方法及存储介质 | |
CN114706687A (zh) | 计算任务的分配方法、装置、计算机设备和存储介质 | |
US20230176762A1 (en) | Object storage system, migration control device, and migration control method | |
JP2022075307A (ja) | 演算デバイス、計算機システム、及び演算方法 |
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 |