CN117950815A - 执行任务的方法和异构服务器 - Google Patents
执行任务的方法和异构服务器 Download PDFInfo
- Publication number
- CN117950815A CN117950815A CN202211295951.7A CN202211295951A CN117950815A CN 117950815 A CN117950815 A CN 117950815A CN 202211295951 A CN202211295951 A CN 202211295951A CN 117950815 A CN117950815 A CN 117950815A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- processing
- processing card
- input data
- 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 76
- 238000012545 processing Methods 0.000 claims abstract description 358
- 238000004364 calculation method Methods 0.000 claims description 65
- 238000013473 artificial intelligence Methods 0.000 claims description 8
- 230000000875 corresponding effect Effects 0.000 description 170
- 230000006870 function Effects 0.000 description 14
- 238000012544 monitoring process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000004927 fusion Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000001824 photoionisation detection Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种执行任务的方法和异构服务器,属于异构计算技术领域。该方法应用于异构服务器,该异构服务器包括中央处理器和多个处理卡,该方法包括:中央处理器基于待分配的任务对应的任务信息,确定任务对应的计算量;获取每个处理卡对应的可用处理资源;基于每个处理卡对应的可用处理资源和任务对应的计算量,为任务分配处理卡;然后将所述任务发送至分配的处理卡执行。采用本申请,可以提高异构服务器执行任务的效率。
Description
技术领域
本申请涉及异构计算技术领域,特别涉及一种执行任务的方法和异构服务器。
背景技术
异构服务器常用于处理与人工智能(Artificial Intelligence,AI)相关的任务,例如通过AI模型解决科研问题。
在异构服务器中除包括中央处理器(central processing unit,CPU)外,还可以包括用于进行AI计算的处理卡,如图形处理器(graphics processing unit,GPU)、嵌入式神经网络处理器(Neural-network Processing Unit,NPU)以及张量处理器(TensorProcessing Unit,TPU)等处理单元等。
异构服务器的CPU在执行任务时,可以将涉及AI计算的任务分配至指定的处理卡,然后可以由处理卡执行分配的任务。目前CPU在向处理卡分配任务时,是根据任务所在的进程分配的,如将第一个进程的任务分配至A处理卡、将第二个进程的任务分配至B处理卡。可见当前CPU分配任务的方式较为固化,可能会将任务分配至处理资源较少的处理卡上,进而导致任务的执行效率下降。
发明内容
本申请实施例提供了一种执行任务的方法和异构服务器,可以提高任务在异构服务器中的执行效率,相应的技术方案如下:
第一方面,提供了一种执行任务的方法,该方法应用于异构服务器。其中,异构服务器中包括中央处理器和多个处理卡,该方法包括:
中央处理器基于待分配的任务对应的任务信息,确定待分配的任务对应的计算量。获取每个处理卡对应的可用处理资源,基于每个处理卡对应的可用处理资源和待分配的任务对应的计算量,为任务分配处理卡,并将任务发送至分配的处理卡执行。
本申请所示的方案中,异构服务器中的中央处理器在为每个任务分配处理卡时,可以确定每个任务的计算量,并获取异构服务器中每个处理卡的可用处理资源(如存储空间、使用率等),然后根据每个任务的计算量和处理卡的可用处理资源,为每个任务分配处理卡。这样可以将计算量较大的任务分配至可用处理资源较多的处理卡,实现了对任务的动态分配,可以充分利用异构服务器中每个处理卡的处理资源,提高异构服务器执行任务的效率。
在一种示例中,待分配的任务对应的任务信息包括任务对应的数据量、数据类型以及计算类型。
对于中央处理器基于待分配的任务对应的任务信息,确定任务对应的计算量的处理可包括:中央处理器将待分配的任务对应的数据量、数据类型以及计算类型输入至经过训练的计算量预估模型,得到待分配的任务对应的计算量。
在一种示例中,待分配的任务为执行AI模型,对于中央处理器将待分配的任务发送至分配的处理卡执行包括:将对应相同AI模型的至少两个任务分配到同一处理卡;加载该至少两个任务中其中一个任务对应的AI模型至处理卡,并将该至少两个任务的输入数据作为AI模型的输入数据集加载至处理卡。
本申请所示的方案中,中央处理器在为每个任务分配处理卡时,可以优先将对应相同AI模型的至少两个任务分配至同一个处理上。对于该至少两个任务,可以将该至少两个任务对应的AI模型加载至处理卡,并且可以将该至少两个任务分别对应的输入数据作为一个任务的输入数据集加载至处理卡。这样中央处理器只需要向处理卡加载一次AI模型即可,能够降低内存拷贝时长,提高处理卡执行任务的效率,并且可以减少AI模型对处理卡上存储空间的占用。
在一种示例中,对于将至少两个任务的输入数据作为AI模型的输入数据集的处理,包括:对输入数据集中每个任务的输入数据进行标记。相应的,在处理卡运行AI模型,对输入数据集处理完后,得到输出数据;根据标记将输出数据分解为每个任务的输出数据,并返回给中央处理器。
本申请所示的方案中,处理卡可以将多个任务对应的输入数据集输入至AI模型,由AI模型输出对应的输出数据。处理卡可以根据输入数据集中每个任务的输入数据的标记,在AI模型输出的输出数据中,确定每个任务对应的输出数据,然后可以将每个任务对应的输出数据返回至中央处理器,再由中央处理器将每个任务的输出数据发送至对应的用户终端。
在一种示例中,中央处理器基于每个处理卡对应的可用处理资源和任务对应的计算量,为任务分配处理卡,包括:
对于对应的计算量大于计算量阈值的任务,中央处理器将任务拆分为至少两个计算量小于或等于所述计算量阈值的任务,其中,拆分得到的至少两个任务的输入数据是对拆分前的任务的输入数据进行拆分得到的,拆分得到的至少两个任务的AI模型均为拆分前的任务的AI模型,基于每个处理卡对应的可用处理资源和拆分得到的任务对应的计算量,为拆分得到的任务分配处理卡。
本申请所示的方案中,可以将计算量较大的任务,拆分为多个计算量较小的任务,然后将该多个计算量较小的任务分配至不同的处理器进行处理,进而可以异构服务器执行任务的效率。
第二方面,提供了一种异构服务器,该异构服务器包括中央处理器和多个处理卡,其中:
中央处理器,用于基于待分配的任务对应的任务信息,确定待分配的任务对应的计算量;
中央处理器,用于获取每个处理卡对应的可用处理资源;
中央处理器,用于基于每个处理卡对应的可用处理资源和待分配的任务对应的计算量,为任务分配处理卡;
中央处理器,用于将任务发送至分配的处理卡执行。
在一种示例中,任务信息包括任务对应的数据量、数据类型以及计算类型;
中央处理器,用于将待分配的任务对应的数据量、数据类型以及计算类型输入至经过训练的计算量预估模型,得到任务对应的计算量。
在一种示例中,待分配的任务为执行AI模型,中央处理器,用于:
将对应相同人工智能AI模型的至少两个任务分配到同一处理卡;
加载该至少两个任务中其中一个任务对应的AI模型至处理卡,并将该至少两个任务的输入数据作为AI模型的输入数据集加载至分配的处理卡。
在一种示例中,中央处理器,用于:对输入数据集中每个任务的输入数据进行标记;
处理卡还用于:运行AI模型,在对输入数据集处理完后,得到输出数据,根据标记将输出数据分解为每个任务的输出数据,并返回给中央处理器。
在一种示例中,中央处理器,用于:
对于对应的计算量大于计算量阈值的任务,将该任务拆分为至少两个计算量小于或等于计算量阈值的任务,其中,拆分得到的至少两个任务的输入数据是对拆分前的任务的输入数据进行拆分得到的,拆分得到的至少两个任务的AI模型均为拆分前的任务的AI模型;
基于每个处理卡对应的可用处理资源和拆分得到的任务对应的计算量,为拆分得到的任务分配处理卡。
第三方面,提供了一种可读存储介质,该可读存储介质存储有程序代码,当该程序代码被中央处理器和处理卡执行时,中央处理器和处理卡可以执行上述第一方面所示的执行任务的方法。
第四方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在中央处理器和处理卡执行时,中央处理器和处理卡可以执行上述第一方面所示的执行任务的方法。
附图说明
图1是本申请实施例提供的一种异构服务器的结构示意图;
图2是本申请实施例提供的一种异构服务器执行任务的流程图;
图3是本申请实施例提供的一种执行任务的方法流程图;
图4是本申请实施例提供的一种执行任务的方法示意图;
图5是本申请实施例提供的一种执行任务的方法示意图;
图6是本申请实施例提供的一种执行任务的方法示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请提供的一种异构服务器的结构示意图。如图1所示,在异构服务器100中可以包括中央处理器(Central Processing Unit,CPU)101、存储器102以及多个处理卡103。
中央处理器101可以是异构服务器100的控制中心,可利用各种接口和线路等连接异构服务器100的各个部分,如存储器102和多个处理卡103等。
存储器102可以是易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器102还可以是非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM)、快闪存储器、机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)等。在存储器102中可以存储有可执行的程序代码,中央处理器101和多个处理卡103可执行该程序代码,以实现本申请提供的执行任务的方法。如中央处理器101通过执行该程序代码可实现:获取待分配的任务对应的任务信息,基于待分配的任务对应的任务信息,确定任务对应的计算量,获取每个处理卡对应的可用处理资源,基于每个处理卡对应的可用处理资源和任务对应的计算量,为任务分配处理卡,并将任务发送至分配的处理卡执行。
处理卡103不限于是图形处理器(graphics processing unit,GPU)、嵌入式神经网络处理器(Neural-network Processing Unit,NPU)和张量处理器(Tensor ProcessingUnit,TPU)。异构服务器100包括的多个处理卡103对应的类型可以相同,如多个处理卡103均为GPU,异构服务器100包括的多个处理卡103对应的类型可也可以不同,如多个处理卡103中既包括GPU又包括NPU。处理卡103可以接收中央处理器101发送的任务的输入数据和处理函数,基于输入数据和处理函数执行任务。
在一种可能的情况中,上述异构服务器100还可以是服务器组,在该服务器组中,每个服务器中都可以包括中央处理器101、存储器102以及多个处理卡103。每个服务器可以与该服务器组中的其他的服务器进行通信,每个服务器的中央处理器101在向处理卡103分配任务时,除可以获取本服务器中处理卡103对应的可用处理资源,还可以获取其他服务器中处理卡103对应的可用处理资源,进而可以将任务分配至本服务器和/或其他服务器中的处理卡103进行执行。
异构服务器可以应用在云计算平台或者超算中心中,可以为用户提供异构计算能力,多用于处理人工智能(Artificial Intelligence,AI)计算任务和高性能计算任务等,如处理AI模型训练、气象预测、基因测序、图像处理等任务。异构服务器所执行的任务一般需要通过AI模型或算法对批量的输入数据进行重复的处理,以得到每个输入数据对应的输出数据。如一个任务可以是通过图像识别模型分别对10000个图像进行图像识别处理,得到该10000个图像分别对应的识别结果。
图2是一种异构服务器执行任务的流程图。参见图2,用户可以通过用户终端将任务提交至异构服务器,异构服务器的CPU在接收到用户终端提交的任务后,可以启动多个进程,通过每个进程对每个任务进行预处理,例如将获取执行任务所需的AI模型,将输入数据转化为矩阵形式等。在多个进程分别对任务完成预处理后,可以对每个任务分配对应的处理卡。每个进程在为对应的任务分配处理卡后,可以将对应任务的处理函数和输入数据发送至分配的处理卡。每个处理卡在接收到CPU发送的AI模型和输入数据后,可以将输入数据输入至相应的AI模型中,以使AI模型对应输入数据进行处理,得到输出数据,该输出数据即为执行任务的结果数据。处理卡可以将得到的结果数据返回给CPU相应的进程,由再CPU中的进程将结果数据返回至用户终端。
在图2所示的异构服务器执行任务的流程中,CPU的每个进程在为对应的任务分配处理卡时,可以按照预先设定的进程与处理卡的对应关系,如进程的进程标符(ProcessIdentification,pid)与处理卡的卡号的对应关系,为任务分配处理卡。例如将对应pid0-pid9的进程可以将对应任务分配至处理卡A,对应pid10-pid19的进程可以将对应任务分配至处理卡B。可见当前CPU分配任务的方式较为固化,可能会将任务分配至处理资源较少的处理卡上,进而导致任务的执行效率下降。并且当前分配任务的方式,可能会导致异构存储器中部分处理卡一直处于空闲状态,进而无法对处理卡的处理性能进行合理利用。另外对于分配到相同处理卡且对应相同处理函数的至少两个任务,由于该至少两个任务分别对应不同的进程,因此每个进程都会将执行任务所需的处理函数从内存中拷贝到处理卡上。这样CPU就会向同一个处理卡拷贝多次处理函数,增加了内存拷贝时长。并且在处理卡上会重复存储多个相同的处理函数,造成存储资源的浪费。
本申请实施例提供了一种执行任务的方法,异构服务器能够根据待分配的任务的计算量以及处理上的可用处理资源,为每个待分配的任务分配合适的处理卡,进而可以提高执行任务的效率。下面对本申请实施例提供的执行任务的方法进行介绍:
图3是本申请实施例提供的一种执行任务的方法流程图,该方法可应用在上述图1中的异构服务器。参见图3,该方法包括:
步骤301、中央处理器基于待分配的任务对应的任务信息,确定任务对应的计算量。
其中,任务信息可以包括执行对应任务需要执行的AI模型的名称、该AI模型中涉及的运算类型(如矩阵运算、向量运算、标量运算)以及输入数据对应的数据量、数据类型等。待分配的任务个数可以是一个也可以是多个,在本申请实施例中,以待分配的任务个数是多个为例,对执行任务的方法进行说明,待分配的任务是一个的情况与之类似,不再进行赘述。
异构服务器的CPU在对待分配的任务分配处理卡之前,可获取每个待分配的任务对应的任务信息,然后根据获取的每个任务的任务信息,确定每个待分配的任务对应的计算量。
在一种可实现的方式中,CPU中可以通过其他进程运行任务调度模块。如图4所示,在任务调度模块中可以包括任务管理模块和任务分配模块。CPU中的各个进程需要对任务进行分配时,每个进程可以将进程信息(如pid)、对应任务的任务信息发送任务管理模块。任务管理模块可以存储每个进程发送的进程信息与任务信息的对应关系,并可以将每个待分配任务的任务信息发送至任务分配模块,由任务分配模块根据每个任务的任务信息,为每个任务分配处理卡。
如图5所示,在任务分配模块中可以包括设备(Device)监控单元、任务(Task)信息统计单元、Task计算量预估单元以及Task分配单元。其中,Task信息统计单元可以接收并存储任务管理模块发送的待分配的任务对应的任务信息。Task信息统计单元在获取待分配的任务对应的任务信息后,可以将待分配的任务对应的任务信息输入至Task计算量预估单元。Task计算量预估单元可以根据待分配的任务对应的任务信息,对待分配的任务对应的计算量进行预估。
下面是本申请实施例提供的两种Task计算量预估单元预估任务对应的计算量的处理:
处理一:Task计算量预估单元可以将待分配的任务对应的任务信息输入至经过训练的计算量预估模型,得到任务对应的计算量。
技术人员可以预先训练计算量预估模型。如技术人员通过大量的样本任务对应的任务信息和训练标签对计算量预估模型进行有监督训练,得到准确度满足要求的计算量预估模型。其中,样本任务对应的训练标签为样本任务的计算量。其中,样本任务可以是异构服务器历史执行过的任务,样本任务对应的计算量可以根据异构服务器中的处理卡执行对应样本任务时的执行时长确定。
在实施中,Task计算量预估单元可以将每个待分配的任务对应的数据量、数据类型以及计算类型等信息输入至经过训练的计算量预估模型,由计算量预估模型输出每个任务对应的计算量。
处理二:Task计算量预估单元根据拟合公式预估任务对应的计算量。
其中,拟合公式可以由技术人员样本任务对应的任务信息和计算量进行拟合处理得到。在一种示例中,该拟合公式可以包括两部分,第一部分公式是对用于计算任务的执行时长,对应的输入可以是任务的任务信息,第二部分公式用于计算任务的计算量,对应输入可以是任务对应的任务信息以及第一部分公式计算的执行时长。技术人员可以根据大量的样本任务对应的任务信息以及执行时长,对第一部分公式中设置的参数进行拟合处理,得到拟合处理后的第一部分公式,并可以根据大量的样本任务对应的任务信息、执行时长以及为对应的样本任务确定的计算量,对第二部分公式中设置的参数进行拟合处理,得到拟合处理后的第二部分公式。
在实施中,Task计算量预估单元可以将每个待分配的任务对应的数据量、数据类型以及计算类型等信息输入至拟合公式,由拟合公式计算每个待分配的任务对应的计算量。另外,对于该拟合公式,可定期根据已在处理卡上执行的任务对应的任务信息和计算量,对拟合公式进行更新。
步骤302、中央处理器获取每个处理卡对应的可用处理资源。
其中,该可用处理资源可以包括处理卡的使用率、处理卡上的存储器(如一级存储(L1Cache)、高带宽存储器(High Bandwidth Memory,HBM))的存储空间以及处理卡的电压等。其中,处理卡的电压可反映处理卡的负载情况,处理卡的电压越高处理卡的负载越大。CPU为每个任务分配处理卡之前,可以获取异构服务器中当前可执行任务的各处理卡对应的可用处理资源。
在一种示例中,CPU可以通过图5任务分配单元中包括的Device监控单元获取各处理卡对应的可用处理资源。如Device监控单元可以按照设定的获取周期,获取各处理卡对应的可用处理资源,并将获取的可用处理资源通过驱动发送至Task分配单元。当Task分配单元需要为每个任务分配处理卡时,可以将Device监控单元最近一个周期发送的可用处理资源,作为当前可执行任务的各处理卡对应的可用处理资源。或者,Device监控单元可以在Task分配单元每次需要为每个任务分配处理卡时,获取当前可执行任务的各处理卡对应的可用处理资源,并将获取的可用处理资源通过驱动发送至Task分配单元。
步骤303、中央处理器基于每个处理卡对应的可用处理资源和任务对应的计算量,为任务分配处理卡。
CPU在获取每个处理卡对应的可用处理资源和待分配的每个任务对应的计算量后,可以根据每个处理卡对应的可用处理资源和每个任务对应的计算量,为每个任务分配处理卡。例如,CPU可以将具有较大计算量的任务分配至处理卡使用率低、电压低、存储空间多的处理卡上。
在一种可实现的方式中,Device监控单元可以将获取的各个处理卡对应的可用处理资源、Task信息统计单元获取的每个任务的任务信息以及Task计算量预估单元计算的每个任务的计算量,输入至Task分配单元。Task分配单元可以根据各个处理卡对应的可用处理资源、每个任务的任务信息和计算量以及至少一条任务分配规则,为每个待分配的任务分配处理卡。
至少一条任务分配规则可以包括:任务的计算量与分配的处理卡的可用处理资源正相关,也就是任务的计算量越大,分配的处理卡的可用处理资源越多。
如Task分配单元为每个任务分配处理卡时,可根据处理卡的可用处理资源对处理卡进行排序,排序靠前的处理卡对应的可用处理资源越多。并可以根据计算量对待分配的任务进行排序,排序靠前的任务对应的计算量越大。然后Task分配单元可以为排序后的任务依次分配排序后的处理卡,使得计算量大的越大的任务分配至的处理卡对应的可用处理资源较多。
至少一条任务分配规则还可以包括:优先将使用相同AI模型的任务分配到同一处理卡。如Task分配单元可以将待分配的任务中使用相同AI模型的任务分配到同一处理卡。
至少一条任务分配规则还可以包括:将任务分配至正在运行该任务对应的AI模型的任务的处理卡。在一种可能的情况中,待分配任务的处理卡可以运行有其他任务,Device监控单元还可以获取每个处理卡上当前正在运行任务对应的AI模型信息(如AI模型的名称),并可以将获取的AI模型信息同处理卡的可用处理资源一并发送至Task分配单元。Task分配单元可以优先将任务分配至正在运行该任务对应的AI模型的任务的处理卡。这样CPU可以不再向处理卡发送该任务对应的AI模型,可以降低内存拷贝时长。
另外,Task分配单元在为任务分配处理卡时,可同时满足上述多条任务分配规则。在一种可实现的方式中技术人员可以通过将任务分配问题转化为NP完全问题,通过求解NP完全问题,实现对任务的分配,处理如下:
Task分配单元获取解决任务分配的NP完全问题对应的目标函数,以及至少一条任务分配规则对应的约束方程。其中,目标函数中变量的个数与待分配的任务的个数相同,目标函数中的每个变量的解用于表示分配给对应任务的处理卡对应的卡号。约束方程可以是技术人员预先根据任务分配规则,编写的对目标函数中的变量进行约束的方程式。Task分配单元可以根据各个处理卡对应的可用处理资源、每个任务的任务信息和计算量以及约束方程,对目标函数进行求解,得到目标函数中每个变量的解,进而实现为各个任务分配处理卡。其中,对于目标函数的求解过程,属于现有技术,此处不再进行详细介绍。
步骤304、中央处理器将任务发送至分配的处理卡执行。
CPU为每个任务分配处理卡之后,可以将每个任务对应的输入数据和AI模型加载至分配的处理卡上,以使处理卡将输入数据输入至AI模型进行处理,得到执行任务的输出数据。如Task分配单元可以每个任务分配的处理卡的卡号和任务对应的任务标识(如任务所在进程的pid)发送至任务管理模块。任务管理模块根据接收的处理卡的卡号和任务标识的对应关系,将每个任务对应的输入数据和AI模型发送至分配的处理卡。
在一种可实现的方式中,对于分配到同一处理卡且对应相同AI模型的至少两个任务。CPU在向对应的处理卡加载该至少两个任务对应的输入数据和AI模型时,可以将该至少两个任务中其中一个任务对应的AI模型至处理卡,并将至少两个任务的输入数据作为AI模型的输入数据集加载至处理卡。
在实施中,对于分配到同一处理卡以及对应相同AI模型的多个任务,任务管理模块可以获取该多个任务对应的输入数据在内存中的存储位置,然后根据存储位置,将该多个任务的输入数据分别发送至分配的处理卡中。由于该多个任务在同一个处理卡上执行,因此任务管理模块可以只向该处理卡发送一次该多个任务对应的AI模块即可。相对于现有技术,减少了向处理卡发送AI模型的次数,进而可以降低内存拷贝时间,提高任务的执行效率。并且还可以减少对处理卡上存储器存储空间的占用。例如,待分配的任务中包括10个通过图像识别模型对1000个图像进行识别处理的任务,则可以将该图像识别模型和该10个任务对应的10000个图像发送至处理卡。这样原本对于该10个任务,会有10个进程分别将图像识别模型发送至处理卡,即使该10个任务被分配至同一个处理卡,则该10个进程也会将图像识别模型分别发送至对应的处理卡,使对应的处理卡存储10个相同的图像识别模型。而在本申请实施例中,该10个任务分配至同一个处理卡后,只需要向处理卡发送一次该图像识别模型。如此,降低了CPU的内存拷贝时间,并减少了处理卡对应的存储空间的占用,能够提高任务的执行效率。
在一种可能的实现方式中,中央处理器将多个任务对应的输入数据集发送至分配的处理卡之前,可以对输入数据集中每个任务的输入数据进行标记。
在实施中,图4所示的任务调度模块中还可以包括数据融合模块和数据拆分模块。对于分配到同一处理卡以及对应相同AI模型的多个任务,数据融合模块可以获取该多个任务对应的输入数据在内存中的存储位置。然后根据获取的存储位置,将多个任务的输入数据顺序的存储在内存中,并将顺序存储的多个任务的输入数据(即输入数据集)在内存中的存储位置发送至任务管理模块。任务管理模块可以根据数据融合模块发送的存储地址,将多个任务的输入数据发送至对应的处理卡。其中,如图6所示,数据融合模块可以在每个任务对应的输入数据中添加对应的任务标识,该任务标识可以是运行任务的进程对应的pid。并且可以为顺序存储的输入数据分配新的任务标识(PID)。该新的任务标识可认为是将该多个任务进行合并,得到的合并任务对应的任务标识,该新的任务标识可以是当前未被进程占用的pid。数据融合模块可以输入数据集的存储位置以及该新的任务标识同时发送至任务管理模块。
相应的,处理卡在接收到进行标记的输入数据集和AI模型后,可以运行该AI模型,将输入数据集输入至AI模型进行处理。AI模型在对输入数据集处理完后,得到输出数据。可以处理卡根据标记将输出数据分解为每个任务的输出数据,并返回给中央处理器。
在实施中,处理卡接收到CPU发送的AI模型和上述多个任务对应的输入数据集后,可以将输入数据集中包括的多个任务的输入数据分别输入至AI模型中,由AI模型得到每个任务对应的输出数据。由于输入数据集中每个输入数据中添加有对应的任务标识,因此AI模型在输出对应的输出数据后,处理卡可以在输出数据中添加与对应的输入数据相同的任务标识。如图6所示,处理卡可以通过输出数据中添加任务标识,确定AI模型输出的每个输出数据所属的任务。并且处理卡还可以为输入数据集中添加的合并任务的任务标识,在AI模型输出的输出数据添加同样的任务标识。在处理卡对输入数据集中所有输入数据对应的输出数据添加任务标识后,可以将添加任务标识的输出数据发送至CPU。
任务管理模块可以接收处理卡发送的输出数据,并可确定接收的输出数据中是否添加合并任务的标识。如果接收的输出数据中添加有合并任务的标识,则可以由数据拆分模块对接收的输出数据进行拆分。即数据拆分模块可以根据输出数据中添加的任务标识,确定接收的输出数据中每个任务对应的输出数据,进而得到对输出数据的拆分结果。该拆分结果可以是每个任务对应的输出数据在内存中的存储位置。数据拆分模块可以将拆分结果发送至任务管理模块。任务管理模块可以根据拆分结果将每个任务的输出数据返回至执行CPU中执行对应任务的进程,然后再由CPU中的进程将任务的结果数据(即输出数据)返回至用户的用户终端。
在一种可能的实现方式中,在执行步骤303之前,CPU可以确定每个任务对应的计算量是否大于计算量阈值,如果确定任务对应的计算量大于计算量阈值,则可以将任务拆分为至少两个计算量小于或等于计算量阈值的任务。
对任务进行拆分是指将任务对应的一组输入数据拆分为多组输入数据,这样原本由一个对该一组输入数据进行处理的任务,被拆分为了分别对该多组输入数据进行处理的多个任务。例如,拆分之前的任务是通过图像识别模型对10000个图像进行识别处理。将该任务进行拆分,可以使将该10000个图像拆分为10份1000个图像,得到10个通过图像识别模型对1000个图像进行识别处理的任务。
在对计算量较大的任务拆分为多个任务之后,拆分后的多个任务可以同未拆分的任务,在步骤303中分配到对应的处理卡,具体为拆分后的多个任务分配处理卡的处理,可参见上述步骤303的内容,此处不再赘述。
在一种示例中,图4中的数据拆分模块可以对计算量较大的任务的输入数据进行拆分。如数据拆分模块可以获取计算量较大的任务的输入数据在内存中的存储位置。然后数据拆分模块可以根据该输入数据的数据量,将该输入数据拆分为多份输入数据,并确定每份输入数据在内存中的存储位置。该每份输入数据即为拆分后的每个任务对应的输入数据,数据拆分模块还可以在该多份输入数据中添加拆分前的任务对应的任务标识。
数据拆分模块可以将拆分后的每个任务的输入数据的存储位置发送至任务管理模块,任务管理模块可以根据拆分后的每个任务的输入数据的存储位置,将拆分后的每个任务的输入数据发送至分配的处理卡。处理卡在处理完拆分后的每个任务后,可以根据输入数据中添加的任务标识,为输出数据添加相同的任务标识,并可以将添加任务标识的输出数据发送至CPU。
任务管理模块可以接收每个处理卡发送的输出数据,并可以根据输出数据中的任务标识确定接收的输出数据是否为拆分后的任务对应的输出数据。任务管理模块在接收到拆分后的每个任务对应的输出数据后,可以将该每个任务对应的输出数据返回至拆分前的任务对应的进程,再由该进程将相应的输出数据返回至用户终端。
由于任务的计算量和任务的输入数据的数据量正相关,所以通过拆分输入数据,可以将原本计算量较大的任务,拆分为多个计算量较小的任务。这样可以将该多个计算量较小的任务分配给不同的处理卡进行处理,能够提高执行任务的效率。
本申请提供了一种异构服务器,该异构服务器可以是上述图1所示的异构服务器。该异构服务器中至少包括中央处理器101和多个处理卡103,其中:
中央处理器101,用于基于待分配的任务对应的任务信息,确定待分配的任务对应的计算量。
中央处理器101,用于获取每个处理卡对应的可用处理资源。
中央处理器101,用于基于每个处理卡对应的可用处理资源和待分配的任务对应的计算量,为任务分配处理卡103。
中央处理器101,用于将任务发送至分配的处理卡103执行。
在一种示例中,任务信息包括任务对应的数据量、数据类型以及计算类型;
中央处理器,用于将待分配的任务对应的数据量、数据类型以及计算类型输入至经过训练的计算量预估模型,得到任务对应的计算量。
在一种示例中,待分配的任务为执行AI模型,中央处理器101,用于:
将对应相同人工智能AI模型的至少两个任务分配到同一处理卡103;
加载该至少两个任务中其中一个任务对应的AI模型至处理卡103,并将该至少两个任务的输入数据作为AI模型的输入数据集加载至分配的处理卡103。
在一种示例中,中央处理器101,用于:对输入数据集中每个任务的输入数据进行标记;
处理卡103还用于:运行AI模型,在对输入数据集处理完后,得到输出数据,根据标记将输出数据分解为每个任务的输出数据,并返回给中央处理器。
在一种示例中,中央处理器101,用于:
对于对应的计算量大于计算量阈值的任务,将该任务拆分为至少两个计算量小于或等于计算量阈值的任务,其中,拆分得到的至少两个任务的输入数据是对拆分前的任务的输入数据进行拆分得到的,拆分得到的至少两个任务的AI模型均为拆分前的任务的AI模型;
基于每个处理卡103对应的可用处理资源和拆分得到的任务对应的计算量,为拆分得到的任务分配处理卡103。
本申请实施例还提供了一种可读存储介质,该可读存储介质中存储有程序代码,当所述程序代码被异构服务器中的中央处理器和处理卡执行时,中央处理器和处理卡可以实现上述实施例中所示的执行任务的方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机的可读存储介质中。中央处理器和处理卡可以从可读存储介质读取该计算机指令,中央处理器和处理卡可以执行该计算机指令,以实现上述实施例中所示的执行任务的方法。
以上描述,仅为本申请的示例性的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
以上所述仅为本申请一个实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种执行任务的方法,其特征在于,所述方法应用于异构服务器,所述异构服务器包括中央处理器和多个处理卡,所述方法包括:
所述中央处理器基于待分配的任务对应的任务信息,确定所述任务对应的计算量;
所述中央处理器获取每个处理卡对应的可用处理资源;
所述中央处理器基于每个处理卡对应的可用处理资源和所述任务对应的计算量,为所述任务分配处理卡;
所述中央处理器将所述任务发送至分配的处理卡执行。
2.根据权利要求1所述的方法,其特征在于,所述任务信息包括所述任务对应的数据量、数据类型以及计算类型;
所述中央处理器基于待分配的任务对应的任务信息,确定所述任务对应的计算量,包括:
所述中央处理器将待分配的任务对应的数据量、数据类型以及计算类型输入至经过训练的计算量预估模型,得到所述任务对应的计算量。
3.根据权利要求1或2所述的方法,其特征在于,所述任务为执行AI模型,所述中央处理器将所述任务发送至分配的处理卡执行包括:
将对应相同人工智能AI模型的至少两个任务分配到同一处理卡;
加载所述至少两个任务中其中一个任务对应的AI模型至所述处理卡,并将所述至少两个任务的输入数据作为所述AI模型的输入数据集加载至所述处理卡。
4.根据权利要求3所述的方法,其特征在于,所述将所述至少两个任务的输入数据作为所述AI模型的输入数据集包括:
对所述输入数据集中每个任务的输入数据进行标记;
所述方法还包括:
在所述处理卡运行所述AI模型,对所述输入数据集处理完后,得到输出数据;
所述处理卡根据所述标记将所述输出数据分解为每个任务的输出数据,并返回给中央处理器。
5.根据权利要求1或2所述的方法,其特征在于,所述中央处理器基于每个处理卡对应的可用处理资源和所述任务对应的计算量,为所述任务分配处理卡,包括:
对于对应的计算量大于计算量阈值的任务,所述中央处理器将所述任务拆分为至少两个计算量小于或等于所述计算量阈值的任务,其中,拆分得到的至少两个任务的输入数据是对拆分前的任务的输入数据进行拆分得到的,所述拆分得到的至少两个任务的AI模型均为所述拆分前的任务的AI模型;
所述中央处理器基于每个处理卡对应的可用处理资源和拆分得到的任务对应的计算量,为所述拆分得到的任务分配处理卡。
6.一种异构服务器,其特征在于,所述异构服务器包括中央处理器和多个处理卡,其中:
所述中央处理器,用于基于待分配的任务对应的任务信息,确定所述任务对应的计算量;
所述中央处理器,用于获取每个处理卡对应的可用处理资源;
所述中央处理器,用于基于每个处理卡对应的可用处理资源和所述任务对应的计算量,为所述任务分配处理卡;
所述中央处理器,用于将所述任务发送至分配的处理卡执行。
7.根据权利要求6所述的异构服务器,其特征在于,所述任务信息包括所述任务对应的数据量、数据类型以及计算类型;
所述中央处理器,用于将待分配的任务对应的数据量、数据类型以及计算类型输入至经过训练的计算量预估模型,得到所述任务对应的计算量。
8.根据权利要求6或7所述的异构服务器,其特征在于,所述任务为执行AI模型,所述中央处理器,用于:
将对应相同人工智能AI模型的至少两个任务分配到同一处理卡;
加载所述至少两个任务中其中一个任务对应的AI模型至所述处理卡,并将所述至少两个任务的输入数据作为所述AI模型的输入数据集加载至所述处理卡。
9.根据权利要求8所述的异构服务器,其特征在于,所述中央处理器,用于:
对所述输入数据集中每个任务的输入数据进行标记;
所述处理卡还用于:在运行所述AI模型,对所述输入数据集处理完后,得到输出数据,根据所述标记将所述输出数据分解为每个任务的输出数据,并返回给中央处理器。
10.根据权利要求6或7所述的异构服务器,其特征在于,所述中央处理器,用于:
对于对应的计算量大于计算量阈值的任务,将所述任务拆分为至少两个计算量小于或等于所述计算量阈值的任务,其中,拆分得到的至少两个任务的输入数据是对拆分前的任务的输入数据进行拆分得到的,所述拆分得到的至少两个任务的AI模型均为所述拆分前的任务的AI模型;
基于每个处理卡对应的可用处理资源和拆分得到的任务对应的计算量,为所述拆分得到的任务分配处理卡。
11.一种可读存储介质,其特征在于,所述可读存储介质存储有程序代码,当所述程序代码被中央处理器和处理卡执行时,所述中央处理器和所述处理卡执行上述权利要求1至5中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211295951.7A CN117950815A (zh) | 2022-10-21 | 2022-10-21 | 执行任务的方法和异构服务器 |
PCT/CN2023/103367 WO2024082692A1 (zh) | 2022-10-21 | 2023-06-28 | 执行任务的方法和异构服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211295951.7A CN117950815A (zh) | 2022-10-21 | 2022-10-21 | 执行任务的方法和异构服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117950815A true CN117950815A (zh) | 2024-04-30 |
Family
ID=90736800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211295951.7A Pending CN117950815A (zh) | 2022-10-21 | 2022-10-21 | 执行任务的方法和异构服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117950815A (zh) |
WO (1) | WO2024082692A1 (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413412B (zh) * | 2019-07-19 | 2022-03-25 | 苏州浪潮智能科技有限公司 | 一种基于gpu集群资源分配的方法和装置 |
CN112306651A (zh) * | 2019-07-31 | 2021-02-02 | 华为技术有限公司 | 一种资源分配方法和资源借调方法 |
CN111190712A (zh) * | 2019-12-25 | 2020-05-22 | 北京推想科技有限公司 | 一种任务调度方法、装置、设备及介质 |
CN111176852B (zh) * | 2020-01-15 | 2024-04-16 | 上海依图网络科技有限公司 | 资源分配方法、装置、芯片及计算机可读存储介质 |
CN114253695A (zh) * | 2020-09-21 | 2022-03-29 | 中国移动通信有限公司研究院 | 一种计算节点资源信息更新方法、节点和存储介质 |
CN114915629B (zh) * | 2021-02-10 | 2023-08-15 | 中国移动通信有限公司研究院 | 信息处理方法、装置、系统、电子设备及存储介质 |
CN113535387A (zh) * | 2021-06-23 | 2021-10-22 | 之江实验室 | 一种异构感知的gpu资源分配与调度方法及系统 |
CN114995994A (zh) * | 2022-04-24 | 2022-09-02 | 阿里巴巴(中国)有限公司 | 任务处理方法及系统 |
-
2022
- 2022-10-21 CN CN202211295951.7A patent/CN117950815A/zh active Pending
-
2023
- 2023-06-28 WO PCT/CN2023/103367 patent/WO2024082692A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024082692A1 (zh) | 2024-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11989647B2 (en) | Self-learning scheduler for application orchestration on shared compute cluster | |
WO2022037337A1 (zh) | 机器学习模型的分布式训练方法、装置以及计算机设备 | |
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
CN112035238A (zh) | 任务调度处理方法、装置、集群系统及可读存储介质 | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
CN112416585A (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN112162856A (zh) | Gpu虚拟资源的分配方法、装置、计算机设备和存储介质 | |
CN111190712A (zh) | 一种任务调度方法、装置、设备及介质 | |
CN113946431B (zh) | 一种资源调度方法、系统、介质及计算设备 | |
CN113590301A (zh) | 一种深度学习业务的任务调度方法及相关装置 | |
CN114237869A (zh) | 基于强化学习的Ray双层调度方法、装置和电子设备 | |
CN116701001B (zh) | 目标任务分配方法、装置、电子设备及存储介质 | |
CN113407343A (zh) | 一种基于资源分配的业务处理方法、装置及设备 | |
CN117950815A (zh) | 执行任务的方法和异构服务器 | |
CN109739649B (zh) | 资源管理方法、装置、设备及计算机可读存储介质 | |
CN113886086A (zh) | 云平台计算资源分配方法、系统、终端及存储介质 | |
CN113535349A (zh) | 数据批量处理方法、装置和存储介质 | |
CN113010288A (zh) | 云资源的调度方法、装置及计算机存储介质 | |
CN117349775B (zh) | 一种面向集群计算的异常子任务识别方法及装置 | |
CN116032928B (zh) | 数据协同计算方法、装置、系统、电子装置和存储介质 | |
CN116860464B (zh) | 负载资源的分配方法和装置、存储介质及电子装置 | |
CN113282383B (zh) | 任务调度方法、任务处理方法及相关产品 | |
CN116743589B (zh) | 云主机迁移方法、装置及电子设备 | |
Koga et al. | BlinkNet: Software-Defined Deep Learning Analytics with Bounded Resources | |
CN113849288A (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 |