CN117873731A - 计算任务的执行方法、装置、芯片、设备和存储介质 - Google Patents
计算任务的执行方法、装置、芯片、设备和存储介质 Download PDFInfo
- Publication number
- CN117873731A CN117873731A CN202410177323.1A CN202410177323A CN117873731A CN 117873731 A CN117873731 A CN 117873731A CN 202410177323 A CN202410177323 A CN 202410177323A CN 117873731 A CN117873731 A CN 117873731A
- Authority
- CN
- China
- Prior art keywords
- computing
- throughput
- target
- computing nodes
- nodes
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000008569 process Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000013468 resource allocation Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 9
- 238000000605 extraction Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供了一种计算任务的执行方法、装置、芯片、设备、存储介质以及程序产品,涉及计算机技术领域,尤其涉及资源分配和芯片技术领域。具体实现方案为:确定用于执行计算任务的多个计算节点各自的初始吞吐量;根据初始吞吐量,从多个计算节点中确定多个目标计算节点,多个目标计算节点的初始吞吐量小于吞吐量阈值;针对多个计算节点集合的每个计算节点集合,确定每个计算节点集合独占缓存资源的情况下执行计算任务产生的总吞吐量,得到多个总吞吐量,每个计算节点集合包括多个目标计算节点中至少一个目标计算节点;在目标计算节点集合独占缓存资源的情况下,执行计算任务,目标计算节点集合为与多个总吞吐量中的最大总吞吐量对应计算节点集合。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及资源分配和芯片技术领域。
背景技术
在类神经网络处理器(Neural Network Processing Unit,NPU)的硬件架构中运行多个模型时,多个模型各自的运行进程抢占使用高速缓存,这会造成高速缓存的利用率低下,运行效率低等问题。
发明内容
本公开提供了一种计算任务的执行方法、装置、芯片、设备、存储介质以及程序产品。
根据本公开的一方面,提供了一种计算任务的执行方法,包括确定用于执行计算任务的多个计算节点各自的初始吞吐量;根据初始吞吐量,从多个计算节点中确定多个目标计算节点,多个目标计算节点的初始吞吐量小于吞吐量阈值;针对多个计算节点集合的每个计算节点集合,确定每个计算节点集合独占缓存资源的情况下执行计算任务产生的总吞吐量,得到多个总吞吐量,每个计算节点集合包括多个目标计算节点中的至少一个目标计算节点;以及在目标计算节点集合独占缓存资源的情况下,执行计算任务,其中,目标计算节点集合为与多个总吞吐量中的最大总吞吐量对应计算节点集合。
根据本公开的另一方面,提供了一种计算任务的执行装置,包括:第一确定模块,被配置为确定用于执行计算任务的多个计算节点各自的初始吞吐量;第二确定模块,被配置为根据初始吞吐量,从多个计算节点中确定多个目标计算节点,多个目标计算节点的初始吞吐量小于吞吐量阈值;第三确定模块,被配置为针对多个计算节点集合的每个计算节点集合,确定每个计算节点集合独占缓存资源的情况下执行计算任务产生的总吞吐量,得到多个总吞吐量,每个计算节点集合包括多个目标计算节点中的至少一个目标计算节点;以及执行模块,被配置为在目标计算节点集合独占缓存资源的情况下,执行计算任务,其中,目标计算节点集合为与多个总吞吐量中的最大总吞吐量对应计算节点集合。
根据本公开的另一方面,提供了一种芯片,包括本公开提供的计算任务的执行装置。
本公开的另一个方面提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供计算任务的执行方法。
根据本公开实施例的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的计算任务的执行方法。
根据本公开实施例的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现本公开提供的计算任务的执行方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的计算任务的执行方法和装置的应用场景示意图;
图2是根据本公开实施例的计算任务的执行方法的流程示意图;
图3是根据本公开实施例的确定计算节点集合的示意图;
图4是根据本公开另一实施例的计算任务的执行方法的流程示意图;
图5是根据本公开实施例计算任务的执行装置的结构框图;
图6是根据本公开实施例芯片的结构框图;以及
图7是用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开的技术方案中,所涉及的数据(如包括但不限于用户个人信息)的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
以下先结合图1是根据本公开实施例的计算任务的执行方法和装置的应用场景示意图。
如图1所示,计算系统100可以包括计算节点1、计算节点2、计算节点3和计算节点4。
在一实施例中,计算节点1、计算节点2、计算节点3和计算节点4可以为计算系统中的不同的功能模块。计算节点1、计算节点2、计算节点3和计算节点4可以形成计算管道pipeline。例如,计算系统100用于执行某一计算任务,计算节点1、计算节点2、计算节点3和计算节点4用于依次执行计算任务中的一个计算子任务。
在一实施例中,在计算系统100执行计算任务时,用户可以为计算节点1、计算节点2、计算节点3和计算节点4分配相应的计算资源,以提升各个计算节点的计算速率。例如,计算资源可以为高速缓存资源。基于高速缓存资源执行计算任务,可以提高计算节点的数据读写能力,从而提高计算速率。
例如,将高速缓存资源分配给计算节点1、计算节点2、计算节点3和计算节点4,计算节点1、计算节点2、计算节点3和计算节点4抢占使用高速缓存资源。但是在这种情况下,计算系统100的计算性能不稳定。当非计算热点的计算节点抢占到高速缓存时,对计算系统100的性能提升较低。例如,计算热点为计算数据量较大的计算节点。当计算热点的计算效率较低时,会影响计算管道中位于计算热点之后的计算节点执行计算子任务的执行效率,从而降低计算系统100的整体计算效率。
例如,将高速缓存资源平均分配给计算节点1、计算节点2、计算节点3和计算节点4,计算节点1、计算节点2、计算节点3和计算节点4均分使用高速缓存资源。但是在这种情况下,计算系统100的计算性能也无法得到有效的提升不稳定。当多个计算节点均分使用高速缓存时,每个计算节点获得的高速缓存资源较少,每个计算节点在执行计算子任务时无法充分利用高速缓存资源,因此对计算系统100的整体计算效率的提升较低。
基于上述问题,本公开提供了一种计算任务的执行方法,通过为计算系统100中的计算热点分配相应的高速缓存资源,充分发挥高速缓存的读写优势,从而提高计算系统100的整体计算效率。
以下结合图2至图4对本公开提供的计算任务的执行方法进行详细描述。
图2是根据本公开实施例的计算任务的执行方法的流程示意图。
如图2所示,该实施例的计算任务的执行方法200可以包括操作S210~操作S240。
在操作S210,确定用于执行计算任务的多个计算节点各自的初始吞吐量。
例如,计算任务可以是神经网络模型的训练任务,多个计算节点分别用于执行训练任务中的构建数据集、卷积运算、全连接运算、计算模型损失和更新模型等子任务。例如,计算任务可以是语音识别任务,多个计算节点分别用于执行语音识别任务中的获取语音数据、提取语音特征、分析语音特征等子任务。例如,计算任务可以是人脸检测任务,多个计算节点分别用于执行人脸检测任务中的人脸图像识别、人脸图像质量筛选、人脸图像矫正和人脸图像特征提取等子任务。
例如,可以通过多个计算节点计算各自的子任务,确定多个计算节点各自的初始吞吐量。
例如,初始吞吐量可以是多个计算节点在不使用高速缓存资源的情况下确定。
例如,吞吐量可以是计算节点在执行计算子任务时传递数据的速率。例如,吞吐量可以由数据流入计算节点的速率、计算节点处理数据的速率和数据流出计算节点的速率确定。
在操作S220,根据初始吞吐量,从多个计算节点中确定多个目标计算节点。
在本公开实施例中,多个目标计算节点的初始吞吐量小于吞吐量阈值。
例如,吞吐量的大小与计算节点将数据存入内存的速率、计算节点取指的速率、计算节点从内存中读取数据的速率以及计算节点传输计算结果的速率相关。因此,计算节点的吞吐量大表示该计算节点执行计算子任务的速度快、效率高。计算节点的吞吐量小表示该计算节点执行计算子任务的速度慢、效率低。
根据多个计算节点各自的初始吞吐量可以确定多个计算节点各自的执行效率。目标计算节点可以是多个计算节点中执行速度较慢的计算节点。
例如,根据多个计算节点的平均初始吞吐量设置吞吐量阈值。确定初始吞吐量小于吞吐量阈值的计算节点为目标计算节点。再例如,可以根据实际的计算速率需求,设置吞吐量阈值。当计算节点的初始吞吐量小于吞吐量阈值时,确定该计算节点的计算速率小于最低计算要求。再例如,可以对多个计算节点的初始吞吐量由低到高排序,选择排名前K个的初始吞吐量对应的计算节点为目标计算节点,K可以为大于1的正整数,K的取值根据实际的需求设置。
目标计算节点处理的数据量较大,因此会造成处理速度较慢。目标计算节点由于初始吞吐量较低,目标计算节点为多个计算节点中的计算瓶颈或计算热点。通过确定多个计算节点中的目标计算节点,后续可以着重优化目标计算节点的缓存资源使用情况,从而可以更加精确地提供计算任务的整体执行效率。
在操作S230,针对多个计算节点集合的每个计算节点集合,确定每个计算节点集合独占缓存资源的情况下执行计算任务产生的总吞吐量,得到多个总吞吐量。
在本公开实施例中,每个计算节点集合包括多个目标计算节点中的至少一个目标计算节点。
例如,以不同的选取方式,从多个目标计算节点中任一选取至少一个目标计算节点,组成一个计算节点集合。多个计算节点集合包括的目标计算节点的数量可以相同,也可以不同。多个计算节点集合可以分别包括不同的目标计算节点。多个计算节点集合包括的目标计算节点也可以部分重合。
由于计算节点的吞吐量与存取数据的速率相关,因此利用高速缓存进行存取数据的计算节点的吞吐量较大,执行效率也高。将高速缓存分配给目标计算节点集合,使计算节点集合包括的目标计算节点使用高速缓存,可以提高目标计算节点执行就算子任务的执行效率,从而提高计算任务的整体执行效率。
在本公开实施例中,将高速缓存分配多个计算节点集合中的一个计算节点集合,使得在仅有该计算节点集合中的目标计算节点能够使用高速缓存的情况下,确定多个计算节点执行计算任务的总吞吐量。
例如,针对M个计算节点集合,在一个计算节点集合独占缓存资源的情况下,确定多个计算节点执行计算任务产生的总吞吐量,由此可以得到M个总吞吐量。
在操作S240,在目标计算节点集合独占缓存资源的情况下,执行计算任务。
在本公开实施例中,目标计算节点集合为与多个总吞吐量中的最大总吞吐量对应计算节点集合。
例如,由于M个总吞吐量是基于M个计算节点集合分别独占高速缓存的情况确定的,因此可以确定当最大吞吐量对应的计算节点集合独占高速缓存时,执行计算任务时产生的总吞吐量最大,执行计算任务的速率最大。
在本公开实施例中,基于多种方式控制目标计算节点对高速缓存的使用,确定不同的目标计算节点使用高速缓存的情况下,执行计算任务的总吞吐量。基于最大总吞吐量确定最优的高速缓存资源的分配方式,在最优分配方式下,执行计算任务,提高执行效率。此外,当基于某种分配方式提高某一计算节点集合内目标计算节点的吞吐量时,但可能会造成总吞吐量的降低,因此基于总吞吐量确定目标计算节点集合,可以准确提高计算任务的整体执行效率。
图3是根据本公开实施例的确定计算节点集合的示意图。
如图3所示,多个计算节点301包括计算节点1、计算节点2、计算节点3和计算节点4。根据计算节点1、计算节点2、计算节点3和计算节点4各自的初始吞吐量,确定多个目标计算节点302。
在一些实施例中,确定用于执行计算任务的多个计算节点各自的初始吞吐量包括:在为多个计算节点均未分配缓存资源的情况下,确定基于多个计算节点执行计算任务时多个计算节点各自的初始吞吐量。
例如,在计算节点1、计算节点2、计算节点3和计算节点4均不使用高速缓存的情况下,执行计算任务,以确定计算节点1、计算节点2、计算节点3和计算节点4各自执行子任务的吞吐量。初始吞吐量表示多个计算节点均不使用高速缓存时,每个计算节点的吞吐量。
基于初始吞吐量,可以确定每个计算节点原本的计算能力,即计算节点不借助外部资源以及不受其他计算节点影响状态下的计算能力。不受其他计算节点影响是指其他计算节点也不借助外部资源,当某一计算节点借助外部资源提高计算速率后,其他计算节点也会受到相应的影响。例如,前一计算节点计算速率提高后,输出计算结果的效率提高,后一计算节点提前获取到输入数据可能会提高计算效率,也可能会造成计算阻塞降低计算效率。因此,在计算节点1、计算节点2、计算节点3和计算节点4均不使用高速缓存的情况下,执行计算任务,可以确定计算节点1、计算节点2、计算节点3和计算节点4各自原本的吞吐量。
在本公开实施例中,多个目标计算节点302包括目标计算节点1和目标计算节点2。例如,目标计算节点1可以是计算节点1,计算节点1可以是初始吞吐量最小的计算节点。例如,目标计算节点2可以是计算节点3,计算节点3可以是初始吞吐量第二小的计算节点。
在本公开实施例中,将多个目标计算节点302划分为多个计算节点集合303。多个计算节点集合303包括计算节点集合331、计算节点集合332和计算节点集合333。例如,计算节点集合331包括目标计算节点1,计算节点集合332包括目标计算节点2,计算节点集合333包括目标计算节点1和目标计算节点2。
在本公开实施例中,针对多个计算节点集合303的每个计算节点集合,确定计算节点集合331、计算节点集合332和计算节点集合333分别独占缓存资源的情况下执行计算任务产生的总吞吐量,得到3个总吞吐量。
在一些实施例中,确定多个目标计算节点302中的瓶颈计算节点,并确定瓶颈计算节点独占缓存资源的情况下执行计算任务产生的第一总吞吐量。瓶颈计算节点为多个目标计算节点中初始吞吐量最小的计算节点,例如目标计算节点1为瓶颈计算节点。瓶颈节点的初始吞吐量最小,因此瓶颈计算节点的计算速率对总吞吐量的影响最大,可以优先考虑使计算节点集合331的目标计算节点1独占高速缓存,并在此种情况下确定总吞吐量。
例如,将缓存资源分配给瓶颈计算节点包括的多个计算进程;在多个计算进程共享缓存资源的情况下,确定基于多个计算节点执行计算任务时多个计算节点各自的第一吞吐量;以及根据多个计算节点各自的第一吞吐量,确定第一总吞吐量。
瓶颈计算节点可以运行多个计算进程,当瓶颈计算节点独占高速缓存时,瓶颈计算节点的多个计算进程可以共享高速缓存。例如,多个计算进程抢占使用高速缓存,可以均分使用高速缓存。
例如,目标计算节点1(计算节点1)独占高速缓存,多个计算节点中除目标计算节点1(计算节点1)以外的剩余计算节点均不能使用高速缓存,在此种情况下,基于计算节点1、计算节点2、计算节点3和计算节点4执行计算任务,确定计算节点1、计算节点2、计算节点3和计算节点4各自的第一吞吐量,从而确定第一总吞吐量。
例如,总吞吐量表征多个计算节点执行计算任务的整体速率,第一总吞吐量可以由多个计算节点各自的第一吞吐量之和表示,也可以由多个计算节点各自的第一吞吐量的平均值表示。
在一些实施例中,可以确定多个目标计算节点共享缓存资源的情况下执行计算任务产生的第二总吞吐量。例如,为计算节点集合333包括的目标计算节点1和目标计算节点2分配高速缓存。
由于目标计算节点1和目标计算节点2均为吞吐量较小的计算节点,为目标计算节点1和目标计算节点2分配高速缓存,优化所有的目标计算节点的执行效率,从而提升整体的执行效率。
例如,将缓存资源分配给多个目标计算节点各自包括的多个计算进程;在多个目标计算节点各自的多个计算进程共享缓存资源的情况下,确定基于多个计算节点执行计算任务时多个计算节点各自的第二吞吐量;以及根据多个计算节点各自的第二吞吐量,确定第二总吞吐量。
例如,目标计算节点1和目标计算节点2可以分别运行了多个计算进程,当计算节点集合333独占高速缓存时,目标计算节点1和目标计算节点2各自的多个计算进程可以共享高速缓存。例如,多个计算进程抢占使用高速缓存,可以均分使用高速缓存。
例如,计算节点集合333(计算节点1和计算节点3)独占高速缓存,多个计算节点中除计算节点1和计算节点3以外的剩余计算节点均不能使用高速缓存,在此种情况下,基于计算节点1、计算节点2、计算节点3和计算节点4执行计算任务,确定计算节点1、计算节点2、计算节点3和计算节点4各自的第二吞吐量,从而确定第二总吞吐量。
例如,第二总吞吐量可以由多个计算节点各自的第二吞吐量之和表示,也可以由多个计算节点各自的第二吞吐量的平均值表示。
在一些实施例中,还可以针对多个目标计算节点的每个目标计算节点,确定每个目标计算节点独占缓存资源的情况下,执行计算任务产生的多个总吞吐量。
例如,确定计算节点集合331和计算节点集合332分别独占缓存资源的情况下,执行计算任务产生的两个总吞吐量。
例如,目标计算节点2(计算节点3)独占高速缓存,多个计算节点中除计算节点3以外的剩余计算节点均不能使用高速缓存,在此种情况下,基于计算节点1、计算节点2、计算节点3和计算节点4执行计算任务,确定计算节点1、计算节点2、计算节点3和计算节点4各自的第三吞吐量,从而确定第三总吞吐量。通过比较第一总吞吐量和第三总吞吐量,确定最大总吞吐量。
由于多个计算节点抢占使用高速缓存时可能无法充分利用高速缓存,因此通过分别确定每个目标计算节点独占高速缓存时执行计算任务的总吞吐量,可以确定每个目标计算节点对整体执行效率的影响,从而确定可以导致整体执行效率提升最大的目标计算节点。
在本公开实施例中,通过多种分配方式为多个目标计算节点分配高速缓存时,可以充分挖掘高速缓存的利用率,并充分利用高速缓存,以对整体执行效率提升最大的方式分配高速缓存。
图4是根据本公开另一实施例的计算任务的执行方法的流程示意图。
如图4所示,在实施例400中,利用类NPU架构的计算卡,搭建人脸检测服务系统以执行人脸检测任务,每个计算节点运行一个模型,以执行计算子任务。
例如,用于执行人脸检测任务的多个计算节点401包括计算节点411、计算节点412、计算节点413和计算节点414。计算节点411、计算节点412、计算节点413和计算节点414依次运行对应的模型。计算节点411运行人脸识别模型,计算节点412运行人脸质量筛选模型,计算节点413运行人脸矫正模型,计算节点414运行人脸特征提取模型。
在为多个计算节点401均未分配高速缓存的情况下,确定基于多个计算节点401执行人脸检测任务时多个计算节点401各自的初始吞吐量。根据多个计算节点401各自的初始吞吐量,确定多个目标计算节点402。多个目标计算节点402包括运行人脸识别模型的计算节点411和运行人脸特征提取模型的计算节点414,其中计算节点414的初始吞吐量最小,计算节点414为瓶颈计算节点,计算节点411的初始吞吐量第二小。
根据多个目标计算节点402,构建计算节点集合403和计算节点集合404。计算节点集合403包括运行人脸特征提取模型的计算节点414,计算节点集合404包括运行人脸识别模型的计算节点411和运行人脸特征提取模型的计算节点414。
在运行人脸特征提取模型的计算节点414独占缓存资源405且其他计算节点不使用缓存资源405的情况下,确定计算节点411、计算节点412、计算节点413和计算节点414执行人脸检测任务的第一总吞吐量406。在运行人脸识别模型的计算节点411和运行人脸特征提取模型的计算节点414抢占使用缓存资源405且其他计算节点不使用缓存资源405的情况下,确定计算节点411、计算节点412、计算节点413和计算节点414执行人脸检测任务的第二总吞吐量407。
在本一些实施例中,从多个计算节点集合中确定目标计算节点集合;将缓存资源分配给目标计算节点集合;以及在目标计算节点包括的至少一个目标节点共享缓存资源的情况下,执行计算任务。
例如,从第一总吞吐量406和第二总吞吐量407中确定最大吞吐量,从而确定目标计算节点集合。例如第一总吞吐量406为目标计算节点集合,将高速缓存仅分配给计算节点414,使计算节点414独占高速缓存以提高运行人脸特征提取模型的速率,从而提高计算人脸检测任务的整体效率。在相同硬件资源与相同应用场景下,可以提升高速缓存的利用率,提升多个计算节点的吞吐量,减少负载的运算时间。
基于本公开提供的计算任务的执行方法,本公开还提供了一种计算任务的执行装置,以下将结合图5对该装置进行详细描述。
图5是根据本公开实施例计算任务的执行装置的结构框图。
如图5所示,该实施例的计算任务的执行装置500可以包括第一确定模块510、第二确定模块520、第三确定模块530和执行模块540。
第一确定模块510被配置为确定用于执行计算任务的多个计算节点各自的初始吞吐量。在一实施例中,第一确定模块510可以用于执行上文描述的操作S2 1 0,在此不再赘述。
第二确定模块520被配置根据初始吞吐量,从多个计算节点中确定多个目标计算节点,多个目标计算节点的初始吞吐量小于吞吐量阈值。在一实施例中,第二确定模块520以用于执行上文描述的操作S220,在此不再赘述。
第三确定模块530被配置针对多个计算节点集合的每个计算节点集合,确定每个计算节点集合独占缓存资源的情况下执行计算任务产生的总吞吐量,得到多个总吞吐量,每个计算节点集合包括多个目标计算节点中的至少一个目标计算节点。在一实施例中,第三确定模块530以用于执行上文描述的操作S230,在此不再赘述。
执行模块540被配置在目标计算节点集合独占缓存资源的情况下,执行计算任务,其中,目标计算节点集合为与多个总吞吐量中的最大总吞吐量对应计算节点集合。在一实施例中,执行模块540以用于执行上文描述的操作S240,在此不再赘述。
在本公开实施例中,上述第三确定模块530包括:第一确定单元,被配置为确定多个目标计算节点中的瓶颈计算节点,瓶颈计算节点为多个目标计算节点中初始吞吐量最小的计算节点;第二确定单元,被配置为确定瓶颈计算节点独占缓存资源的情况下执行计算任务产生的第一总吞吐量;以及第三确定单元,被配置为确定多个目标计算节点共享缓存资源的情况下执行计算任务产生的第二总吞吐量。
在本公开实施例中,上述第二确定单元被配置为确定瓶颈计算节点独占缓存资源的情况下执行计算任务产生的第一总吞吐量包括:将缓存资源分配给瓶颈计算节点包括的多个计算进程;在多个计算进程共享缓存资源的情况下,确定基于多个计算节点执行计算任务时多个计算节点各自的第一吞吐量;以及根据多个计算节点各自的第一吞吐量,确定第一总吞吐量。
在本公开实施例中,上述第三确定单元被配置为确定多个目标计算节点共享缓存资源的情况下执行计算任务产生的第二总吞吐量包括:将缓存资源分配给多个目标计算节点各自包括的多个计算进程;在多个目标计算节点各自的多个计算进程共享缓存资源的情况下,确定基于多个计算节点执行计算任务时多个计算节点各自的第二吞吐量;以及根据多个计算节点各自的第二吞吐量,确定第二总吞吐量。
在本公开实施例中,上述第三确定模块530还包括:第四确定单元,被配置为针对多个目标计算节点的每个目标计算节点,确定每个目标计算节点独占缓存资源的情况下,执行计算任务产生的多个总吞吐量。
在本公开实施例中,上述第一确定模块510包括:第五确定单元,被配置为在为多个计算节点均未分配缓存资源的情况下,确定基于多个计算节点执行计算任务时多个计算节点各自的初始吞吐量。
在本公开实施例中,上述执行模块540包括:第六确定单元,被配置为从多个计算节点集合中确定目标计算节点集合;分配单元,被配置为将缓存资源分配给目标计算节点集合;以及执行单元,被配置为在目标计算节点包括的至少一个目标节点共享缓存资源的情况下,执行计算任务。
基于本公开提供的计算任务的执行装置,本公开还提供了一种芯片,以下将结合图6对该芯片进行详细描述。
图6是根据本公开实施例的芯片的结构框图。
如图6所示,该实施例的芯片600可以包括计算任务的执行装置610。
在本公开实施例中,计算任务的执行装置610可以为计算任务的执行装置500。
需要说明的是,本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示出了可以用来实施本公开实施例的方法的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储电子设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
电子设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如计算任务的执行方法。例如,在一些实施例中,计算任务的执行方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的计算任务的执行方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行计算任务的执行方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程计算任务的执行装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。其中,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual Private Server″,或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (18)
1.一种计算任务的执行方法,包括:
确定用于执行计算任务的多个计算节点各自的初始吞吐量;
根据所述初始吞吐量,从所述多个计算节点中确定多个目标计算节点,所述多个目标计算节点的初始吞吐量小于吞吐量阈值;
针对多个计算节点集合的每个计算节点集合,确定所述每个计算节点集合独占缓存资源的情况下执行所述计算任务产生的总吞吐量,得到多个总吞吐量,所述每个计算节点集合包括所述多个目标计算节点中的至少一个目标计算节点;以及
在目标计算节点集合独占所述缓存资源的情况下,执行所述计算任务,其中,所述目标计算节点集合为与所述多个总吞吐量中的最大总吞吐量对应计算节点集合。
2.根据权利要求1所述的方法,其中,所述针对多个计算节点集合的每个计算节点集合,确定所述每个计算节点集合独占缓存资源的情况下执行所述计算任务产生的总吞吐量,得到多个总吞吐量包括:
确定所述多个目标计算节点中的瓶颈计算节点,所述瓶颈计算节点为所述多个目标计算节点中初始吞吐量最小的计算节点;
确定所述瓶颈计算节点独占所述缓存资源的情况下执行所述计算任务产生的第一总吞吐量;以及
确定所述多个目标计算节点共享所述缓存资源的情况下执行所述计算任务产生的第二总吞吐量。
3.根据权利要求2所述的方法,其中,所述确定所述瓶颈计算节点独占所述缓存资源的情况下执行所述计算任务产生的第一总吞吐量包括:
将所述缓存资源分配给所述瓶颈计算节点包括的多个计算进程;
在所述多个计算进程共享所述缓存资源的情况下,确定基于所述多个计算节点执行所述计算任务时所述多个计算节点各自的第一吞吐量;以及
根据所述多个计算节点各自的第一吞吐量,确定所述第一总吞吐量。
4.根据权利要求2所述的方法,其中,所述确定所述多个目标计算节点共享所述缓存资源的情况下执行所述计算任务产生的第二总吞吐量包括:
将所述缓存资源分配给所述多个目标计算节点各自包括的多个计算进程;
在所述多个目标计算节点各自的多个计算进程共享所述缓存资源的情况下,确定基于所述多个计算节点执行所述计算任务时所述多个计算节点各自的第二吞吐量;以及
根据所述多个计算节点各自的第二吞吐量,确定所述第二总吞吐量。
5.根据权利要求1或2所述的方法,其中,所述针对多个计算节点集合的每个计算节点集合,确定所述每个计算节点集合独占缓存资源的情况下执行所述计算任务产生的总吞吐量,得到多个总吞吐量包括:
针对所述多个目标计算节点的每个目标计算节点,确定所述每个目标计算节点独占所述缓存资源的情况下,执行所述计算任务产生的多个总吞吐量。
6.根据权利要求1所述的方法,其中,所述确定用于执行计算任务的多个计算节点各自的初始吞吐量包括:
在为所述多个计算节点均未分配所述缓存资源的情况下,确定基于所述多个计算节点执行所述计算任务时所述多个计算节点各自的初始吞吐量。
7.根据权利要求1所述的方法,其中,所述在目标计算节点集合独占所述缓存资源的情况下,执行所述计算任务包括:
从所述多个计算节点集合中确定所述目标计算节点集合;
将所述缓存资源分配给所述目标计算节点集合;以及
在所述目标计算节点包括的至少一个目标节点共享所述缓存资源的情况下,执行所述计算任务。
8.一种计算任务的执行装置,包括:
第一确定模块,被配置为确定用于执行计算任务的多个计算节点各自的初始吞吐量;
第二确定模块,被配置为根据所述初始吞吐量,从所述多个计算节点中确定多个目标计算节点,所述多个目标计算节点的初始吞吐量小于吞吐量阈值;
第三确定模块,被配置为针对多个计算节点集合的每个计算节点集合,确定所述每个计算节点集合独占缓存资源的情况下执行所述计算任务产生的总吞吐量,得到多个总吞吐量,所述每个计算节点集合包括所述多个目标计算节点中的至少一个目标计算节点;以及
执行模块,被配置为在目标计算节点集合独占所述缓存资源的情况下,执行所述计算任务,其中,所述目标计算节点集合为与所述多个总吞吐量中的最大总吞吐量对应计算节点集合。
9.根据权利要求8所述的装置,其中,所述第三确定模块包括:
第一确定单元,被配置为确定所述多个目标计算节点中的瓶颈计算节点,所述瓶颈计算节点为所述多个目标计算节点中初始吞吐量最小的计算节点;
第二确定单元,被配置为确定所述瓶颈计算节点独占所述缓存资源的情况下执行所述计算任务产生的第一总吞吐量;以及
第三确定单元,被配置为确定所述多个目标计算节点共享所述缓存资源的情况下执行所述计算任务产生的第二总吞吐量。
10.根据权利要求9所述的装置,其中,所述第二确定单元被配置为确定所述瓶颈计算节点独占所述缓存资源的情况下执行所述计算任务产生的第一总吞吐量包括:
将所述缓存资源分配给所述瓶颈计算节点包括的多个计算进程;
在所述多个计算进程共享所述缓存资源的情况下,确定基于所述多个计算节点执行所述计算任务时所述多个计算节点各自的第一吞吐量;以及
根据所述多个计算节点各自的第一吞吐量,确定所述第一总吞吐量。
11.根据权利要求9所述的装置,其中,所述第三确定单元被配置为确定所述多个目标计算节点共享所述缓存资源的情况下执行所述计算任务产生的第二总吞吐量包括:
将所述缓存资源分配给所述多个目标计算节点各自包括的多个计算进程;
在所述多个目标计算节点各自的多个计算进程共享所述缓存资源的情况下,确定基于所述多个计算节点执行所述计算任务时所述多个计算节点各自的第二吞吐量;以及
根据所述多个计算节点各自的第二吞吐量,确定所述第二总吞吐量。
12.根据权利要求8或9所述的装置,其中,所述第三确定模块包括:
第四确定单元,被配置为针对所述多个目标计算节点的每个目标计算节点,确定所述每个目标计算节点独占所述缓存资源的情况下,执行所述计算任务产生的多个总吞吐量。
13.根据权利要求8所述的装置,其中,所述第一确定模块包括:
第五确定单元,被配置为在为所述多个计算节点均未分配所述缓存资源的情况下,确定基于所述多个计算节点执行所述计算任务时所述多个计算节点各自的初始吞吐量。
14.根据权利要求8所述的装置,其中,所述执行模块包括:
第六确定单元,被配置为从所述多个计算节点集合中确定所述目标计算节点集合;
分配单元,被配置为将所述缓存资源分配给所述目标计算节点集合;以及
执行单元,被配置为在所述目标计算节点包括的至少一个目标节点共享所述缓存资源的情况下,执行所述计算任务。
15.一种芯片,包括:
权利要求8-14中任一项所述的装置。
16.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
17.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
18.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410177323.1A CN117873731A (zh) | 2024-02-08 | 2024-02-08 | 计算任务的执行方法、装置、芯片、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410177323.1A CN117873731A (zh) | 2024-02-08 | 2024-02-08 | 计算任务的执行方法、装置、芯片、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117873731A true CN117873731A (zh) | 2024-04-12 |
Family
ID=90594683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410177323.1A Pending CN117873731A (zh) | 2024-02-08 | 2024-02-08 | 计算任务的执行方法、装置、芯片、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117873731A (zh) |
-
2024
- 2024-02-08 CN CN202410177323.1A patent/CN117873731A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114356547B (zh) | 基于处理器虚拟化环境的低优阻塞方法及装置 | |
CN112488060B (zh) | 目标检测方法、装置、设备和介质 | |
CN114065864A (zh) | 联邦学习方法、联邦学习装置、电子设备以及存储介质 | |
CN114924745A (zh) | 深度学习编译器的运行方法、装置及电子设备 | |
CN113360266B (zh) | 任务处理方法和装置 | |
CN116467235B (zh) | 一种基于dma的数据处理方法、装置、电子设备及介质 | |
CN113377998A (zh) | 数据加载的方法、装置、电子设备及存储介质 | |
CN117873731A (zh) | 计算任务的执行方法、装置、芯片、设备和存储介质 | |
EP3046029A1 (en) | Method and device for determining program performance interference model | |
CN113377295B (zh) | 多生产者单消费者的数据存储和读取方法、装置、设备 | |
CN114565105A (zh) | 处理数据的方法和深度学习模型的训练方法、装置 | |
CN114035906A (zh) | 虚拟机迁移方法、装置、电子设备及存储介质 | |
CN115495312B (zh) | 业务请求处理方法和装置 | |
CN114610575B (zh) | 应用于计算分支的更新峰值的方法、装置、设备和介质 | |
CN117931689A (zh) | 数据处理方法、装置、芯片、设备和存储介质 | |
CN115442432B (zh) | 一种控制方法、装置、设备及存储介质 | |
CN115599307B (zh) | 数据存取方法、装置、电子设备、存储介质 | |
CN117829373A (zh) | 数据处理和预测点击率的方法和装置 | |
CN117459719A (zh) | 一种参考帧选择方法、装置、电子设备和存储介质 | |
CN116801001A (zh) | 视频流的处理方法、装置、电子设备及存储介质 | |
CN116468094A (zh) | 数据处理装置、方法、电子设备和存储介质 | |
CN113220233A (zh) | 数据读取方法、装置及系统 | |
CN116244063A (zh) | 资源池创建与数据处理方法、装置 | |
CN116594737A (zh) | 一种处理器资源分配方法、装置、存储介质及电子设备 | |
CN115129488A (zh) | 一种流式数据处理方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |