CN116627621A - 服务器无感知计算中键值张量的传输方法、系统和装置 - Google Patents
服务器无感知计算中键值张量的传输方法、系统和装置 Download PDFInfo
- Publication number
- CN116627621A CN116627621A CN202310912846.1A CN202310912846A CN116627621A CN 116627621 A CN116627621 A CN 116627621A CN 202310912846 A CN202310912846 A CN 202310912846A CN 116627621 A CN116627621 A CN 116627621A
- Authority
- CN
- China
- Prior art keywords
- task
- exchange instruction
- key value
- scheduling
- cache
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000004364 calculation method Methods 0.000 title claims abstract description 16
- 230000008447 perception Effects 0.000 title claims abstract description 13
- 230000015654 memory Effects 0.000 claims abstract description 72
- 238000012545 processing Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 235000003642 hunger Nutrition 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002265 prevention Effects 0.000 description 4
- 230000037351 starvation Effects 0.000 description 4
- 230000003936 working memory Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000012546 transfer 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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)
- Multi Processors (AREA)
Abstract
本申请提供了一种服务器无感知计算中键值张量的传输方法、系统和装置,属于任务调度技术领域。所述方法包括:确定第一任务的调度时间;在调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令;第一缓存交换指令用于指示第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载;在调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令;第二缓存交换指令用于指示第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;向分布式执行引擎发送第一缓存交换指令或第二缓存交换指令。本申请实施例在维护已启动但未完成的任务的中间状态的同时,还降低了分布式执行引擎的内存开销。
Description
技术领域
本申请涉及任务调度技术领域,尤其涉及一种服务器无感知计算中键值张量的传输方法、系统和装置。
背景技术
随着大语言模型(Large language models,LLMs)技术的发展,服务器无感知环境中的大语言模型推理也逐渐被广泛应用。
目前,为了优化用户请求任务完成时间,服务器无感知环境中的大语言模型推理使用多级反馈队列调度算法(Multi-level Feedback Queue,MLFQ)优化用户请求调度。
然而,多级反馈队列调度算法提供的迭代级抢占增加了系统中正在进行的作业的数量,为了维护已启动但未完成的作业的中间状态,需要为每个作业对应的中间状态提供键值缓存,造成额外的内存开销。
发明内容
本申请实施例在于提供一种服务器无感知计算中键值张量的传输方法、系统和装置,旨在解决如何在维护已启动但未完成的任务的中间状态同时,降低内存开销。
本申请实施例第一方面提供了一种服务器无感知计算中键值张量的传输方法,应用于任务调度组件,所述方法包括:
确定第一任务的调度时间;
在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令;所述第一缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载;
在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令;所述第二缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;
向所述分布式执行引擎发送所述第一缓存交换指令或所述第二缓存交换指令。
在一种可选的实施方式中,所述确定第一任务的调度时间,包括:
获取第一任务的启动阶段对应的执行时间;
根据所述执行时间确定所述第一任务对应的调度优先级;
获取至少一个第二任务;所述第二任务的调度优先级高于所述第一任务的调度优先级;
根据所述第一任务和所述至少一个第二任务,确定所述第一任务的调度时间。
在一种可选的实施方式中,所述根据所述第一任务和所述至少一个第二任务,确定所述第一任务的调度时间,包括:
根据所述第一任务的调度优先级,确定所述第一任务对应的初始调度时间;
获取所述至少一个第二任务对应的执行时间片;
计算所述至少一个第二任务对应的执行时间片之和,得到预估调度时间;
在所述预估调度时间大于或等于所述初始调度时间的情况下,将所述初始调度时间确定为所述第一任务的调度时间;
在所述预估调度时间小于所述初始调度时间的情况下,将所述预估调度时间确定为所述第一任务的调度时间。
在一种可选的实施方式中,所述分布式执行引擎包括预设键值缓存空间;所述预设键值缓存空间为根据所述分布式执行引擎的执行状态确定的键值缓存空间;
所述在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令,包括:
在所述调度时间大于预设调度时间阈值的情况下,获取所述预设键值缓存空间的可用数量;
在所述预设键值缓存空间的可用数量小于或等于预设数量阈值的情况下,生成第一缓存交换指令;
所述在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令,包括:
在所述调度时间小于或等于预设调度时间阈值的情况下,获取所述预设键值缓存空间的可用数量;
在所述预设键值缓存空间的可用数量大于或等于第二预设数量阈值的情况下,生成第二缓存交换指令。
在一种可选的实施方式中,所述方法还包括:
向所述分布式执行引擎发送第一指示;所述第一指示用于指示所述分布式执行引擎执行所述第一任务;
其中,所述第一指示的发送时机包括以下至少一项:
发送所述第二缓存交换指令的第一时刻;
满足所述第一任务执行时间的第二时刻。
本申请实施例第二方面提供了另一种服务器无感知计算中键值张量的传输方法,应用于分布式执行引擎,所述方法包括:
接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令;所述第一缓存交换指令为所述任务调度组件在调度时间大于预设调度时间阈值的情况下,生成的缓存交换指令;所述第二缓存交换指令为所述任务调度组件在所述调度时间小于或等于预设调度时间阈值的情况下,生成的缓存交换指令;
在接收到所述第一缓存交换指令的情况下,将第一任务对应的键值张量卸载;
在接收到所述第二缓存交换指令的情况下,将所述第一任务对应的键值张量上传。
在一种可选的实施方式中,所述将第一任务对应的键值张量卸载,包括:
将第一任务对应的键值张量从处理器内存卸载至主存;
所述将所述第一任务对应的键值张量上传,包括:
将所述第一任务对应的键值张量从主存上传至处理器内存。
在一种可选的实施方式中,所述方法还包括:
接收所述任务调度组件发送的第一指示;所述第一指示用于指示所述分布式执行引擎执行所述第一任务;
获取所述第一任务对应的键值张量;
根据所述键值张量,执行所述第一任务。
在一种可选的实施方式中,所述分布式执行引擎包括至少一个流水线,所述流水线包括第一管道阶段和第二管道阶段,所述第二管道阶段为所述第一管道阶段的下一个管道阶段;
所述接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令,包括:
在所述第一管道阶段接收所述任务调度组件发送的第一缓存交换指令或第二缓存交换指令;
所述在接收到所述第二缓存交换指令的情况下,将所述第一任务对应的键值张量上传,包括:
在所述第一管道阶段,基于所述第一缓存交换指令指示的传输方式,对所述第一任务对应的键值张量进行上传;
在所述第二管道阶段,基于与所述第一管道阶段相同的传输方式,对所述第一任务对应的键值张量进行上传。
在一种可选的实施方式中,所述在所述第二管道阶段,基于与所述第一管道阶段相同的传输方式,对所述第一任务对应的键值张量进行上传,包括:
在所述第二管道阶段,接收第一处理结果,并基于与所述第一管道阶段相同的传输方式,对所述第一任务对应的键值张量进行上传;
其中,所述第一处理结果为所述分布式执行引擎在所述第一管道阶段执行所述第一任务得到的处理结果。
本申请实施例第三方面提供了一种服务器无感知计算中键值张量的传输系统,所述系统包括任务调度组件和分布式执行引擎;
所述任务调度组件,用于确定第一任务的调度时间;并在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令;所述第一缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载;在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令;所述第二缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;以及向所述分布式执行引擎发送所述第一缓存交换指令或所述第二缓存交换指令;
所述分布式执行引擎,用于接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令;并在接收到所述第一缓存交换指令的情况下,将所述第一任务对应的键值张量卸载;在接收到所述第二缓存交换指令的情况下,将所述第一任务对应的键值张量上传。
本申请实施例第四方面提供了一种服务器无感知计算中键值张量的传输装置,应用于任务调度组件,所述装置包括:
确定模块,用于确定第一任务的调度时间;
第一生成模块,用于在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令;所述第一缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载;
第二生成模块,用于在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令;所述第二缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;
第一发送模块,用于向所述分布式执行引擎发送所述第一缓存交换指令或所述第二缓存交换指令。
本申请实施例第五方面提供了一种服务器无感知计算中键值张量的传输装置,应用于分布式执行引擎,所述装置包括:
第一接收模块,用于接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令;所述第一缓存交换指令为所述任务调度组件在调度时间大于预设调度时间阈值的情况下,生成的缓存交换指令;所述第二缓存交换指令为所述任务调度组件在所述调度时间小于或等于预设调度时间阈值的情况下,生成的缓存交换指令;
卸载模块,用于在接收到所述第一缓存交换指令的情况下,将第一任务对应的键值张量卸载;
上传模块,用于在接收到所述第二缓存交换指令的情况下,将所述第一任务对应的键值张量上传。
本申请实施例第六方面提供了一种电子设备,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现如上任一项所述的服务器无感知计算中键值张量的传输方法。
本申请实施例第七方面提供了一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的服务器无感知计算中键值张量的传输方法。
有益效果:
本申请实施例提供一种服务器无感知计算中键值张量的传输方法、系统和装置,具体地:任务调度器首先确定第一任务的调度时间;然后在调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令,通过第一缓存交换指令指示第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载;在调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令,通过第二缓存交换指令指示第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;最后向分布式执行引擎发送第一缓存交换指令或第二缓存交换指令。实现了在第一任务的调度时间较长的情况下,通过第一缓存交换指令指示分布式执行引擎将第一任务对应的键值张量进行卸载,从而降低了分布式执行引擎中的内存开销;在第一任务调度时间较短的情况下,通过第二缓存交换指令指示分布式执行引擎将第一任务对应的键值张量上传,保证第一任务的顺利执行。由此,在维护已启动但未完成的任务的中间状态的同时,还降低了分布式执行引擎的内存开销。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种服务器无感知计算中键值张量的传输方法的步骤流程图;
图2是本申请实施例提供的一种内存开销对比图;
图3是本申请实施例提供的另一种服务器无感知计算中键值张量的传输方法的步骤流程图;
图4是本申请实施例提供的一种分布式键值缓存区域的执行逻辑示意图;
图5是本申请实施例提供的一种服务器无感知计算中键值张量的传输系统的逻辑示意图;
图6是本申请实施例提供的一种服务器无感知计算中键值张量的传输装置的逻辑框图;
图7是本申请实施例提供的另一种服务器无感知计算中键值张量的传输装置的逻辑框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
方法实施例
第一方面,本申请实施例提供了一种服务器无感知计算中键值张量的传输方法,如图1所示,图1为本申请实施例提供的一种服务器无感知计算中键值张量的传输方法的步骤流程图,该方法包括步骤S110至步骤S140:
本申请实施例提供的服务器无感知计算中键值张量的传输方法应用于任务调度组件,任务调度组件用于根据预设调度规则对用户提交到任务池中的任务进行调度,生成并向分布式执行引擎发送任务调度指示,使得分布式执行引擎可以根据任务调度指示执行用户提交的任务。任务调度组件可以包括但不限于任务调度器、任务分析器和键值缓存管理器。其中,任务调度器可以为多级反馈队列调度器(multi-level feedback queue,MLFQ)和先进先出调度器(First Come First Served,FCFS)中的任一种;多级反馈队列调度器提供了迭代级的抢占,通过确定用户提交的任务的调度优先级,根据调度优先级将用户提交的任务放入与该任务的优先级对应的优先级队列中,并优先调度高优先级队列中的任务由分布式执行引擎执行。而先进先出调度器则是基于用户提交任务的先后顺序,优先调度用户先提交的任务由分布式执行引擎执行。任务分析器用于评估任务池中任务的性能指标,以供任务调度器根据该性能指标确定用户提交的任务对应的调度优先级。键值缓存管理器用于根据任务对应的存储要求将任务相关的数据存储到分布式执行引擎的存储区域中,使得分布式执行引擎可以从存储区域中获取任务对应的相关数据对该任务进行执行。
此外,用户提交到任务池中的任务可以为大语言模型(Large Language Model,LLM)推理任务。任务相关的数据可以以键值张量的形式进行传输和存储,任务相关的数据包括但不限于该任务的原始参数、中间处理结果和最终处理结果等。分布式执行引擎的存储区域具体可以为分布式键值存储区域。任务调度指示可以包括但不限于用于指示分布式执行引擎执行第一任务的第一指示和用于指示第一任务对应的键值张量在分布式执行引擎中的传输方式的缓存交换指令,其中,缓存交换指令包括但不限于第一缓存交换指令和第二缓存交换指令。
在本申请实施例中,将以调度器为多级反馈队列调度器的情况为例进行说明。多级反馈队列调度器在优化用户提交的任务的完成时间的同时,由于迭代级的抢占增加了分布式执行引擎中正在执行的任务的数量,这引入了分布式执行引擎中额外的内存开销。参照图2,图2是本申请实施例提供的一种内存开销对比图。如图2示出了FCFS调度器和MLFQ调度器在合成工作负载下对大语言模型(GPT-3 2.7B)的键值缓存内存消耗的对比情况。GPT-3 2.7B模型是大语言模型中一个相对较小的模型,该模型的最大输出长度限制为20,采用MLFQ调度器的分布式执行引擎中的千伏高速缓存存储器的内存开销峰值比采用FCFS调度器的分布式执行引擎中的千伏高速缓存存储器的内存开销峰值高了近7倍。在一个更现实的情况下,当大语言模型扩展到175B时,其输出长度可以超过1000。在输出长度超过1000的情况下,采用MLFQ调度器的分布式执行引擎中的千伏高速缓存存储器的内存开销很容易超过NVIDIA最新的Hopper 80 GB GPU的内存容量,导致分布式执行引擎存在缓存溢出的风险。本申请实施例提供的服务器无感知计算中键值张量的传输方法可以通过步骤S110至步骤S140解决上述技术问题。
步骤S110、确定第一任务的调度时间。
其中,第一任务为任务池中的任一任务,进一步地,第一任务具体可以为大语言模型推理任务。第一任务的调度时间(estimated next scheduled time,ENST)为第一任务被调度到分布式执行引擎进行执行的时间,任务调度组件可以根据第一任务的调度优先级确定第一调度任务的调度时间。
在本申请实施例中,任务调度组件可以在用户提交第一任务到任务池的情况下,确定第一任务的调度时间。当然,任务调度组件也可以按照预设周期依次计算任务池中各个任务的调度时间,本申请实施例对此不作具体限定。
在任务调度组件确定第一任务的调度时间之后,可以将该调度时间与预设调度时间阈值进行比较,在调度时间大于预设调度时间阈值的情况下,则执行步骤S120;在调度时间小于或等于预设调度时间阈值的情况下,则执行步骤S130。
步骤S120、在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令;所述第一缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载。
其中,预设调度时间阈值为预先设置的用于确定第一任务是否属于即将被执行的任务的判定依据。任务调度组件可以在步骤S110确定第一任务的调度时间之后,将该调度时间与预设调度时间阈值进行比较,并在调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令。
在本申请实施例中,在调度时间大于预设调度时间阈值的情况下,则表明第一任务的调度时间较长,从而可以进一步确定第一任务不属于即将被执行的任务。因此,任务调度组件可以生成第一缓存交换指令,通过第一缓存交换指令指示分布式执行引擎将第一任务对应的键值张量卸载,以释放分布式执行引擎中的内存。
需要说明的是,分布式执行引擎中的内存指的是分布式执行引擎中分布式键值存储区域的内存。
步骤S130、在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令;所述第二缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为上传。
具体地,任务调度组件可以在步骤S110确定第一任务的调度时间之后,将该调度时间与预设调度时间阈值进行比较,并在调度时间大于预设调度时间阈值的情况下,生成第二缓存交换指令。
在本申请实施例中,在调度时间小于或等于预设调度时间阈值的情况下,则表明第一任务的调度时间较短,从而可以进一步确定第一任务属于即将被执行的任务。因此,任务调度组件可以生成第二缓存交换指令,通过第二缓存交换指令指示分布式执行引擎将第一任务对应的键值张量上传,以保证分布式执行引擎在接收到任务调度组件发送的第一指示的情况下,可以直接获取到上传的第一任务对应的键值张量,进而使得分布式执行引擎可以顺利执行第一任务。
步骤S140、向所述分布式执行引擎发送所述第一缓存交换指令或所述第二缓存交换指令。
具体地,任务调度组件在通过步骤S120生成第一缓存交换指令,或者通过步骤S130生成第二缓存交换指令的情况下,可以进一步通过步骤S140向分布式执行引擎发送第一缓存交换指令或第二缓存交换指令,以使分布式执行引擎在接收到第一缓存交换指令或第二缓存交换指令的情况下,可以根据第一缓存交换指令或第二缓存交换指令所指示的第一任务对应的键值张量在分布式执行引擎中的传输方式,对第一任务对应的键值张量进行传输。
在本申请实施例中,任务调度组件可以通过片上总线或任务调度总线与分布式执行引擎连接,并通过片上总线或任务调度总线向分布式执行引擎发送第一缓存交换指令或第二缓存交换指令。
在本申请实施例中,任务调度组件可以包括任务调度器和键值缓存管理器。首先,任务调度器执行步骤S110确定第一任务的调度时间;然后,任务调度器执行步骤S120生成第一缓存交换指令,或者执行步骤S130生成第二缓存交换指令;最后,任务调度器将第一缓存交换指令或第二缓存交换指令发送到键值缓存管理器,由键值缓存管理器向分布式执行引擎的分布式键值存储区域发送第一缓存交换指令或第二缓存交换指令。
相比于现有技术中,多级反馈队列调度器迭代级的抢占增加了系统中正在进行的任务的数量,引入了分布式执行引擎额外的内存开销。本申请实施例中任务调度器可以在第一任务的调度时间较长的情况下,通过第一缓存交换指令指示分布式执行引擎将第一任务对应的键值张量进行卸载,从而降低了分布式执行引擎中的内存开销;在第一任务调度时间较短的情况下,通过第二缓存交换指令指示分布式执行引擎将第一任务对应的键值张量上传,保证第一任务的顺利执行。由此,实现了在服务器无感知的情况下,维护已启动但未完成的任务的中间状态的同时,降低分布式执行引擎的内存开销。
在一种可选的实施方式中,步骤S110所述确定第一任务的调度时间,包括步骤S111至步骤S114:
步骤S111、获取第一任务的启动阶段对应的执行时间。
在本申请实施例中,启动阶段对应的执行时间为分布式执行引擎执行第一任务的启动阶段所需要的时间。任务调度组件可以通过对第一任务进行解析获取第一任务的启动阶段对应的执行时间。
此外,任务调度组件还可以包括任务分析器,任务分析器可以评估任务池中任务的性能指标,该性能指标包括但不限于任务池中任务对应的各个迭代阶段的执行时间,例如启动阶段对应的执行时间、计算阶段对应的执行时间、通信阶段对应的执行时间等。在本申请实施例中,任务调度组件中的任务调度器可以从任务分析器中获取第一任务的启动阶段对应的执行时间。
步骤S112、根据所述执行时间确定所述第一任务对应的调度优先级。
具体地,在步骤S111中获取第一任务的启动阶段对应的执行时间之后,任务调度组件可以基于该执行时间确定第一任务对应的调度优先级。
在本申请实施例中,可以将任务池中的任务的启动阶段对应的执行时间按照从小到大的顺序确定由高到底的调度优先级。其中,在第一任务的启动阶段对应的执行时间越小的情况下,第一任务对应的调度优先级越高,反之,在第一任务的启动阶段对应的执行时间越大的情况下,第一任务对应的调度优先级越地。由此,可以解决多级反馈队列调度器中优先级队列中的头部阻塞问题。
需要说明的是,任务调度组件中的任务调度器中可以包括至少一个优先级队列,任务调度器中不同的优先级对应的调度优先级不同。同一优先级队列中可以包括至少一个任务。任务调度组件中的任务调度器在通过步骤S112确定第一任务对应的调度优先级之后,可以将第一任务放入与该调度优先级相同的优先级队列中。
进一步地,在第一任务所在的优先级队列为任务调度器中调度优先级最高的优先级队列,并且该优先级队列中包括多个任务的情况下,任务调度器可以按照轮转的方式依次向分布式执行引擎发送该优先级队列中任务对应的第一指示,以使分布式执行引擎可以根据该第一指示,依次执行该优先级队列中的任务,从而完成该优先级队列中的任务的一轮迭代。其中,分布式执行引擎执行第一任务的一轮迭代对应的时间为第一任务对应的执行时间片。
当然,在第一任务所在的优先级队列为任务调度器中调度优先级最高的优先级队列,并且该优先级队列中只包括第一任务的情况下,任务调度器可以直接向分布式执行引擎发送该第一任务对应的第一指示,以使分布式执行引擎可以根据该第一指示,执行第一任务,完成第一任务的一轮迭代。
步骤S113、获取至少一个第二任务;所述第二任务的调度优先级高于所述第一任务的调度优先级。
在本申请实施例中,第二任务是任务调度组件中调度优先级高于第一任务的调度优先级的任务,第二任务的数量可以为至少一个。具体地,第二任务是任务调度组件中,调度优先级高于第一任务对应的调度优先级的优先级队列中所有任务中的任一任务。
在一种可选的实施方式中,第二任务的数量还可以为0。在第二任务的数量为0的情况下,表明第一任务对应的调度优先级为任务调度组件中的最高优先级,任务调度组件可以通过步骤S130生成第二缓存交换指令,并通过步骤S140向分布式执行引擎发送该第二缓存交换指令。
步骤S114、根据所述第一任务和所述至少一个第二任务,确定所述第一任务的调度时间。
在本申请实施例中,任务调度组件可以根据第一任务的饥饿预防机制确定第一任务对应的初始调度时间,并将该初始调度时间确定为第一任务的调度时间;任务调度组件也可以按照调度优先级顺序确定执行至少一个第二任务所需要的时间之和,并将该时间之和确定为第一任务的调度时间;任务调度组件还可以将初始调度时间和时间之和中的最小值确定为第一任务的调度时间;任务调度组件还可以将初始调度时间和时间之和的加权平均值确定为第一任务的调度时间。本申请实施例对此不作具体限定。
需要说明的是,第一任务对应的初始调度时间是基于饥饿预防机制预先设置的时间段,并且在该时间段内第一任务未被调用执行的情况下,任务调度组件自动将第一任务加入到调度优先级最高的优先级队列中,防止因第一任务长时间未被调用而导致第一任务死锁的问题。
此外,执行第二任务所需要的时间为分布式执行引擎执行第二任务的一轮迭代所需要的时间。而按照调度优先级顺序执行至少一个第二任务所需要的时间之和为分布式执行引擎执行至少一个第二任务所需要的时间的求和值。
在本申请实施例中,步骤S113获取的至少一个第二任务在被降级第一任务所在的优先级队列之前不会提前完成。
在一种可选的实施方式中,步骤S114所述根据所述第一任务和所述至少一个第二任务,确定所述第一任务的调度时间,包括步骤S1141至步骤S1145:
步骤S1141、根据所述第一任务的调度优先级,确定所述第一任务对应的初始调度时间。
具体地,任务调度组件可以根据步骤S112确定的第一任务对应的调度优先级,确定第一任务所在的优先级队列;然后,基于第一任务所在的优先级队列和饥饿预防机制,预先设置与调度优先级对应的时间段,并将该时间段确定为第一任务对应的初始调度时间。
其中,基于第一任务所在的优先级队列和饥饿预防机制,预先设置与调度优先级对应的时间段,具体可以为:为不同的调度优先级分别设置与之对应的不同的第二时间段,例如,在调度优先级包括第一调度优先级、第二调度优先级和第三调度优先级,并且第一调度优先级高于第二调度优先级,第二调度优先级高于第三调度优先级的情况下,当第一任务的调度优先级为第二调度优先级的情况下,第一任务的初始调度时间为80ms,当第一任务的调度优先级为第三调度优先级的情况下,第一任务的初始调度时间为100ms。当然,还可以为不同的调度优先级设置相同的第二时间段,例如,在调度优先级包括第一调度优先级、第二调度优先级和第三调度优先级,并且第一调度优先级高于第二调度优先级,第二调度优先级高于第三调度优先级的情况下,当第一任务的调度优先级为第二调度优先级的情况下,第一任务的初始调度时间为100ms,当第一任务的调度优先级为第三调度优先级的情况下,第一任务的初始调度时间也为100ms。本申请实施例对此不作具体限定。
步骤S1142、获取所述至少一个第二任务对应的执行时间片。
在本申请实施例中,第二任务对应的执行时间片为分布式执行引擎执行第二任务的一轮迭代对应的时间。不同第二任务的相同迭代轮次对应的执行时间片可以相同也可以不同;同一第二任务的不同迭代轮次对应的执行时间片可以相同也可以不同。
具体地,任务调度组件中的任务调度器可以从任务分析器中获取每个第二任务对应的执行时间片。
其中,第二任务对应的时间片可以通过公式1进行表示:
,其中,/>表示第一任务,/>表示第二任务,/>表示第二任务对应的时间片,/>表示第一任务的调度优先级,/>表示第二任务的调度优先级,/>表示高于第一任务的调度优先级并且小于或等于第二任务的调度优先级的优先级,/>表示调度优先级为/>的优先级队列对应的执行时间片。
步骤S1143、计算所述至少一个第二任务对应的执行时间片之和,得到预估调度时间。
预估调度时间为按照调度优先级顺序执行至少一个第二任务所需要的时间之和。
在本申请实施例中,任务调度组件通过步骤S1142获取至少一个第二任务对应的执行时间片之后,可以通过如下公式2计算至少一个第二任务对应的执行时间片之和,得到预估调度时间:
,其中,/>表示预估调度时间。
在本申请实施例中,任务调度组件在通过步骤S1141确定第一任务对应的初始调度时间,并通过步骤S1143得到预估调度时间之后,可以综合考虑初始调度时间和预估调度时间,并将二者中的最小值确定为第一任务的调度时间。具体地,可以通过如下公式3确定第一任务的调度时间:
,其中,/>表示第一任务的调度时间,/>表示第一任务对应的初始调度时间。
具体地,任务调度组件在综合考虑初始调度时间和预估调度时间确定第一任务对应的调度时间的过程中,可以将初始调度时间和预估调度时间进行比较,并在预估调度时间大于或等于初始调度时间的情况下,执行步骤S1144,在预估调度时间小于初始调度时间的情况下,执行步骤S1145。
步骤S1144、在所述预估调度时间大于或等于所述初始调度时间的情况下,将所述初始调度时间确定为所述第一任务的调度时间。
步骤S1145、在所述预估调度时间小于所述初始调度时间的情况下,将所述预估调度时间确定为所述第一任务的调度时间。
需要说明的是,在预估调度时间大于或等于初始调度时间的情况下,可以将初始调度时间确定为第一任务的调度时间,也可以将预估调度时间确定为第一任务的调度时间。
在本申请实施例中,任务调度组件在根据第一任务和至少一个第二任务,确定第一任务的调度时间时,同时考虑了初始调度时间和预估调度时间,并将二者中的最小值确定为第一任务的调度时间,在防止第一任务发生死锁的同时,也确保了调度优先级较高的任务的执行。
在一种可选的实施方式中,所述分布式执行引擎包括预设键值缓存空间;所述预设键值缓存空间为根据所述分布式执行引擎的执行状态确定的键值缓存空间。
步骤S120所述在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令,包括步骤S121至步骤S122:
步骤S121、在所述调度时间大于预设调度时间阈值的情况下,获取所述预设键值缓存空间的可用数量。
步骤S122、在所述预设键值缓存空间的可用数量小于或等于预设数量阈值的情况下,生成第一缓存交换指令。
在本发明实施例中,可以在分布式执行引擎中的分布式键值存储区域中设置预设键值缓存空间,使得在分布式执行引擎根据第二缓存交换指令对第一任务对应的键值张量进行上传时,可以立即获得一个预设键值缓存空间来存放该任务的键值张量,而不会产生卸载被抢占的其他任务的键值缓存空间的内存开销。
其中,预设键值缓存空间的可用数量为预设键值缓存空间中当前处于空闲状态的键值缓存空间的数量。
任务调度组件在第一任务的调度时间大于预设调度时间阈值的情况下,可以进一步根据预设键值缓存空间的可用数量,确定是否生成第一缓存交换指令。具体地,在预设键值缓存空间的可用数量小于或等于第一预设数量阈值的情况下,则生成第一缓存交换指令;在预设键值缓存空间的可用数量大于第一预设数量阈值的情况下,则不生成第一缓存交换指令,并且直到在预设键值缓存空间的可用数量小于或等于第一预设数量阈值的情况下,任务调度组件再执行步骤S122,以减少分布式执行引擎中不必要的键值张量卸载操作,提高分布式执行引擎执行任务的效率。
需要说明的是,一个预设键值缓存空间可以存储一个任务对应的键值张量。第一预设数量阈值可以是大于或等于1,并且小于预设键值缓存空间总数量的任一整数,本发明实施例对此不作具体限定。
在本申请实施例中,预设键值缓存空间的数量是根据分布式执行引擎的执行状态确定的,其中,分布式执行引擎的执行状态包括历史执行状态和当前执行状态中的至少一种。预设键值缓存空间的确定方法具体为:通过预设算法,根据分布式执行引擎的历史执行状态和分布式执行引擎的当前执行状态,预测在任务调度组件中前个优先级队列中任务数量之和,并将/>确定为预设键值缓存空间的数量。其中,/>为大于或等于1的整数。
其中,预设算法可以为启发式预测算法。执行状态可以包括但不限于任务调度组件中每一个优先级队列中的任务数量、某一个优先级队列中的任务数量、前N个优先级队列中的任务数量等。N为大于或等于1的整数。
在一种可选的实施方式中,也可以将系统管理员设置的可调参数K确定为预设键值缓存空间的数量。其中,K为大于或等于1的整数。
在一种可选的实施方式中,还可以将系统管理员设置的可调参数K和通过预设算法预测的数值进行比较,并在/>大于K的情况下,将/>确定为预设键值缓存空间的数量,在/>小于或等于K的情况下,将K确定为预设键值缓存空间的数量。本申请实施例对此不作具体限定。
在本发明实施例中,调度时间大于预设调度时间阈值的情况,表明第一任务的调度时间较长,任务调度组件可以在预设键值缓存空间的可用数量小于或等于第一预设数量阈值的情况下,再生成第一缓存交换指令,并通过第一缓存交换指令指示分布式执行引擎将第一任务对应的键值张量卸载,减少分布式执行引擎中不必要的键值张量卸载操作,提高分布式执行引擎执行任务的效率。
步骤S130所述在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令,包括步骤S131至步骤S132:
步骤S131、在所述调度时间小于或等于预设调度时间阈值的情况下,获取所述预设键值缓存空间的可用数量。
步骤S132、在所述预设键值缓存空间的可用数量大于或等于第二预设数量阈值的情况下,生成第二缓存交换指令。
在本发明实施例中,在调度时间小于或等于预设调度时间阈值的情况下,表明第一任务是即将被执行的任务,任务调度组件需要通过生成第二缓存交换指令,并通过第二缓存交换指令指示分布式执行引擎将第一任务对应的键值张量上传。在本申请实施例中,任务调度组件确定调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令之前,还可以先获取分布式执行引擎中预设键值缓存空间的可用数量;然后,在该可用数量大于或等于第二预设数量阈值的情况下,再生成第二缓存交换指令,避免在分布式执行引擎中预设键值缓存空间的数量不足的情况下生成向分布式执行引擎发送第二缓存交换指令,进而减少了由于迭代抢占产生的内存开销。
其中,第二预设数量阈值可以是大于或等于1,并且小于预设键值缓存空间总数量的任一整数,并且第一预设数量阈值可以大于或等于第二预设数量阈值。本发明实施例对此不作具体限定。
在一种可选的实施方式中,图1所述的一种服务器无感知计算中键值张量的传输方法还可以包括步骤S150:
步骤S150、向所述分布式执行引擎发送第一指示;所述第一指示用于指示所述分布式执行引擎执行所述第一任务。
其中,所述第一指示的发送时机包括以下至少一项:
发送所述第二缓存交换指令的第一时刻;满足所述第一任务执行时间的第二时刻。
在本申请实施例中,任务调度组件在第一任务的调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令并向分布式执行引擎发送该第一缓存交换指令,此时,任务调度组件不需要向分布式执行引擎发送第一指示。
进一步地,任务调度组件可以在需要分布式执行引擎执行第一任务的情况下,生成第二缓存交换指令和第一指示,并在发送第二缓存交换指令的第一时刻同时发送第一指示,此时,第二时刻与第一时刻相同。
任务调度组件还可以在第一任务的调度时间小于或等于预设调度时间阈值的情况下,首先,生成第二缓存交换指令并在第一时刻向分布式执行引擎发送该第二缓存交换指令;之后,再在满足第一任务执行时间的第二时刻向分布式执行引擎发送第一指示。此时,第二时刻为在第一时刻之后的任一时刻。由此,任务调度组件可以在分布式执行引擎执行第一任务之前,先通过向分布式执行引擎发送第二缓存交换指令,使得分布式执行引擎可以在执行第一任务之前根据该第二缓存交换指令将第一任务对应的键值张量上传,减少分布式执行引擎中数据传输的时间,提高分布式执行引擎执行任务的效率。
需要说明的是,第二时刻具体可以为第一任务处于任务调度组件中的最高调度优先级队列中并且任务调度组件轮转到第一任务对应的执行时间片的时刻。
第二方面,本申请实施例还提供了另一种服务器无感知计算中键值张量的传输方法,如图3所示,图3为本申请实施例提供的另一种服务器无感知计算中键值张量的传输方法的步骤流程图,该方法包括步骤S210至步骤S230:
本申请实施例提供的服务器无感知计算中键值张量的传输方法应用于分布式执行引擎,分布式执行引擎用于基于任务调度组件发送的第一缓存交换指令将第一任务对应的键值张量卸载、基于任务调度组件发送的第二缓存交换指令将第一任务对应的键值张量上传,以及基于任务调度组件发送的第一指示,执行第一任务。
在本申请实施例中,分布式执行引擎基于高性能的transformer库NVIDIA FasterTransformer,具有自定义的统一计算设备架构(Compute Unified Device Architecture,CUDA)内核。其中,分布式执行引擎采用流水线并行、键值张量并行、流水线和键值张量混合并行的并行策略中的至少一项进行分布式部署。具体地,分布式执行引擎中可以包括至少一个流水线,每个流水线包括至少一个管道阶段,每个管道接管包括至少一个处理器。
本申请实施例通过修改分布式执行引擎支持迭代级别的调度方式,使得分布式执行引擎可以在第一个管道阶段完成执行后立即接收新的任务批次,这意味着分布式执行引擎中的每个分区都会执行不同任务对应的迭代阶段而不会处于空闲状态。
步骤S210、接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令;所述第一缓存交换指令为所述任务调度组件在调度时间大于预设调度时间阈值的情况下,生成的缓存交换指令;所述第二缓存交换指令为所述任务调度组件在所述调度时间小于或等于预设调度时间阈值的情况下,生成的缓存交换指令。
具体地,在任务调度组件通过步骤S140发送第一缓存交换指令的情况下,分布式执行引擎可以接收任务调度器发送的第一缓存交换指令,并根据第一缓存交换指令指示的第一任务对应的键值张量的传输方式,执行步骤S220;在任务调度组件通过步骤S140发送第二缓存交换指令的情况下,分布式执行引擎可以接收任务调度器发送的第二缓存交换指令,并根据第二缓存交换指令指示的第一任务对应的键值张量的传输方式,执行步骤S230。
其中,分布式执行引擎可以通过片上总线或任务派发总线接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令。
步骤S220、在接收到所述第一缓存交换指令的情况下,将第一任务对应的键值张量卸载。
具体地,分布式执行引擎在接收到第一缓存交换指令的情况下,根据第一缓存交换指令指示的第一任务对应的键值张量的传输方式,将第一任务对应的键值张量卸载。
在本申请实施例中,将第一任务对应的键值张量卸载的操作具体可以为:将第一任务对应的键值张量从分布式执行引擎的处理器对应的处理器内存中卸载到主存中。
步骤S230、在接收到所述第二缓存交换指令的情况下,将所述第一任务对应的键值张量上传。
具体地,分布式执行引擎在接收到第二缓存交换指令的情况下,根据第二缓存交换指令指示的第一任务对应的键值张量的传输方式,将第一任务对应的键值张量上传。
在本申请实施例中,将第一任务对应的键值张量上传的操作具体可以为:将第一任务对应的键值张量从主存中上传到分布式执行引擎的处理器对应的处理器内存中。
在本申请实施例中,分布式执行引擎可以包括至少一个处理器和分布式键值存储区域。其中,分布式键值存储区域包括处理器对应的处理器内存和主存;处理器用于接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令,并根据第一缓存交换指令执行步骤S220或者根据第二缓存交换指令执行步骤S230。
分布式执行引擎中的分布式键值存储区域可以与任务调度组件中的键值缓存管理器连接,键值缓存管理器在接收到任务调度器发送的第一缓存交换指令或第二缓存交换指令的情况下,可以向分布式键值存储区域发送该第一缓存交换指令或第二缓存交换指令,使得分布式键值存储区域可以在服务器无感知的情况下实现第一任务对应的键值张量的卸载或上传。
其中,分布式键值存储区域可以与键值缓存管理器通过信息传递接口(MassagePassing Interface)建立连接。
在一种可选的实施方式中,步骤S220所述将第一任务对应的键值张量卸载,包括步骤S221:
步骤S221、将第一任务对应的键值张量从处理器内存卸载至主存。
其中,处理器为分布式执行引擎中部署的处理器,处理器包括但不限于图形处理器(Graphics Processing Unit,GPU)和中央处理器(Central Processing Unit,CPU)。处理器内存是处理器对应的存储区域。
具体地,在处理器为图形处理器的情况下,图形处理器可以将第一任务对应的键值张量从显存中卸载至主存。在处理器为中央处理器的情况下,中央处理器可以将第一任务对应的键值张量从中央处理器的工作存储器中卸载至主存,从而降低了分布式执行引擎中处理器的内存开销。
在一种可选的实施方式中,步骤S230所述将所述第一任务对应的键值张量上传,包括步骤S231:
步骤S231、将所述第一任务对应的键值张量从主存上传至处理器内存。
具体地,在处理器为图形处理器的情况下,图形处理器可以将第一任务对应的键值张量从主存上传至显存中,以便图形处理器在执行第一任务时,可以直接从显存中获取第一任务对应的键值张量,提高了执行第一任务的效率。在处理器为中央处理器的情况下,中央处理器可以将第一任务对应的键值张量从主存上传至中央处理器的工作存储中,以便中央处理器在执行第一任务时,可以直接从工作存储器中获取第一任务对应的键值张量。
在一种可选的实施方式中,图3所述的另一种服务器无感知计算中键值张量的传输方法还包括步骤S240至步骤S260:
步骤S240、接收所述任务调度组件发送的第一指示;所述第一指示用于指示所述分布式执行引擎执行所述第一任务。
具体地,在任务调度组件发送第一指示之后,分布式执行引擎可以接收任务调度组件发送的第一指示,并根据第一指示执行步骤S250和步骤S260。
其中,分布式执行引擎可以通过片上总线或任务派发总线接收任务调度组件发送的第一指示。
在本申请实施例中,分布式执行引擎的处理器还用于接收任务调度组件发送第一指示,并根据第一指示执行步骤S250和步骤S260。
步骤S250、获取所述第一任务对应的键值张量。
具体地,在处理器为图像处理器的情况下,图像处理器可以从显存中获取第一任务对应的键值张量;在处理器为中央处理器的情况下,中央处理器可以从工作存储器中获取第一任务对应的键值张量。
步骤S260、根据所述键值张量,执行所述第一任务。
在本申请实施例中,分布式执行引擎根据键值张量,执行第一任务具体为根据键值张量,通过流水线执行第一任务的一轮迭代。分布式执行引擎在执行完第一任务的一轮迭代之后,可以向分布式执行引擎发送执行状态,该执行状态用于通知任务调度组件第一任务的一轮迭代执行完成,之后由任务调度组件重新确定第一任务的调度优先级,并重复执行步骤S110至步骤S140对应的操作,直至第一任务完成。
在一种可选的实施方式中,所述分布式执行引擎包括至少一个流水线,所述流水线包括第一管道阶段和第二管道阶段,所述第二管道阶段为所述第一管道阶段的下一个管道阶段。步骤S210所述接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令,包括步骤S211:
步骤S211、在所述第一管道阶段接收所述任务调度组件发送的第一缓存交换指令或第二缓存交换指令。
步骤S230所述在接收到所述第一缓存交换指令的情况下,将所述第一任务对应的键值张量上传,包括步骤S232和步骤S233:
步骤S232、在所述第一管道阶段,基于所述第一缓存交换指令指示的传输方式,对所述第一任务对应的键值张量进行上传。
步骤S233、在所述第二管道阶段,基于与所述第一管道阶段相同的传输方式,对所述第一任务对应的键值张量进行上传。
在本申请实施例中,在流水线包括第一管道阶段和第二管道阶段的情况下,第一管道阶段对应的处理器可以在第一管道阶段接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令;在第一管道阶段对应的处理器接收到第二缓存交换指令的情况下,则对第一任务对应的键值张量进行上传;在第一管道阶段对应的处理器接收到第一缓存交换指令的情况下,则对第一任务对应的键值张量进行卸载;之后,第一管道阶段对应的处理器可以基于第一缓存交换指令指示的传输方式向第二管道阶段对应的处理器发送第三缓存交换指令,用于指示第二管道阶段对应的处理器基于与第一管道阶段相同的传输方式,对第一任务对应的键值张量进行上传或卸载。当然,第一管道阶段对应的处理器也可以将第二缓存交换指令或第一缓存交换指令直接转发至第二管道阶段对应的处理器,使得第二管道阶段对应的处理器可以基于与第一管道阶段相同的传输方式,对第一任务对应的键值张量进行上传或卸载。本申请实施例对此不作具体限定。
在一种可选的实施方式中,步骤S233所述在所述第二管道阶段,基于与所述第一管道阶段相同的传输方式,对所述第一任务对应的键值张量进行上传,包括步骤S2331:
步骤S2331、在所述第二管道阶段,接收第一处理结果,并基于与所述第一管道阶段相同的传输方式,对所述第一任务对应的键值张量进行上传。
其中,所述第一处理结果为所述分布式执行引擎在所述第一管道阶段执行所述第一任务得到的处理结果。
在本申请实施例中,考虑到分布式执行引擎进行第一任务对应的键值张量的卸载或上传时的时间开销,第一管道阶段对应的处理器可以首先向第二管道阶段对应的处理器发送第一缓存交换指令、第二缓存交换指令和第三缓存交换指令中的任一种,然后再向第二管道阶段对应的处理器发送第一处理结果,使得第二管道阶段对应的处理器可以基于与第一管道阶段相同的传输方式,对第一任务对应的键值张量进行传输,并且同时接收第一管道阶段对应的处理器发送的第一中间结果。
需要说明的是,在分布式执行引擎的流水线包括2个以上的管道阶段的情况,以及每个管道阶段对应1个以上的处理器的情况下,均可以参照步骤S211对应的操作接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令,参照步骤S232和步骤S233对应的操作,基于第一缓存交换指令或第二缓存交换指令指示的传输方式,对第一任务对应的键值张量进行卸载或上传,进而参照步骤S2331对应的操作,实现处理结果的传输和第一任务对应的键值张量的传输同时进行,本申请实施例在此不再赘述。
作为一种示例,图4示出了本申请实施例提供的一种分布式键值缓存区域的执行逻辑示意图。如图4所示,分布式执行引擎包括1个流水线,该流水线包括3个管道阶段(第一管道阶段、第二管道阶段和第三管道阶段),并且每个管道阶段对应2个GPU 301。其中,第一管道阶段对应的GPU 301与任务调度组件中的键值缓存管理器203连接。
具体地,键值缓存管理器203在收到任务调度组件中的任务调度器发送的第一缓存交换指令或第二缓存交换指令的情况下,向第一管道阶段对应的GPU 301发送第一缓存交换指令或第二缓存交换指令;第一管道阶段对应的GPU 301根据第一缓存交换指令或第二缓存交换指令指示的第一任务对应的键值张量的传输方式,在GUP 301显存和主存3022之间对第一任务对应的键值张量进行缓存交换操作,其中,缓存交换操作包括卸载或上传;之后,第一管道阶段对应的GPU 301向第二管道阶段对应的GPU 301发送第一缓存交换指令或第二缓存交换指令,并向第二管道阶段对应的GPU 301发送第一处理器结果,使得第二管道阶段对应的GPU 301可以在基于与第一管道阶段相同的传输方式,对第一任务对应的键值张量进行缓存交换操作的同时,接收第一管道阶段对应的GPU 301发送的第一处理结果;之后,第二管道阶段对应的GPU 301向第三管道阶段对应的GPU 301发送第一缓存交换指令或第二缓存交换指令,并向第三管道阶段对应的GPU 301发送第二处理器结果,使得第三管道阶段对应的GPU 301可以在基于与第一管道阶段相同的传输方式,对第一任务对应的键值张量进行缓存交换操作的同时,接收第二管道阶段对应的GPU 301发送的第二处理结果,其中,第二处理结果为分布式执行引擎在第二管道阶段执行第一任务得到的处理结果。
通过本申请实施例提供的键值张量传输方法,实现了分布式执行引擎的流水线中处理结果的传输和键值张量的传输同时进行,避免了分布式执行引擎进行第一任务对应的键值张量的卸载或上传时的引入的额外的时间开销,在降低分布式执行引擎中内存开销的同时,还进一步保证了分布式执行引擎执行第一任务的效率。
综上,本申请实施例提供的服务器无感知计算中键值张量的传输方法,任务调度器首先确定第一任务的调度时间;然后在调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令,通过第一缓存交换指令指示第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载;在调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令,通过第二缓存交换指令指示第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;最后向分布式执行引擎发送第一缓存交换指令或第二缓存交换指令。实现了在第一任务的调度时间较长的情况下,通过第一缓存交换指令指示分布式执行引擎将第一任务对应的键值张量进行卸载,从而降低了分布式执行引擎中的内存开销;在第一任务调度时间较短的情况下,通过第二缓存交换指令指示分布式执行引擎将第一任务对应的键值张量上传,保证第一任务的顺利执行。由此,在维护已启动但未完成的任务的中间状态的同时,还降低了分布式执行引擎的内存开销。
系统实施例
第三方面,本申请实施例提供了一种服务器无感知计算中键值张量的传输系统,该系统包括包括任务调度组件和分布式执行引擎。
所述任务调度组件,用于确定第一任务的调度时间;并在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令;所述第一缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载;在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令;所述第二缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;以及向所述分布式执行引擎发送所述第一缓存交换指令或所述第二缓存交换指令。
所述分布式执行引擎,用于接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令;并在接收到所述第一缓存交换指令的情况下,将所述第一任务对应的键值张量卸载;在接收到所述第二缓存交换指令的情况下,将所述第一任务对应的键值张量上传。
作为一种示例,参照图5,图5示出了本申请实施例提供的一种服务器无感知计算中键值张量的传输系统的逻辑示意图。如图5所示,该服务器无感知计算中键值张量的传输系统包括任务池10、任务调度组件20和分布式执行引擎30。其中,任务池10中包括至少一个用户提交的大语言模型推理任务,任务池中的任务包括未被执行的任务和正在被执行的任务;任务调度组件20包括多级反馈队列调度器201、任务分析器202和键值缓存管理器203;分布式执行引擎30包括1个流水线,该流水线包括至少2个管道阶段,每个管道阶段对应2个GPU 301,分布式执行引擎30还包括分布式键值存储区域302。分布式键值存储区域302包括GPU显存3021和主存3022。
具体地,首先,多级反馈队列调度器201从任务池10中获取第一任务,第一任务为任务池10中的任一任务;然后,多级反馈队列调度器201从任务分析器202获取第一任务的启动阶段对应的执行时间,并根据执行时间确定第一任务对应的调度优先级;之后,多级反馈队列调度器201根据第一任务对应的调度优先级,获取至少一个第二任务,其中第二任务的调度优先级高于第一任务的调度优先级;然后,多级反馈队列调度器201根据第一任务的调度优先级,确定第一任务对应的初始调度时间;再然后,多级反馈队列调度器201获取至少一个第二任务对应的执行时间片,并计算至少一个第二任务对应的执行时间片之和,得到预估调度时间;再然后,多级反馈队列调度器201在预估调度时间大于或等于初始调度时间的情况下将初始调度时间确定为第一任务的调度时间,在预估调度时间小于初始调度时间的情况下,将预估调度时间确定为第一任务的调度时间;之后,多级反馈队列调度器201在调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令,该第一缓存交换指令用于指示第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载,在调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令,该第二缓存交换指令用于指示第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;最后,多级反馈队列调度器201将第一缓存交换指令或第二缓存交换指令发送到键值缓存管理器203,由键值缓存管理器203向分布式执行引擎30的分布式键值存储区域302发送第一缓存交换指令或第二缓存交换指令。此外,多级反馈队列调度器201还会在发送第二缓存交换指令的第一时刻或者满足第一任务执行时间的第二时刻向分布式执行引擎30发送第一指示,该第一指示用于指示分布式执行引擎30执行第一任务。
分布式执行引擎30中第一管道阶段对应的GPU1和GPU2在接收到键值缓存管理器203发送的第一缓存交换指令或第二缓存交换指令的情况下,根据第一缓存交换指令或第二缓存交换指令指示的第一任务对应的键值张量的传输方式,在GUP 显存3021和主存3022之间对第一任务对应的键值张量进行缓存交换操作,其中,缓存交换操作包括卸载或上传;之后,第一管道阶段对应的GPU1和GPU2向第二管道阶段对应的GPU3和GPU4发送第一缓存交换指令或第二缓存交换指令,并向第二管道阶段对应的GPU3和GPU4发送第一处理器结果,使得第二管道阶段对应的GPU3和GPU4可以在基于与第一管道阶段相同的传输方式,对第一任务对应的键值张量进行缓存交换操作的同时,接收第一管道阶段对应的GPU1和GPU2发送的第一处理结果。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
装置实施例
第四方面,本申请实施例还提供了一种服务器无感知计算中键值张量的传输装置,应用于任务调度组件,图6示出了本申请实施例提供的一种服务器无感知计算中键值张量的传输装置的逻辑框图,如图6所示,该装置包括:
确定模块610,用于确定第一任务的调度时间;
第一生成模块620,用于在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令;所述第一缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载;
第二生成模块630,用于在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令;所述第二缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;
第一发送模块640,用于向所述分布式执行引擎发送所述第一缓存交换指令或所述第二缓存交换指令。
在一种可选的实施方式中,所述确定模块,包括:
第一获取子模块,用于获取第一任务的启动阶段对应的执行时间;
第一确定子模块,用于根据所述执行时间确定所述第一任务对应的调度优先级;
第二获取子模块,用于获取至少一个第二任务;所述第二任务的调度优先级高于所述第一任务的调度优先级;
第二确定子模块,用于根据所述第一任务和所述至少一个第二任务,确定所述第一任务的调度时间。
在一种可选的实施方式中,所述第二确定子模块,包括:
第一确定单元,用于根据所述第一任务的调度优先级,确定所述第一任务对应的初始调度时间;
第一获取单元,用于获取所述至少一个第二任务对应的执行时间片;
计算单元,用于计算所述至少一个第二任务对应的执行时间片之和,得到预估调度时间;
第二确定单元,用于在所述预估调度时间大于或等于所述初始调度时间的情况下,将所述初始调度时间确定为所述第一任务的调度时间;
第三确定单元,用于在所述预估调度时间小于所述初始调度时间的情况下,将所述预估调度时间确定为所述第一任务的调度时间。
在一种可选的实施方式中,所述分布式执行引擎包括预设键值缓存空间;所述预设键值缓存空间为根据所述分布式执行引擎的执行状态确定的键值缓存空间;
所述第一生成模块,包括:
第三获取子模块,用于在所述调度时间大于预设调度时间阈值的情况下,获取所述预设键值缓存空间的可用数量;
第一生成子模块,用于在所述预设键值缓存空间的可用数量小于或等于第一预设数量阈值的情况下,生成第一缓存交换指令;
所述第二生成模块,包括:
第四获取子模块,用于在所述调度时间小于或等于预设调度时间阈值的情况下,获取所述预设键值缓存空间的可用数量;
第二生成子模块,用于在所述预设键值缓存空间的可用数量大于或等于第二预设数量阈值的情况下,生成第二缓存交换指令。
在一种可选的实施方式中,所述装置还包括:
第二发送模块,用于向所述分布式执行引擎发送第一指示;所述第一指示用于指示所述分布式执行引擎执行所述第一任务;
其中,所述第一指示的发送时机包括以下至少一项:
发送所述第二缓存交换指令的第一时刻;
满足所述第一任务执行时间的第二时刻。
第五方面,本申请实施例还提供了另一种服务器无感知计算中键值张量的传输装置,应用于分布式执行引擎,图7示出了本申请实施例提供的另一种服务器无感知计算中键值张量的传输装置的逻辑框图,如图7所示,该装置包括:
第一接收模块710,用于接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令;所述第一缓存交换指令为所述任务调度组件在调度时间大于预设调度时间阈值的情况下,生成的缓存交换指令;所述第二缓存交换指令为所述任务调度组件在所述调度时间小于或等于预设调度时间阈值的情况下,生成的缓存交换指令;
卸载模块720,用于在接收到所述第一缓存交换指令的情况下,将第一任务对应的键值张量卸载;
上传模块730,用于在接收到所述第二缓存交换指令的情况下,将所述第一任务对应的键值张量上传。
在一种可选的实施方式中,所述卸载模块,包括:
卸载子模块,用于将第一任务对应的键值张量从处理器内存卸载至主存;
所述上传模块,包括:
第一上传子模块,用于将所述第一任务对应的键值张量从主存上传至处理器内存。
在一种可选的实施方式中,所述装置还包括:
第二接收模块,用于接收所述任务调度组件发送的第一指示;所述第一指示用于指示所述分布式执行引擎执行所述第一任务;
获取模块,用于获取所述第一任务对应的键值张量;
执行模块,用于根据所述键值张量,执行所述第一任务。
在一种可选的实施方式中,所述分布式执行引擎包括至少一个流水线,所述流水线包括第一管道阶段和第二管道阶段,所述第二管道阶段为所述第一管道阶段的下一个管道阶段;所述第一接收模块,包括:
接收子模块,用于在所述第一管道阶段接收所述任务调度组件发送的接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令;
所述上传模块,包括:
第二上传子模块,用于在所述第一管道阶段,基于所述第一缓存交换指令指示的传输方式,对所述第一任务对应的键值张量进行上传;
第三上传子模块,用于在所述第二管道阶段,基于与所述第一管道阶段相同的传输方式,对所述第一任务对应的键值张量进行上传。
在一种可选的实施方式中,所述第三上传子模块,包括:
上传单元,用于在所述第二管道阶段,接收第一处理结果,并基于与所述第一管道阶段相同的传输方式,对所述第一任务对应的键值张量进行上传;
其中,所述第一处理结果为所述分布式执行引擎在所述第一管道阶段执行所述第一任务得到的处理结果。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
第六方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现如上所述的服务器无感知计算中键值张量的传输方法。
第七方面,本申请实施例还提供了一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的服务器无感知计算中键值张量的传输方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以预测方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种服务器无感知计算中键值张量的传输方法、系统和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种服务器无感知计算中键值张量的传输方法,其特征在于,应用于任务调度组件,所述方法包括:
确定第一任务的调度时间;
在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令;所述第一缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载;
在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令;所述第二缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;
向所述分布式执行引擎发送所述第一缓存交换指令或所述第二缓存交换指令。
2.根据权利要求1所述的方法,其特征在于,所述确定第一任务的调度时间,包括:
获取第一任务的启动阶段对应的执行时间;
根据所述执行时间确定所述第一任务对应的调度优先级;
获取至少一个第二任务;所述第二任务的调度优先级高于所述第一任务的调度优先级;
根据所述第一任务和所述至少一个第二任务,确定所述第一任务的调度时间。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一任务和所述至少一个第二任务,确定所述第一任务的调度时间,包括:
根据所述第一任务的调度优先级,确定所述第一任务对应的初始调度时间;
获取所述至少一个第二任务对应的执行时间片;
计算所述至少一个第二任务对应的执行时间片之和,得到预估调度时间;
在所述预估调度时间大于或等于所述初始调度时间的情况下,将所述初始调度时间确定为所述第一任务的调度时间;
在所述预估调度时间小于所述初始调度时间的情况下,将所述预估调度时间确定为所述第一任务的调度时间。
4.根据权利要求1所述的方法,其特征在于,所述分布式执行引擎包括预设键值缓存空间;所述预设键值缓存空间为根据所述分布式执行引擎的执行状态确定的键值缓存空间;
所述在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令,包括:
在所述调度时间大于预设调度时间阈值的情况下,获取所述预设键值缓存空间的可用数量;
在所述预设键值缓存空间的可用数量小于或等于第一预设数量阈值的情况下,生成第一缓存交换指令;
所述在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令,包括:
在所述调度时间小于或等于预设调度时间阈值的情况下,获取所述预设键值缓存空间的可用数量;
在所述预设键值缓存空间的可用数量大于或等于第二预设数量阈值的情况下,生成第二缓存交换指令。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述分布式执行引擎发送第一指示;所述第一指示用于指示所述分布式执行引擎执行所述第一任务;
其中,所述第一指示的发送时机包括以下至少一项:
发送所述第二缓存交换指令的第一时刻;
满足所述第一任务执行时间的第二时刻。
6.一种服务器无感知计算中键值张量的传输方法,其特征在于,应用于分布式执行引擎,所述方法包括:
接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令;所述第一缓存交换指令为所述任务调度组件在调度时间大于预设调度时间阈值的情况下,生成的缓存交换指令;所述第二缓存交换指令为所述任务调度组件在所述调度时间小于或等于预设调度时间阈值的情况下,生成的缓存交换指令;
在接收到所述第一缓存交换指令的情况下,将第一任务对应的键值张量卸载;
在接收到所述第二缓存交换指令的情况下,将所述第一任务对应的键值张量上传。
7.根据权利要求6所述的方法,其特征在于,所述将第一任务对应的键值张量卸载,包括:
将第一任务对应的键值张量从处理器内存卸载至主存;
所述将所述第一任务对应的键值张量上传,包括:
将所述第一任务对应的键值张量从主存上传至处理器内存。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收所述任务调度组件发送的第一指示;所述第一指示用于指示所述分布式执行引擎执行所述第一任务;
获取所述第一任务对应的键值张量;
根据所述键值张量,执行所述第一任务。
9.根据权利要求6所述的方法,其特征在于,所述分布式执行引擎包括至少一个流水线,所述流水线包括第一管道阶段和第二管道阶段,所述第二管道阶段为所述第一管道阶段的下一个管道阶段;
所述接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令,包括:
在所述第一管道阶段接收所述任务调度组件发送的第一缓存交换指令或第二缓存交换指令;
所述在接收到所述第二缓存交换指令的情况下,将所述第一任务对应的键值张量上传,包括:
在所述第一管道阶段,基于所述第一缓存交换指令指示的传输方式,对所述第一任务对应的键值张量进行上传;
在所述第二管道阶段,基于与所述第一管道阶段相同的传输方式,对所述第一任务对应的键值张量进行上传。
10.根据权利要求9所述的方法,其特征在于,所述在所述第二管道阶段,基于与所述第一管道阶段相同的传输方式,对所述第一任务对应的键值张量进行上传,包括:
在所述第二管道阶段,接收第一处理结果,并基于与所述第一管道阶段相同的传输方式,对所述第一任务对应的键值张量进行上传;
其中,所述第一处理结果为所述分布式执行引擎在所述第一管道阶段执行所述第一任务得到的处理结果。
11.一种服务器无感知计算中键值张量的传输系统,其特征在于,所述系统包括任务调度组件和分布式执行引擎;
所述任务调度组件,用于确定第一任务的调度时间;并在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令;所述第一缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载;在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令;所述第二缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;以及向所述分布式执行引擎发送所述第一缓存交换指令或所述第二缓存交换指令;
所述分布式执行引擎,用于接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令;并在接收到所述第一缓存交换指令的情况下,将所述第一任务对应的键值张量卸载;在接收到所述第二缓存交换指令的情况下,将所述第一任务对应的键值张量上传。
12.一种服务器无感知计算中键值张量的传输装置,其特征在于,应用于任务调度组件,所述装置包括:
确定模块,用于确定第一任务的调度时间;
第一生成模块,用于在所述调度时间大于预设调度时间阈值的情况下,生成第一缓存交换指令;所述第一缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为卸载;
第二生成模块,用于在所述调度时间小于或等于预设调度时间阈值的情况下,生成第二缓存交换指令;所述第二缓存交换指令用于指示所述第一任务对应的键值张量在分布式执行引擎中的传输方式为上传;
第一发送模块,用于向所述分布式执行引擎发送所述第一缓存交换指令或所述第二缓存交换指令。
13.一种服务器无感知计算中键值张量的传输装置,其特征在于,应用于分布式执行引擎,所述装置包括:
第一接收模块,用于接收任务调度组件发送的第一缓存交换指令或第二缓存交换指令;所述第一缓存交换指令为所述任务调度组件在调度时间大于预设调度时间阈值的情况下,生成的缓存交换指令;所述第二缓存交换指令为所述任务调度组件在所述调度时间小于或等于预设调度时间阈值的情况下,生成的缓存交换指令;
卸载模块,用于在接收到所述第一缓存交换指令的情况下,将第一任务对应的键值张量卸载;
上传模块,用于在接收到所述第二缓存交换指令的情况下,将所述第一任务对应的键值张量上传。
14.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现如权利要求1至10任一项所述的服务器无感知计算中键值张量的传输方法。
15.一种可读存储介质,其特征在于,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述的服务器无感知计算中键值张量的传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310912846.1A CN116627621B (zh) | 2023-07-25 | 2023-07-25 | 服务器无感知计算中键值张量的传输方法、系统和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310912846.1A CN116627621B (zh) | 2023-07-25 | 2023-07-25 | 服务器无感知计算中键值张量的传输方法、系统和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116627621A true CN116627621A (zh) | 2023-08-22 |
CN116627621B CN116627621B (zh) | 2023-10-20 |
Family
ID=87597656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310912846.1A Active CN116627621B (zh) | 2023-07-25 | 2023-07-25 | 服务器无感知计算中键值张量的传输方法、系统和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116627621B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118036754A (zh) * | 2024-04-12 | 2024-05-14 | 清华大学 | 基于键值矩阵缓存的模型推理方法及装置、介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040187135A1 (en) * | 2003-02-18 | 2004-09-23 | Microsoft Corporation. | Systems and methods for scheduling coprocessor resources in a computing system |
CN113971083A (zh) * | 2021-10-25 | 2022-01-25 | 北京百度网讯科技有限公司 | 任务调度方法、装置、设备、介质及产品 |
CN115185658A (zh) * | 2022-07-05 | 2022-10-14 | 重庆邮电大学 | 一种基于时间和通信可靠的任务卸载调度方法及相关产品 |
CN116339934A (zh) * | 2022-12-01 | 2023-06-27 | 北京沃东天骏信息技术有限公司 | 任务执行方法、装置、电子设备及介质 |
-
2023
- 2023-07-25 CN CN202310912846.1A patent/CN116627621B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040187135A1 (en) * | 2003-02-18 | 2004-09-23 | Microsoft Corporation. | Systems and methods for scheduling coprocessor resources in a computing system |
CN113971083A (zh) * | 2021-10-25 | 2022-01-25 | 北京百度网讯科技有限公司 | 任务调度方法、装置、设备、介质及产品 |
CN115185658A (zh) * | 2022-07-05 | 2022-10-14 | 重庆邮电大学 | 一种基于时间和通信可靠的任务卸载调度方法及相关产品 |
CN116339934A (zh) * | 2022-12-01 | 2023-06-27 | 北京沃东天骏信息技术有限公司 | 任务执行方法、装置、电子设备及介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118036754A (zh) * | 2024-04-12 | 2024-05-14 | 清华大学 | 基于键值矩阵缓存的模型推理方法及装置、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116627621B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110262901B (zh) | 一种数据处理方法及数据处理系统 | |
US9135581B1 (en) | Resource constrained task scheduling | |
CN113535367B (zh) | 任务调度方法及相关装置 | |
US20160132329A1 (en) | Parallel processing in hardware accelerators communicably coupled with a processor | |
CN113254178A (zh) | 一种任务调度方法、装置、电子设备及可读存储介质 | |
US20080066070A1 (en) | Method and system for the dynamic scheduling of jobs in a computing system | |
CN116627621B (zh) | 服务器无感知计算中键值张量的传输方法、系统和装置 | |
Kang et al. | Lalarand: Flexible layer-by-layer cpu/gpu scheduling for real-time dnn tasks | |
Fang et al. | Qos-aware scheduling of heterogeneous servers for inference in deep neural networks | |
CN115237581B (zh) | 一种面向异构算力的多策略智能调度方法和装置 | |
CN107341041B (zh) | 基于优先队列的云任务多维约束回填调度方法 | |
CN107193655B (zh) | 一种基于效用函数的面向大数据处理的公平资源调度方法 | |
Yang et al. | Deeprt: A soft real time scheduler for computer vision applications on the edge | |
CN116048721A (zh) | 一种gpu集群的任务分配方法、装置、电子设备和介质 | |
CN113765949A (zh) | 资源分配的方法以及装置 | |
Jia et al. | A deadline constrained preemptive scheduler using queuing systems for multi-tenancy clouds | |
Qureshi et al. | Grid resource allocation for real-time data-intensive tasks | |
CN116708451A (zh) | 一种边云协同调度方法及系统 | |
CN113127173B (zh) | 一种异构感知的集群调度方法及装置 | |
CN114816709A (zh) | 任务调度方法、装置、服务器及可读存储介质 | |
CN116795503A (zh) | 任务调度方法、任务调度装置、图形处理器及电子设备 | |
CN116204282A (zh) | 一种深度学习算法模型推理调度引擎架构及方法 | |
CN113094155B (zh) | Hadoop平台下的任务调度方法及装置 | |
CN114490002A (zh) | 数据处理系统、任务调度方法、装置、芯片、及电子设备 | |
Massa et al. | Heterogeneous quasi-partitioned scheduling |
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 |