CN115437778A - 内核调度方法及装置、电子设备、计算机可读存储介质 - Google Patents
内核调度方法及装置、电子设备、计算机可读存储介质 Download PDFInfo
- Publication number
- CN115437778A CN115437778A CN202110619818.1A CN202110619818A CN115437778A CN 115437778 A CN115437778 A CN 115437778A CN 202110619818 A CN202110619818 A CN 202110619818A CN 115437778 A CN115437778 A CN 115437778A
- Authority
- CN
- China
- Prior art keywords
- kernel
- core
- task
- target task
- performance parameter
- 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
Images
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/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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供一种内核调度方法,包括:获取与目标任务的运算需求具有关联关系的属性信息;基于所述属性信息和预先训练的预测模型,对所述目标任务进行内核预测处理,得到与所述运算需求匹配的第一内核性能参数;基于所述第一内核性能参数,从多核处理器设置的多个内核中为所述目标任务调度目标内核。本申请实施例还提供一种内核调度装置、存储介质和电子设备。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种内核调度方法及装置、电子设备、计算机可读存储介质。
背景技术
随着电子技术的高速发展,电子设备支持的功能也越来越多,例如图像/视频处理,虚拟现实(Virtual Reality,VR)/增强现实(Augmented Reality,AR)的渲染处理等。越来越多的功能,进一步提高了用户对电子设备处理器等硬件设备的处理能力的需求。
目前,电子设备处理器已经演进为分布式多核架构,能够并行处理任务,提升任务的处理速度。然而,处理器的核心数量越多,电子设备的功耗就越大,电子设备的待机时间会受到巨大影响。
发明内容
本申请实施例提供一种应用于多核处理器的内核调度方法及装置、电子设备、计算机存储介质。
本申请的技术方案是这样实现的:
第一方面,提供一种应用于多核处理器的内核调度方法,所述方法包括:
获取与目标任务的运算需求具有关联关系的属性信息;
基于所述属性信息和预先训练的预测模型,对所述目标任务进行内核预测处理,得到与所述运算需求匹配的第一内核性能参数;
基于所述第一内核性能参数,从所述多核处理器设置的多个内核中为所述目标任务调度目标内核。
第二方面,提供一种内核调度装置,所述装置包括:
获取单元,用于获取与目标任务的运算需求具有关联关系的属性信息;
处理单元,用于基于所述属性信息和预先训练的预测模型,对所述目标任务进行内核预测处理,得到与所述运算需求匹配的第一内核性能参数;
调度单元,用于基于所述第一内核性能参数,从所述多核处理器设置的多个内核中为所述目标任务调度目标内核。
第三方面,提供一种芯片,包括多核处理器,所述多核处理器用于从存储器中调用并运行计算机程序,执行上述第一方面所述的内核调度方法。
第四方面,提供一种电子设备,包括:多核处理器和存储器,该存储器用于存储计算机程序,所述多核处理器用于调用并运行所述存储器中存储的计算机程序,执行上述第一方面所述的内核调度方法。
第五方面,提供一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时,实现上述第一方面所述的内核调度方法。
本申请实施例提供一种内核调度方法,可以通过预先训练的预测模型,提前预测目标任务所需要的内核,从而灵活地调度内核对目标任务进行处理,并且可以避免在不同类型的内核之间进行切换,减少了内核之间切换的时间损耗和空间损耗,提高了任务处理效率。
附图说明
图1为本申请实施例提供的一种示例性的NPU架构示意图;
图2为本申请实施例提供的一种示例性多核集群架构示意图
图3为本申请实施例提供的一种功耗和运算能力关系图;
图4为本申请实施例提供的一种相关技术中的任务处理流程示意图;
图5为本申请实施例提供的一种内核调度方法的流程示意图一;
图6为本申请实施例提供的一种应用场景示意图;
图7为本申请实施例提供的一种训练流程示意图;
图8为本申请实施例提供的一种内核调度方法的流程示意图二;
图9为本申请实施例提供的一种内核调度装置的结构组成示意图;
图10为本申请实施例提供的一种芯片的结构组成示意图;
图11为本申请实施例提供的一种电子设备的硬件结构组成示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
嵌入式神经网络处理器(Neural-network Processing Units,NPU)专门为物联网、以及人工智能技术而设计,用于加速神经网络的运算,解决传统处理器在神经网络运算时效率低下的问题。NPU采用“数据驱动并行计算”的架构,擅长处理视频、图像类的海量多媒体数据。
当前NPU已演进为分布式多核架构,也就是说,一枚NPU中可以集成两个或多个完整的内核(即计算引擎),每个内核均可以独立进行数据处理。参考图1示出的一种示例性的NPU架构示意图,该NPU中可以包括6个内核,即内核0至内核5。其中,每个内核中可以包括乘加、激活函数、二维数据运算、解压缩等模块。乘加模块用于实现矩阵乘加、卷积、点乘等功能。
实际应用中,多核NPU中的多个内核能够并行处理任务,从而提升运算速度。NPU中的内核越多,电子设备的性能(即运算能力)会不断提升,但同时电子设备的功耗也在显著增加,影响续航能力。
为了更好的平衡性能与功耗之间的关系,相关技术中提出了一种新型的多核集群架构,即大中小核架构。参考图2示出的一种示例性多核集群架构示意图,该NPU中包括两个大核(大核0和大核1)、两个中核(中核0和中核1)、以及两个小核(小核0和小核1)。示例性的,大核可以是ARM Cortex-X1内核,中核可以是ARM Cortex-A78内核,小核可以是ARMCortex-A55内核。
不同类型的内核,具有的运算能力不同。NPU可以根据任务对处理器的性能需求,调度不同类型的内核执行对任务的处理。具体地,当任务对处理器的性能需求较大时,例如游戏、直播等实时任务,由运算能力较强的大核处理该任务。当任务对处理器的性能需求较小时,例如音频任务,由运算能力较弱的小核进行任务处理,从而起到节约功耗,又能正常处理任务的目的。
实际应用中,对一个任务的处理时,并不会同时使用两个不同类型的内核,任务会在大核和中核、或者中核和小核之间进行迁移。参考图3所示的功耗和运算能力关系示意图,曲线31用于表征小核的运算能力与功耗之间的关系,曲线32表征中核的运算能力与功耗之间的关系,曲线33表征大核的运算能力与功耗之间的关系。其中,第一转换点为小核的运算能力最高点,并且是中核的运算能力最低点;第二转换点是中核的运算能力最高点,并且是大核的运算能力最低点。
参考图4所示的一种相关技术中的任务处理流程示意图。当操作系统接收到目标任务后,先调用小核对该目标任务进行处理,当小核的运算能力达到最高点(即图3所示的第一转换点),且该目标任务还需要更多的运算资源时,可以将该目标任务迁移到中核执行。进一步地,当中核的运算能力达到最高点(即图3所示的第二转换点),且该目标任务仍然需要更多的运算资源时,可以将该目标任务迁移到大核执行,最后得到最终的处理结果。
然而,目标任务在不同类型的内核之间进行切换时,需要消耗时间和空间,降低了任务的处理效率。
基于此,本申请实施例提供一种内核调度方法,可以通过预先训练的预测模型,提前预测目标任务所需要的内核,从而灵活地调度内核对目标任务进行处理,并且可以避免在不同类型的内核之间进行切换,减少了内核之间切换的时间损耗和空间损耗,提高了任务处理效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请一实施例提供一种内核调度方法,该内核调度方法的执行主体可以是如图2所示的多核处理器。可以理解的是,该处理器中设置有多个内核。该多核处理器可以是NPU,也可以是CPU,本申请实施对此不做限定。
参考图5所示的内核调度方法的流程示意图一,本申请实施例提供的内核调度方法可以包括步骤510至步骤530。
步骤510、获取与目标任务的运算需求具有关联关系的属性信息。
在一些实施例中,目标任务是指需要通过多核处理器进行运算处理的任务。其中,目标任务可以是常规的处理任务,例如拍照任务,通话处理任务等。目标任务也可以是使用基于深度学习技术构建出来的处理模型进行处理的任务,例如,目标任务可以是人脸识别任务、AR渲染任务、语音识别任务等,本申请实施例对目标任务的类型不进行限定。
在一些实施例中,多核处理器可以通过不同的应用获取目标任务。例如,多核处理器可以通过翻译应用获取文本识别的任务。
这里,对目标任务进行处理,需要占用多核处理器中的运算资源。本申请实施例中,多核处理器接收到目标任务后,可以首先获取与目标任务的运算需求具有关联关系的属性信息。多核处理器可以基于得到的属性信息,预测处理该目标任务所需要的内核性能参数(即第一内核性能参数)。
其中,运算需求是指对多核处理器运算能力的需求。因为目标任务各不相同,因此不同的目标任务对多核处理器的运算能力的需求是不同的。
在一些实施例中,与目标任务的运算需求相关的属性信息,包括但不限于以下中的至少一项:
目标任务的任务类型;
目标任务的待处理数据量;
目标任务中包含的图像的分辨率信息;
处理目标任务的应用信息;
目标任务使用的神经网络架构;
目标任务使用的处理模型的相关信息;
所述处理模型的深度学习框架。
其中,任务类型可以包括图像处理类型、音频处理类型、文本处理类型等。示例性的,目标任务为人脸识别任务和物品识别任务时,目标任务的任务类型为图像处理类型。目标任务为文本识别任务时,目标任务的任务类型为文本处理类型。这里,不同的任务类型,对多核处理器的运算需求是不同的。例如,图像处理类型对多核处理器的运算需求高于音频处理类型,另外,音频处理类型对多核处理器的运算需求高于文本处理类型。因此,多核处理器可以基于任务类型预测上述目标任务的所需的内核性能参数。
在一些实施中,待处理数据量是指目标任务中需要处理的数据的大小。例如,人脸识别任务中,待处理数据量为一帧图像;而AR渲染任务中,待处理数据量为多帧图像。显然,待处理数据量大的任务,对处理器的运算需求较大,而待处理数据量小的任务,对处理器的运算需求较小。这样,多核处理器可以基于待处理数据量来预测该上述目标任务的所需的内核性能参数。
在一些实施例中,若目标任务是与图像处理有关的任务,例如人脸识别任务或者AR/VR渲染任务,上述与运算需求相关的属性信息中还可以包括图像的分辨率信息。通常情况下,图像分辨率大的任务,对多核处理器的运算需求要高于图像分辨率小的任务。
在一些实施例中,应用信息可以包括处理该目标任务的应用程序名称和/或应用程序类型。使用不同应用程序对目标任务进行处理时,所需要的运算能力是不同的。示例性的,同样是音频识别任务,使用翻译类的应用程序和使用社交软件类的应用程序对多核处理器的运算需求是不同的。因此,多核处理器可以基于目标任务的应用信息,来预测目标任务的所需的内核性能参数。
在一些实施例中,目标任务需要的处理模型是基于不同的神经网络架构构建的。神经网络架构可以包括卷积神经网络(CNN)、循环神经网络(RNN)等。不同的神经网络架构由不同的处理层(例如池化层、全连接层等)构成,因此不同的神经网络架构对多核处理器的运算需求不同。这样,多核处理器可以基于目标任务的神经网络架构,来预测该目标任务的所需的内核性能参数。
在一些实施例中,处理模型的相关信息可以包括处理模型的名称,和/或处理模型的参数量。处理模型的名称可以包括DeepSpeech、Resnet50、GNMT等,其中,不同的处理模型的处理精度不同。例如物种分类任务中,有对不同物种进行粗分类(例如区分猫和犬)的模型,也有对同一物种中不同类别进行细分类(例如区分犬中的柴犬和哈士奇等)的模型。因此,使用不同的处理模型所需要的运算能力对处理器的运算需求不同。
另外,处理模型的参数量,是指处理模型中的模型参数的大小。例如,语音识别任务使用的deepspeech模型的参数量可以是5兆字节(Mb),图像处理使用的Resnet50模型的参数量可以达到10Mb。参数量可以在一定程度上表征处理模型的复杂度,也就是说,参数量越大的处理模型对多核处理器的运算需求也越大。
综上所述,多核处理器可以基于目标任务使用的处理模型相关信息,来预测该目标任务的所需的内核性能参数。
在一些实施例中,在通过处理模型处理目标任务的场景下,该处理模型使用的深度学习框架也能够影响目标任务的运算需求。其中,深度学习框架可以理解为是用于构建处理模型的功能函数集合,深度学习框架可以基于不同的机器语言构建。深度学习框架可以包括caffe、TensorFlow、PyTorch等。不同深度学习框架使用的算子不同,因此对多核处理器的运算需求也就不同。多核处理器可以基于使用的深度学习框架,来预测该目标任务的所需的内核性能参数。
可以理解的是,本申请实施例涉及的属性信息,均可以在一定程度上影响目标任务的运算需求。因此,多核处理器在接收到目标任务后,可以提取上述属性信息中的一种或者多种,通过提取到的属性信息来预测目标任务的实际运算需求。
步骤520、基于属性信息和预先训练的预测模型,对目标任务进行内核预测处理,得到与运算需求匹配的第一内核性能参数。
本申请实施例中,多核处理器可以基于机器学习技术,预先训练预测模型,通过预测模型来确定目标任务所需的内核性能参数,即与运算需求匹配的第一内核性能参数。
具体地,多核处理器可以调用预先训练好的预测模型,将属性信息输入至预先训练的预测模型中进行预测处理,以便于通过属性信息来推测目标任务所需要的内核性能参数。
在一些实施例中,预测模型可以是多核处理器基于样本任务进行训练得到的,预测模型也可以是多核处理器从第三方服务器获取的,多核处理器直接调度使用的,本申请实施例对此不做限定。
在一些实施例中,第一内核性能参数可以包括内核数量和/或内核数量。
在一些实施例中,多核处理器中设置的多个内核的类型可以相同或者不同。当多个内核的类型相同时,多核处理器可以通过预测模型对目标任务的属性信息进行分析处理,确定目标任务所需的内核数量。
在一些实施例中,多核处理器中多个内核的类型可以包括多种,不同类型的内核对应不同的运算能力。例如,内核类型可以分为大核、中核、小核等类型。大核的运算能力最大,其次为中核,小核的运算能力最小。
当多个内核的类型不同时,多核处理器可以通过预测模型目对目标任务的属性信息进行分析处理,确定目标任务所需的内核类型,即确定处理该目标任务所需的是大核、中核、还是小核类型。
在一些实施例中,当多个内核的类型不同时,多核处理器还可以对目标任务的属性信息进行分析处理,确定目标任务所需的内核类型,以及该内核类型的数量。
示例性的,参考图6所示的一种应用场景示意图,多核处理器可以获取任务A、任务B和任务C。多核处理器可以分别获取任务A的属性信息A,任务B的属性信息B,任务C的属性信息C,并将属性信息A、属性信息B、属性信息C输入至预测模型中进行预测处理,得到每个任务的输出结果。其中,任务A的输出结果A指示使用大核类型的内核处理任务A,任务B的输出结果B指示使用中核类型的内核处理任务B,任务C的输出结果C指示使用大核类型的内核处理任务C。
步骤530、基于第一内核性能参数,从多核处理器设置的多个内核中为目标任务调度目标内核。
本申请实施例中,多核处理器在确定了第一内核性能参数之后,可以根据第一内核性能参数,为目标任务调度空闲的内核,以便通过调度的内核对目标任务进行处理。
示例性的,经过预测模型处理后,确定目标任务的第一内核性能参数中的内核类型为大核类型,内核数量为一个。则多核处理器可以从多个大核类型的内核中,随机确定一个内核来运行目标任务。
这里,第一内核性能参数是与目标任务的运算需求匹配的,也就是说,多核处理器可以直接为目标任务调度其所需的内核进行处理,可以避免在不同类型的内核之间进行切换,减少了内核之间切换的时间损耗和空间损耗,提高了任务处理效率。
下面详细介绍本申请实施例涉及的预测模型的训练过程。
具体地,步骤520中的预测模型模型,可以通过步骤5201至步骤5204训练得到。
步骤5201、获取样本任务的样本属性信息,以及样本任务的实际内核性能参数。
本申请实施例中,在对模型开始训练之前,可以获取大量的样本任务,以及每个样本任务实际内核性能参数。实际内核性能参数,即为处理样本任务实际需要的内核类型和/或内核数量。
这里,样本任务可以由多种不同的任务构成。例如,人脸识别任务、物品分类任务、文本识别任务等。并且,每个样本任务包括多种属性信息。示例性的,参考表1所示,样本任务的属性信息可以包括任务类型、数据量、分辨率信息、应用信息、神经网络架构、处理模型名称、处理模型的参数量、深度学习框架等。
也就是说,可以将样本任务分类为文本任务,图像任务,语音任务等,进而,根据需求继续细分样本任务,例如处理的数据量,图像分辨率,应用类型,神经网络架构,处理模型等对样本任务进行细分。示例性的,不同类型的任务,使用的处理模型会有不同,如图像识别任务,文本识别任务,语音识别任务会应用到不同的处理模型;而同类型的任务,使用的处理模型也会有区别,例如人脸识别,物品分类,图像分割等任务的处理模型之间也会有区别。在对预测模型进行训练之前,可以将这些细分得到的属性信息与样本任务的实际内核性能参数进行对应标注,如此,可以得到预测模型的训练数据集。示例性的,训练数据集可以如表1所示。
表1
步骤5202、基于所述样本属性信息和待训练预测模型,对所述样本任务进行内核预测处理,得到第一输出结果。
本申请实施例中,在进行训练时,还需要采用深度学习框架和神经网络架构,构建待训练预测模型。这里,待训练预测模型可以是深度卷积神经网络模型,也可以是其他类型的模型,本申请实施例中对预测模型的类型不做限定。
具体地,可以将步骤5201中样本任务的样本属性信息,输入至待训练预测模型中,通过待训练预测模型进行分析处理,得到样本任务的第一输出结果。这里,第一输出结果可以是预测的样本任务的内核性能参数。
步骤5203、基于第一输出结果与所述实际内核性能参数,得到第一差异值。
可以理解的是,待训练预测模型是搭建的初始的用于确定样本任务所需的内核性能参数的模型,因此,通过待训练预测模型对样本任务的样本属性信息进行处理后,得到的第一输出结果中的内核性能参数,并不是该样本任务真实所需的内核性能参数,即实际内核性能参数。因此,样本任务对应的实际内核性能参数和第一输出结果之间存在差异。第一差异值可以在一定程度上表征待训练预测模型的预测效果。
在本申请实施例中,可以利用预设的损失函数来确定第一输出结果和样本任务对应的实际内核性能参数之间的差异值。这里,损失函数可以是0-1损失函数,或者其他类型的损失函数,本申请实施例对此不做限定。
步骤5204、基于第一差异值,对待训练预测模型进行训练,直到待训练预测模型满足训练条件时,得到预测模型。
在本申请实施例中,在确定了第一差异值之后,可以根据第一差异值和样本任务的属性信息,以及样本任务对应的实际内核性能参数,对待训练预测模型进行迭代训练,直到满足一定的训练条件,从而训练得到训练好的预测模型。
在一些实施例中,训练条件包括:通过待训练预测模型得到的输出结果,与样本任务对应的实际内核性能参数之间的差异值小于预设阈值。
具体地,在训练时可以根据第一差异值,自动地对待训练预测模型中各个节点的权重参数进行调整;也就是说,在对待训练预测模型进行训练时,可以通过第一差异值进行反向传播,调整待训练预测模型的权重参数。进一步,基于调整后的待训练预测模型继续对样本任务的属性信息进行分析处理,得到第二输出结果。这里,调整后的待训练预测模型相比于未调整的待训练预测模型,预测的效果更好,从而第二输出结果中,相比于第一输出结果的准确度更高。
进一步,可以继续基于预设的损失函数,确定第二输出结果和样本任务对应的实际内核性能参数之间的第二差异值。进而,基于第二差异值继续对调整后的待训练预测模型进行训练,如此训练多次,直到满足训练结束条件时,将调整后的待训练预测模型作为最终训练好的预测模型。
预测模型的训练过程是通过迭代训练得到的;迭代过程为通过第一差异值、第二差异值……不停的调整预测模型的权重参数,直到调整后的待训练预测模型得到输出结果与实际内核性能参数的差异值小于预设阈值,则确定满足训练结束条件。此时得到的调整后的待训练预测模型为最终的预测模型。
简而言之,上述训练过程可以参考图7所示的训练流程示意图,通过深度学习框架、神经网络架构、以及包含实际内核性能参数的样本任务进行训练,得到最终的预测模型。
在一些实施例中,还可以获取测试数据集,测试数据集与训练数据集的获取方式相同,都是通过样本任务得到。进一步,可以使用训练好的预测模型对测试数据集中的样本任务进行处理,获取每个样本任务的预测结果。若测试数据集中的样本任务的预测结果准确率满足预设准确率阈值,则该预测模型可以投入实际使用。若测试数据集中的样本任务的预测结果准确率不满足预设准确率阈值,则基于样本任务继续对预测模型进行训练,直至预测模型的预测准确率满足预设条件。
这样,最终训练好的预测模型即为能够预测任务运行的内核性能参数的模型。基于此,将目标任务的属性信息输入预测模型中,可成功预测该目标任务所需的第一内核性能参数。
需要说明的是,上述训练过程的执行主体可以是多核处理器,也可以是专用于模型训练的服务器。本申请实施例对此不做限定。
本申请一实施例中,参考图8所示的内核调度方法的流程示意图二,在第一内核性能参数包括内核类型的场景中,步骤530中基于第一内核性能参数,从多核处理器设置的多个内核中为目标任务调度目标内核,可以通过以下步骤实现:
步骤5301、若多个内核所包含的类型中包括第一内核性能参数中的内核类型,则基于第一内核性能参数,从多个内核中为目标任务调度目标内核。
在一些实施例中,多核处理器在通过预测模型确定了目标任务所需的内核类型之后,还需要判断其是否包含该内核类型的内核,即目标任务是否命中预测模型。这是因为,预测模型首次处理任务,或者在特殊情况下处理任务时,可能会出现预测的内核类型在多核处理器中并不存在的问题。
本申请实施例中,若通过预测模型得到的内核类型,在实际的多核处理器中存在,即目标任务命中预测模型,则多核处理器可以直接调度该类型的内核,对目标任务进行处理。如此,可以避免在不同类型的内核之间进行切换,减少了内核之间切换的时间损耗和空间损耗,提高了任务处理效率。
在一些实施例中,参考图8所示,步骤530中基于内核性能参数,从多核处理器设置的多个内核中为目标任务调度目标内核,还可以通过以下步骤实现:
步骤5302、若多个内核所包含的类型中不包括第一内核性能参数中的内核类型,则调度第一类型的内核对目标任务进行处理;
其中,第一类型的内核为运算能力最大的内核。
可以理解的是,若通过预测模型得到的内核类型,在实际的多核处理器中并不存在,即目标任务未命中预测模型,则多核处理器可以默认调度运算能力最大的第一类型的内核,对目标任务进行处理。
这里,通过调度运算能力最大的内核对目标任务的处理,可以保证目标任务的顺利执行,同时避免在不同类型的内核之间进行切换,减少了内核之间切换的时间损耗和空间损耗。
在一些实施例中,步骤5302若多个内核所包含的类型中不包括第一内核性能参数中的内核类型,则调度第一类型的内核对目标任务进行处理之后,还可以执行以下步骤:
步骤5303、在通过第一类型的内核对目标任务进行处理的过程中,获取产生的运行信息;
步骤5304、基于运行信息、属性信息、和预先训练的预测模型,对目标任务进行内核预测处理,得到第二内核性能参数;
步骤5305、基于第二内核性能参数,更新预测模型的模型参数。
可以理解的是,若目标任务是预测模型从未执行过的任务,通过预测模型得到的内核类型,在实际的多核处理器中并不存在,则多核处理器可以默认调度运算能力最大的第一类型的内核,对目标任务进行处理。
在使用第一类型的内核对目标任务的处理过程中,会得到一些运行信息,例如目标任务对应的处理模型的参数量、处理模型的模型结构等。这样,多核处理器可以将实时产生的运行参数和属性信息,输入至预测模型中进行实时的预测处理,得到第二内核性能参数。
在一些实施例中,多核处理器可以判断第二内核性能参数中的内核类型是否是实际存在的内核类型,若是实际存在的内核类型,则基于第二内核性能参数自动调整预测模型各个节点的模型参数,得到更新后的预测模型。
进一步地,若多个处理器判断第二内核性能参数中的内核类型,并不是实际存在的内核类型,则多核处理器可以继续收集目标任务处理过程中的运行参数,并进行实时预测处理。直至通过预测模型得到的内核类型是实际存在的内核类型,或者,指示目标任务处理完成为止。
也就是说,多核处理器可以根据实时的运行信息,对预测模型进行更新处理,使得更新后的预测模型能够满足实际的需求,提高了预测模型的处理效果。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。又例如,在不冲突的前提下,本申请描述的各个实施例和/或各个实施例中的技术特征可以和现有技术任意的相互组合,组合之后得到的技术方案也应落入本申请的保护范围。
在本申请一实施例中,还提供一种内核调度装置。该内核调度装置可以集成于上述实施例的多核处理器中,如图9所示,本申请实施提出的内核调度处理装置可以包括:
获取单元91,用于获取与目标任务的运算需求具有关联关系的属性信息;
处理单元92,用于基于所述属性信息和预先训练的预测模型,对所述目标任务进行内核预测处理,得到与所述运算需求匹配的第一内核性能参数;
调度单元93,用于基于所述第一内核性能参数,从所述多核处理器设置的多个内核中为所述目标任务调度目标内核。
在一些实施例中,所述属性信息包括以下中的至少一项:
所述目标任务的任务类型;
所述目标任务的待处理数据量;
所述目标任务中包含的图像的分辨率信息;
处理所述目标任务的应用信息;
所述目标任务使用的神经网络架构;
所述目标任务使用的处理模型的相关信息;
所述处理模型的深度学习框架。
在一些实施例中,所述多个内核的类型包括多种,不同类型的内核对应不同的运算能力;
所述第一内核性能参数包括内核类型和/或内核数量。
在一些实施例中,所述第一内核性能参数包括内核类型,所述调度单元93,具体用于若所述多个内核所包含的类型中包括所述第一内核性能参数中的内核类型,则基于所述内核类型,从所述多个内核中为所述目标任务调度所述目标内核。
在一些实施例中,所述第一内核性能参数包括内核类型,所述调度单元93,还用于若所述多个内核所包含的类型中不包括所述第一内核性能参数中的内核类型,则调度第一类型的内核对所述目标任务进行处理;
其中,所述第一类型的内核为运算能力最大的内核。
在一些实施例中,所述获取单元91,还用于在通过所述第一类型的内核对所述目标任务进行处理的过程中,获取产生的运行信息;
所述处理单元,还用于基于所述运行信息、所述属性信息、和所述预先训练的预测模型,对所述目标任务进行内核预测处理,得到第二内核性能参数;基于所述第二内核性能参数,更新所述预测模型的模型参数。
在一些实施例中,所述内核调度装置还可以包括训练单元,所述训练单元,用于获取样本任务的样本属性信息,以及所述样本任务的实际内核性能参数;利用待训练预测模型,对所述样本属性信息进行内核预测处理,得到第一输出结果;基于所述第一输出结果与所述实际内核性能参数,得到第一差异值;基于所述第一差异值,对所述待训练预测模型进行训练,直到所述待训练预测模型满足训练条件时,得到所述预测模型。
在一些实施例中,所述训练条件包括:
通过所述待训练预测模型得到的输出结果,与所述样本任务对应的实际内核性能参数之间的差异值小于预设阈值。
需要说明的是,在本实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
图10是本申请实施例的芯片的示意性结构图。图10所示的芯片1000包括多核处理器1010,多核处理器1010可以从存储器中调用并运行计算机程序,以实现本申请实施例中的方法。
在一些实施例中,多核处理器可以是NPU,也可以是CPU,本申请实施例对此不做限定。
在一些实施例中,如图10所示,芯片1000还可以包括存储器1020。其中,处理器1010可以从存储器1020中调用并运行计算机程序,以实现本申请实施例中的方法。
其中,存储器1020可以是独立于多核处理器1010的一个单独的器件,也可以集成在多核处理器1010中。
在一些实施例中,该芯片1000还可以包括输入接口1030。其中,多核处理器1010可以控制该输入接口1030与其他设备或芯片进行通信,具体地,可以获取其他设备或芯片发送的信息或数据。
在一些实施例中,该芯片1000还可以包括输出接口1040。其中,多核处理器1010可以控制该输出接口1040与其他设备或芯片进行通信,具体地,可以向其他设备或芯片输出信息或数据。
在一些实施例中,该芯片可应用于本申请实施例中的电子设备,并且该芯片可以实现本申请实施例的各个方法中由网络设备实现的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。
基于前述实施例,在本申请的另一实施例中还提供一种电子设备,如图11所示,本申请实施例提出的电子设备可以包括多核处理器1101、以及存储有所述多核处理器可执行指令的存储器1102;
所述多核处理器1101和所述存储器1102通过总线1103连接;
所述多核处理器1101,运行所述存储器1102中存储的计算机程序时,可以执行以下指令:
获取与目标任务的运算需求具有关联关系的属性信息;
基于所述属性信息和预先训练的预测模型,对所述目标任务进行内核预测处理,得到与所述运算需求匹配的第一内核性能参数;
基于所述第一内核性能参数,从所述多核处理器设置的多个内核中为所述目标任务调度目标内核。
在本申请提供的实施例中,上述多核处理器1101可以为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital SignalProcessor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(Progmable Logic Device,PLD)、现场可编程门阵列(Field Progmable GateArray,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
在一些实施例中,多核处理器1101还可以是NPU。
在实际应用中,存储器1102可以是易失性存储器(volatile memory),例如RAM;或者非易失性存储器(non-volatile memory),例如ROM,快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向多核处理器1101提供指令和数据。
本申请实施例还提供了一种计算机存储介质,具体为计算机可读存储介质。其上存储有计算机指令,在计算机存储介质位于电子设备制作装置时,该计算机指令被处理器执行时实现本申请实施例上述图像处理方法中的任意步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以至少两个单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种应用于多核处理器的内核调度方法,其特征在于,所述方法包括:
获取与目标任务的运算需求具有关联关系的属性信息;
基于所述属性信息和预先训练的预测模型,对所述目标任务进行内核预测处理,得到与所述运算需求匹配的第一内核性能参数;
基于所述第一内核性能参数,从所述多核处理器设置的多个内核中为所述目标任务调度目标内核。
2.根据权利要求1所述的方法,其特征在于,所述属性信息包括以下中的至少一项:
所述目标任务的任务类型;
所述目标任务的待处理数据量;
所述目标任务中包含的图像的分辨率信息;
处理所述目标任务的应用信息;
所述目标任务使用的神经网络架构;
所述目标任务使用的处理模型的相关信息;
所述处理模型的深度学习框架。
3.根据权利要求1或2所述的方法,其特征在于,所述多个内核的类型包括多种,不同类型的内核对应不同的运算能力;
所述第一内核性能参数包括内核类型和/或内核数量。
4.根据权利要求3所述的方法,其特征在于,所述第一内核性能参数包括内核类型,所述基于所述第一内核性能参数,从所述多核处理器设置的多个内核中为所述目标任务调度目标内核,包括:
若所述多个内核所包含的类型中包括所述第一内核性能参数中的内核类型,则基于所述内核类型,从所述多个内核中为所述目标任务调度所述目标内核。
5.根据权利要求3所述的方法,其特征在于,所述第一内核性能参数包括内核类型,所述基于所述第一内核性能参数,从所述多核处理器设置的多个内核中为所述目标任务调度目标内核,包括:
若所述多个内核所包含的类型中不包括所述第一内核性能参数中的内核类型,则调度第一类型的内核对所述目标任务进行处理;
其中,所述第一类型的内核为运算能力最大的内核。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在通过所述第一类型的内核对所述目标任务进行处理的过程中,获取产生的运行信息;
基于所述运行信息、所述属性信息、和所述预先训练的预测模型,对所述目标任务进行内核预测处理,得到第二内核性能参数;
基于所述第二内核性能参数,更新所述预测模型的模型参数。
7.根据权利要求1或2所述的方法,其特征在于,所述方法还包括训练所述预测模型,该步骤进一步包括:
获取样本任务的样本属性信息,以及所述样本任务的实际内核性能参数;
基于所述样本属性信息和待训练预测模型,对所述样本任务进行内核预测处理,得到第一输出结果;
基于所述第一输出结果与所述实际内核性能参数,得到第一差异值;
基于所述第一差异值,对所述待训练预测模型进行训练,直到所述待训练预测模型满足训练条件时,得到所述预测模型。
8.根据权利要求7述的方法,其特征在于,所述训练条件包括:
通过所述待训练预测模型得到的输出结果,与所述样本任务对应的实际内核性能参数之间的差异值小于预设阈值。
9.一种内核调度装置,其特征在于,所述装置包括:
获取单元,用于获取与目标任务的运算需求具有关联关系的属性信息;
处理单元,用于基于所述属性信息和预先训练的预测模型,对所述目标任务进行内核预测处理,得到与所述运算需求匹配的第一内核性能参数;
调度单元,用于基于所述第一内核性能参数,从所述多核处理器设置的多个内核中为所述目标任务调度目标内核。
10.一种芯片,其特征在于,包括多核处理器,所述多核处理器用于从存储器中调用并运行计算机程序,执行如权利要求1至8中任一项所述的方法。
11.根据权利要求10所述的芯片,其特征在于,所述多核处理器为NPU多核处理器。
12.一种电子设备,其特征在于,包括:多核处理器和存储器,该存储器用于存储计算机程序,所述多核处理器用于调用并运行所述存储器中存储的计算机程序,执行如权利要求1至8中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时,实现如权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110619818.1A CN115437778A (zh) | 2021-06-03 | 2021-06-03 | 内核调度方法及装置、电子设备、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110619818.1A CN115437778A (zh) | 2021-06-03 | 2021-06-03 | 内核调度方法及装置、电子设备、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115437778A true CN115437778A (zh) | 2022-12-06 |
Family
ID=84239843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110619818.1A Pending CN115437778A (zh) | 2021-06-03 | 2021-06-03 | 内核调度方法及装置、电子设备、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115437778A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115865670A (zh) * | 2023-02-27 | 2023-03-28 | 灵长智能科技(杭州)有限公司 | 基于内核调优的web安全网关并发性能调节方法及装置 |
CN115987817A (zh) * | 2022-12-23 | 2023-04-18 | 中国电信股份有限公司 | 交换任务调度方法、装置、电子设备及非易失性存储介质 |
CN117742974A (zh) * | 2024-02-19 | 2024-03-22 | 北京趋动智能科技有限公司 | 数据处理的方法、装置、存储介质、电子设备及系统 |
-
2021
- 2021-06-03 CN CN202110619818.1A patent/CN115437778A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987817A (zh) * | 2022-12-23 | 2023-04-18 | 中国电信股份有限公司 | 交换任务调度方法、装置、电子设备及非易失性存储介质 |
CN115987817B (zh) * | 2022-12-23 | 2024-05-24 | 中国电信股份有限公司 | 交换任务调度方法、装置、电子设备及非易失性存储介质 |
CN115865670A (zh) * | 2023-02-27 | 2023-03-28 | 灵长智能科技(杭州)有限公司 | 基于内核调优的web安全网关并发性能调节方法及装置 |
CN115865670B (zh) * | 2023-02-27 | 2023-06-16 | 灵长智能科技(杭州)有限公司 | 基于内核调优的web安全网关并发性能调节方法及装置 |
CN117742974A (zh) * | 2024-02-19 | 2024-03-22 | 北京趋动智能科技有限公司 | 数据处理的方法、装置、存储介质、电子设备及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Park et al. | Deep learning inference in facebook data centers: Characterization, performance optimizations and hardware implications | |
US11593658B2 (en) | Processing method and device | |
CN115437778A (zh) | 内核调度方法及装置、电子设备、计算机可读存储介质 | |
CN110674936A (zh) | 一种神经网络处理方法、装置、计算机设备及存储介质 | |
US10671147B2 (en) | Dynamic power management for artificial intelligence hardware accelerators | |
CN110633153A (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
Kwon et al. | Tensor casting: Co-designing algorithm-architecture for personalized recommendation training | |
CN110826708B (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
US11493985B2 (en) | Selectively controlling memory power for scheduled computations | |
WO2020106502A1 (en) | Compression-encoding scheduled inputs for matrix computations | |
US20230252353A1 (en) | On-device training method to train an artificial intelligent model and a system therefor | |
Shahshahani et al. | Memory optimization techniques for fpga based cnn implementations | |
CN116401552A (zh) | 一种分类模型的训练方法及相关装置 | |
US11580736B2 (en) | Parallel video processing neural networks | |
CN111522926A (zh) | 文本匹配方法、装置、服务器和存储介质 | |
CN111275194B (zh) | 一种基于fpga的nlp推理加速系统 | |
CN113064660A (zh) | 设备控制方法、装置、电子设备及存储介质 | |
Shakibhamedan et al. | Ease: Energy optimization through adaptation–a review of runtime energy-aware approximate deep learning algorithms | |
WO2021120036A1 (zh) | 数据处理装置和数据处理方法 | |
CN113591031A (zh) | 低功耗矩阵运算方法及装置 | |
CN114020476B (zh) | 一种作业的处理方法、设备及介质 | |
CN115023685A (zh) | 用于密集和稀疏矩阵计算的加速器 | |
CN111582444A (zh) | 一种矩阵数据的处理、装置、电子设备及存储介质 | |
Kim et al. | EPU: An Energy-Efficient Explainable AI Accelerator With Sparsity-Free Computation and Heat Map Compression/Pruning | |
EP4310671A1 (en) | Dynamic agent for multiple operators optimization |
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 |