CN108958938A - 数据处理方法、装置及设备 - Google Patents
数据处理方法、装置及设备 Download PDFInfo
- Publication number
- CN108958938A CN108958938A CN201810700318.9A CN201810700318A CN108958938A CN 108958938 A CN108958938 A CN 108958938A CN 201810700318 A CN201810700318 A CN 201810700318A CN 108958938 A CN108958938 A CN 108958938A
- Authority
- CN
- China
- Prior art keywords
- calculating
- core
- depth model
- groups
- frame 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.)
- Granted
Links
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/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种数据处理方法、装置及设备。本发明的方法,通过将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务;CPU调度所述至少两组计算核并行地执行至少两帧数据的深度模型计算任务,实现了在进行一次深度模型计算的过程中,多组计算核并行地执行多帧数据的深度模型计算任务;对于每一组计算核,在对深度模型中不适于多个计算核完成该层计算的层进行计算时,该组内一个计算核负责该层的计算,该组内其他计算核空闲,而其他组的计算核同时在对其他帧数据进行深度模型计算,而不是空闲等待,减少了空闲计算核的数量,提高了计算核的单核利用率,从而提高了AI芯片的整体处理帧率。
Description
技术领域
本发明涉及人工智能芯片技术领域,尤其涉及一种数据处理方法、装置及设备。
背景技术
人工智能(Artificial Intelligence,简称AI)芯片包括中央处理器(CentralProcessing Unit,简称CPU)和用于深度模型计算的多个计算核,通常用于基于视觉的深度模型的处理。通常深度模型包括多个需计算的层,对于输入深度模型的任意一帧数据,均需要经过逐层地计算。
目前,AI芯片中的全部计算核均参与深度模型的每一层的计算。在进行每一层的计算时,CPU将当前层的计算任务划分为多个子任务,由全部计算核并行地完成分配到的子任务,目的是为了提高深度模型计算的效率。
但是,深度模型中通常存在若干特殊层的计算任务不适合划分为多个子任务,这种特殊层的计算任务需由一个计算核执行,在该计算核执行其中一特殊层的计算任务期间,其他计算核空闲;需等待该计算核完成该特殊层的计算任务之后,才有可能参与下一个层的计算,造成AI芯片中计算核的单核利用率低,导致AI芯片的深度模型的处理效率低。
发明内容
本发明提供一种数据处理方法、装置及设备,用以解决现有AI芯片中计算核的单核利用率低,导致AI芯片的深度模型的处理效率低的问题。
本发明的一个方面是提供一种数据处理方法,包括:
将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务;
调度所述至少两组计算核并行地执行至少两帧数据的深度模型计算任务。
本发明的另一个方面是提供一种数据处理装置,包括:
分组模块,用于将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务;
调度模块,用于调度所述至少两组计算核并行地执行至少两帧数据的深度模型计算任务。
本发明的另一个方面是提供一种AI芯片,包括:CPU,多个用于深度模型计算的计算核,存储器,以及存储在所述存储器上并可所述CPU运行的计算机程序,
所述CPU运行所述计算机程序时实现上述所述的数据处理方法。
本发明的另一个方面是提供一种计算机可读存储介质,存储有计算机程序,
所述计算机程序被处理器执行时实现上述所述的数据处理方法。
本发明提供的数据处理方法、装置及设备,通过将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务;CPU调度所述至少两组计算核并行地执行至少两帧数据的深度模型计算任务,实现了在进行一次深度模型计算的过程中,多组计算核并行地执行多帧数据的深度模型计算任务;对于每一组计算核,在对深度模型中不适于多个计算核完成该层计算的层进行计算时,该组内一个计算核负责该层的计算,该组内其他计算核空闲,而其他组的计算核同时在对其他帧数据进行深度模型计算,而不是空闲等待,减少了空闲计算核的数量,提高了计算核的单核利用率,从而提高了AI芯片的整体处理帧率。
附图说明
图1为本发明实施例一提供的数据处理方法流程图;
图2为本发明实施例二提供的数据处理方法流程图;
图3为本发明实施例三提供的数据处理装置的结构示意图;
图4为本发明实施例五提供的AI芯片的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
首先对本发明所涉及的名词进行解释:
AI芯片的帧率:是指AI芯片每秒处理的数据帧的数量。AI芯片的数据处理效率越高,AI芯片的帧率越高。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
实施例一
图1为本发明实施例一提供的数据处理方法流程图。本发明实施例针对现有AI芯片中计算核的单核利用率低,导致AI芯片的深度模型的处理效率低的问题,提供了数据处理方法。本实施例中的方法应用于AI芯片,该方法的执行主体为AI芯片的CPU。如图1所示,该方法具体步骤如下:
步骤S101、将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务。
通常AI芯片中的多个计算核在一个CPU的调度下执行深度模型计算。
本实施例中,在对计算核进行分组时,CPU将AI芯片中的所有计算核进行平均分组。若无法平均分组,也尽量将多个计算核均匀地划分为多个组,使得任意两个组内的计算核的数量的差值不超过预设数量差。其中预设数量差可以为2,3,4等,预设数量差可以由技术人员根据实际需要进行设定,本实施例对此不做具体限定。
例如,AI芯片可以为movidius芯片,movidius芯片包括CPU和12个shave核,12个shave核为AI芯片中用于进行深度模型计算的计算核。该步骤中,可以将12个计算核平均分为两组,每一组中有6个计算核,每组中的6个计算核用于共同执行一帧数据的深度模型计算任务。
本实施例中,可以将AI芯片中的所有计算核分为两组或者三组,还可以根据AI芯片中计算核的总数、深度模型计算任务的计算量、CPU的性能等参数,来确定将AI芯片中计算核进行分组的分组数量,以提高AI芯片中计算核的单核利用率和AI芯片的深度模型计算的总体效率。本实施例中对于分组数量不做具体限定。
步骤S102、调度至少两组计算核并行地执行至少两帧数据的深度模型计算任务。
本实施例中,CPU可以采用多线程技术实现对至少两组计算核的调度,实现多组计算核并行地执行多帧数据的深度模型计算任务,其中每一组计算核共同执行一帧数据的深度模型计算任务。
在进行一次深度模型计算的过程中,多组计算核并行地执行多帧数据的深度模型计算任务,其中每一组计算核共同执行一帧数据的深度模型计算任务。
对于每一组计算核,在对深度模型中不适于多个计算核完成该层计算的层进行计算时,处于空闲的计算核的数量为该组内计算核数量减1,而其他组的计算核同时在对其他帧数据进行深度模型计算,而并不是空闲等待,大大减少了空闲计算核的数量,从而大大提高了计算核的单核利用率。
另外,现有技术中全部计算核对深度模型的每一层进行计算时,为了实现对该层的并行计算,CPU会将该层的计算任务分为子任务,并将子任务分配给计算核。由于CPU为该所有计算核分配的子任务的计算量不一定是完全一样的,这时提前完成子任务的计算核需要等待还没有完成子任务的计算核计算完后,该组计算核才能进行下一层的计算。
在实际应用中,将AI芯片的全部计算核用来进行一次深度模型计算的耗时大于将AI芯片的一半计算核用来进行一次深度模型计算的耗时的二分之一。本实施例中,通过将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务,由于每组计算核的数量较少,也可以减少空闲计算核的数量,提高计算核的单核利用率。
例如,以AI芯片为movidius芯片为例,在实际应用中,将12个计算核全部用来进行一次深度模型计算的耗时记为TIME(TASK-Single),将使用6个计算核进行一次深度模型计算的耗时记为TIME(TASK1),那么试验证明:TIME(TASK-Single)>TIME(TASK1)/2。
另外,AI芯片内的多个计算核用于处理的深度模型可以是神经网络模型或者非神经网络模型的深度模型。AI芯片通常用于基于视觉的图像处理,AI芯片内的多个计算核用于处理的深度模型可以为基于视觉的深度模型,例如基于视觉的各类神经网络模型模型等。若AI芯片用于对音频数据进行语音识别处理时,AI芯片内的多个计算核用于处理的深度模型也可以为基于语音的深度模型,本实施例此处不做具体限定。
本发明实施例通过将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务;CPU调度至少两组计算核并行地执行至少两帧数据的深度模型计算任务,实现了在进行一次深度模型计算的过程中,多组计算核并行地执行多帧数据的深度模型计算任务;对于每一组计算核,在对深度模型中不适于多个计算核完成该层计算的层进行计算时,该组内一个计算核负责该层的计算,该组内其他计算核空闲,而其他组的计算核同时在对其他帧数据进行深度模型计算,而不是空闲等待,减少了空闲计算核的数量,提高了计算核的单核利用率,从而提高了AI芯片的整体处理帧率。
实施例二
图2为本发明实施例二提供的数据处理方法流程图。在上述实施例一的基础上,本实施例中,将所有计算核分成的组的数量小于预设阈值,可以将所有计算核分为两组或者三组。如图2所示,该方法具体步骤如下:
步骤S201、将所有计算核分成第一数量个组,每组计算核用于共同执行一个数据帧的深度模型计算任务。
其中,第一数量小于预设阈值。至少两组中任意两个分组内计算核的数量均相等;或者,至少两组中任意两个分组内计算核数量的差值小于预设数量差,以使各组计算核的计算能力大致相同。
本实施例中,在对计算核进行分组时,CPU将AI芯片中的所有计算核进行平均分组。若无法平均分组,也尽量将多个计算核均匀地划分为多个组,使得任意两个组内的计算核的数量的差值不超过预设数量差。其中预设数量差可以为2,3,4等,预设数量差可以由技术人员根据实际需要进行设定,本实施例对此不做具体限定。
例如,AI芯片可以为movidius芯片,movidius芯片包括CPU和12个shave核,12个shave核为AI芯片中用于进行深度模型计算的计算核。该步骤中,可以将12个计算核平均分为两组,每一组中有6个计算核,每组中的6个计算核用于共同执行一帧数据的深度模型计算任务。
本实施例中,CPU可以将AI芯片中的所有计算核分为两组或者三组,还可以根据AI芯片中计算核的总数、深度模型计算任务的计算量、CPU的性能等参数,来确定将AI芯片中计算核进行分组的分组数量,以提高AI芯片中计算核的单核利用率和AI芯片的深度模型计算的总体效率。本实施例中对于分组数量不做具体限定。
CPU将所有计算核分成的组的数量小于预设阈值。其中预设阈值可以由技术人员根据实际需要进行实验得到,或者可以由技术人员根据经验和实际需要进行设定,本实施例对于预设阈值不做具体限定。
步骤S202、调度第一数量组计算核并行地执行第一数量帧数据的深度模型计算任务。
具体的,该步骤具体可以采用如下方式实现:
在接收到对一帧数据的深度模型计算任务时,调度空闲的一组计算核执行一帧数据的深度模型计算任务;在接收到对另一帧数据的深度模型计算任务时,调度空闲的另一组计算核执行另一帧数据的深度模型计算任务。
本实施例中,CPU可以采用多线程技术实现对至少两组计算核的调度,通过多线程并行地调度至少两组计算核,以使每组计算核执行一帧数据的深度模型计算任务,来实现多组计算核并行地执行多帧数据的深度模型计算任务。
具体的,CPU在接收到对一帧数据的深度模型计算任务时,通过第一线程调度空闲的一组计算核执行一帧数据的深度模型计算任务;在接收到对另一帧数据的深度模型计算任务时,通过第二线程调度空闲的另一组计算核执行另一帧数据的深度模型计算任务。
例如,AI芯片以movidius芯片为例,movidius芯片包括CPU和12个shave核,12个shave核为AI芯片中用于进行深度模型计算的计算核。本实施例中,可以将12个计算核平均分为两组,每一组中有6个计算核,每组中的6个计算核用于共同执行一帧数据的深度模型计算任务。将AI芯片中的计算核分为两组,AI芯片进行深度模型处理的帧率如表1中所示:
表1
将movidius芯片中的12个计算核从0到11进行编号。对于给定的同一数据集,数据集中包括多帧数据,如表1中第1行所示,采用现有技术的旧方案全部12个计算核执行一帧数据的深度模型计算任务,对一帧数据进行一次深度模型计算的总耗时为70毫秒,可以计算得到此时AI芯片的平均帧率约为14.3帧/秒。
采用本发明提供的方法,将movidius芯片的12个计算核平均分为两组,其中编号为0-5的为第一组,编号为6-11的为第二组。如表1中第2行所示,对于给定的同一数据集中两帧数据,两组计算核分别处理其中的一帧数据,第一组对一帧数据进行一次深度模型计算的总耗时为98毫秒,第二组对一帧数据进行一次深度模型计算的总耗时为99毫秒;两组计算核对两帧数据进行深度模型计算的平均耗时为98.5毫秒,可以计算得到此时AI芯片的平均帧率约为20.3帧/秒。
可见,将AI芯片的计算核分为两组之后,CPU调度两组计算核并行地执行两帧数据的深度模型计算任务,AI芯片的平均帧率有了很大提高。优选地,第一数量可以为2。
例如,若将12个计算核平均分为3组,每一组中有4个计算核,每组中的4个计算核用于共同执行一帧数据的深度模型计算任务。将AI芯片中的计算核分为3组,AI芯片进行深度模型处理的帧率如表2中所示:
表2
将movidius芯片中的12个计算核从0到11进行编号。对于给定的同一数据集,数据集中包括多帧数据,如表2中第1行所示,采用现有技术的旧方案全部12个计算核执行一帧数据的深度模型计算任务,对一帧数据进行一次深度模型计算的总耗时为70毫秒,可以计算得到此时AI芯片的平均帧率约为14.3帧/秒。
采用本发明提供的方法,将movidius芯片的12个计算核平均分为3组,其中编号为0-3的为第一组,编号为4-7的为第二组,编号为8-11的为第三组。如表2中第2行所示,对于给定的同一数据集中三帧数据,3组计算核分别处理其中的一帧数据,第一组对一帧数据进行一次深度模型计算的总耗时为136毫秒,第二组对一帧数据进行一次深度模型计算的总耗时为164毫秒,第三组对一帧数据进行一次深度模型计算的总耗时为165毫秒;3组计算核对3帧数据进行深度模型计算的平均耗时为155毫秒,可以计算得到此时AI芯片的平均帧率约为19.4帧/秒。
可见,将AI芯片的计算核分为3组之后,CPU调度3组计算核并行地执行3帧数据的深度模型计算任务,相较于旧方案,AI芯片的平均帧率也有了很大提高。可选的,第一数量可以为3。
在本发明另一实施方式中,还可以将所有计算核分为三组,每组计算核用于共同执行一个数据帧的深度模型计算任务;调度三组计算核并行地执行三帧数据的深度模型计算任务。本实施例此处不再赘述。
目前AI芯片中的多个计算核执行深度模型计算是在一个CPU的调度下进行的。CPU在接收到对一帧数据的深度模型计算任务时,通过一个线程调度一组计算核执行对该帧数据的深度模型计算任务。也即是,每一帧数据的深度模型计算任务均对应于一个线程,CPU将AI芯片内计算核分组的个数与CPU用于调度各组计算核进行深度模型计算是所需的线程数量相等。CPU划分的计算核的分组越多,需要调度的线程越多,线程越多会导致调度时空间开销越大。当划分的计算核分组达到一定数量时,***调度的空间开销会很大,计算核分组数量的增加,会导致AI芯片的性能下降,可能会导致AI芯片的帧率下降。
另外,在本发明的其他实施方式中,还可以根据AI芯片中计算核的总数、深度模型计算任务的计算量、CPU的性能等参数,来确定将AI芯片中计算核进行分组的分组数量,以提高AI芯片中计算核的单核利用率和AI芯片的深度模型计算的总体效率。本实施例中对于分组数量不做具体限定。
本发明实施例通过将所有计算核分为第一数量个组,每组计算核用于共同执行一个数据帧的深度模型计算任务,其中第一数量小于预设阈值,CPU调度第一数量组计算核并行地执行第一数量帧数据的深度模型计算任务,实现了在进行一次深度模型计算的过程中,多组计算核并行地执行多帧数据的深度模型计算任务;对于每一组计算核,在对深度模型中不适于多个计算核完成该层计算的层进行计算时,该组内一个计算核负责该层的计算,该组内其他计算核空闲,而其他组的计算核同时在对其他帧数据进行深度模型计算,而不是空闲等待,减少了空闲计算核的数量,提高了计算核的单核利用率,从而提高了AI芯片的整体处理帧率。
实施例三
图3为本发明实施例三提供的数据处理装置的结构示意图。本发明实施例提供的数据处理装置可以执行数据处理方法实施例提供的处理流程。如图3所示,该装置30包括:分组模块301和调度模块302。
具体地,分组模块301用于将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务。
调度模块302用于调度至少两组计算核并行地执行至少两帧数据的深度模型计算任务。
本发明实施例提供的装置可以具体用于执行上述实施例一所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务;CPU调度至少两组计算核并行地执行至少两帧数据的深度模型计算任务,实现了在进行一次深度模型计算的过程中,多组计算核并行地执行多帧数据的深度模型计算任务;对于每一组计算核,在对深度模型中不适于多个计算核完成该层计算的层进行计算时,该组内一个计算核负责该层的计算,该组内其他计算核空闲,而其他组的计算核同时在对其他帧数据进行深度模型计算,而不是空闲等待,减少了空闲计算核的数量,提高了计算核的单核利用率,从而提高了AI芯片的整体处理帧率。
实施例四
在上述实施例三的基础上,本实施例中,至少两组中任意两个分组内计算核的数量均相等;或者,至少两组中任意两个分组内计算核数量的差值小于预设数量差。
可选的,分组模块还用于:将所有计算核分成的组的数量小于预设阈值。
可选的,分组模块还用于:将所有计算核分为两组或者三组。
可选的,调度模块还用于:
在接收到对一帧数据的深度模型计算任务时,调度空闲的一组计算核执行一帧数据的深度模型计算任务;在接收到对另一帧数据的深度模型计算任务时,调度空闲的另一组计算核执行另一帧数据的深度模型计算任务。
可选的,调度模块还用于:
通过多线程并行地调度至少两组计算核,以使每组计算核执行一帧数据的深度模型计算任务。
可选的,调度模块还用于:
在接收到对一帧数据的深度模型计算任务时,通过第一线程调度空闲的一组计算核执行一帧数据的深度模型计算任务;在接收到对另一帧数据的深度模型计算任务时,通过第二线程调度空闲的另一组计算核执行另一帧数据的深度模型计算任务。
本发明实施例提供的装置可以具体用于执行上述实施例二所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过将所有计算核分为第一数量个组,每组计算核用于共同执行一个数据帧的深度模型计算任务,其中第一数量小于预设阈值,CPU调度第一数量组计算核并行地执行第一数量帧数据的深度模型计算任务,实现了在进行一次深度模型计算的过程中,多组计算核并行地执行多帧数据的深度模型计算任务;对于每一组计算核,在对深度模型中不适于多个计算核完成该层计算的层进行计算时,该组内一个计算核负责该层的计算,该组内其他计算核空闲,而其他组的计算核同时在对其他帧数据进行深度模型计算,而不是空闲等待,减少了空闲计算核的数量,提高了计算核的单核利用率,从而提高了AI芯片的整体处理帧率。
实施例五
图4为本发明实施例五提供的AI芯片的结构示意图。如图4所示,该AI芯片40包括:CPU401,多个用于深度模型计算的计算核402,存储器403,以及存储在存储器上并可CPU运行的计算机程序。
CPU运行计算机程序时实现上述任一方法实施例提供的数据处理方法
本发明实施例通过将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务;CPU调度至少两组计算核并行地执行至少两帧数据的深度模型计算任务,实现了在进行一次深度模型计算的过程中,多组计算核并行地执行多帧数据的深度模型计算任务;对于每一组计算核,在对深度模型中不适于多个计算核完成该层计算的层进行计算时,该组内一个计算核负责该层的计算,该组内其他计算核空闲,而其他组的计算核同时在对其他帧数据进行深度模型计算,而不是空闲等待,减少了空闲计算核的数量,提高了计算核的单核利用率,从而提高了AI芯片的整体处理帧率。
另外,本发明实施例还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例提供的数据处理方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。
Claims (16)
1.一种数据处理方法,其特征在于,包括:
将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务;
调度所述至少两组计算核并行地执行至少两帧数据的深度模型计算任务。
2.根据权利要求1所述的方法,其特征在于,
所述至少两组中任意两个分组内计算核的数量均相等;
或者,所述至少两组中任意两个分组内计算核数量的差值小于预设数量差。
3.根据权利要求2所述的方法,其特征在于,所述将所有计算核分为至少两组,包括:
将所述所有计算核分成的组的数量小于预设阈值。
4.根据权利要求2所述的方法,其特征在于,所述将所有计算核分为至少两组,包括:
将所述所有计算核分为两组或者三组。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述调度所述至少两组计算核并行地执行至少两帧数据的深度模型计算任务,包括:
在接收到对一帧数据的深度模型计算任务时,调度空闲的一组所述计算核执行所述一帧数据的深度模型计算任务;
在接收到对另一帧数据的深度模型计算任务时,调度空闲的另一组所述计算核执行所述另一帧数据的深度模型计算任务。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述调度所述至少两组计算核并行地执行至少两帧数据的深度模型计算任务,包括:
通过多线程并行地调度所述至少两组计算核,以使每组所述计算核执行一帧数据的深度模型计算任务。
7.根据权利要求6所述的方法,其特征在于,通过多线程并行地调度所述至少两组计算核,以使每组所述计算核执行一帧数据的深度模型计算任务,包括:
在接收到对一帧数据的深度模型计算任务时,通过第一线程调度空闲的一组所述计算核执行所述一帧数据的深度模型计算任务;
在接收到对另一帧数据的深度模型计算任务时,通过第二线程调度空闲的另一组所述计算核执行所述另一帧数据的深度模型计算任务。
8.一种数据处理装置,其特征在于,包括:
分组模块,用于将所有计算核分为至少两组,每组计算核用于共同执行一个数据帧的深度模型计算任务;
调度模块,用于调度所述至少两组计算核并行地执行至少两帧数据的深度模型计算任务。
9.根据权利要求8所述的装置,其特征在于,
所述至少两组中任意两个分组内计算核的数量均相等;
或者,所述至少两组中任意两个分组内计算核数量的差值小于预设数量差。
10.根据权利要求9所述的装置,其特征在于,所述分组模块还用于:
将所述所有计算核分成的组的数量小于预设阈值。
11.根据权利要求9所述的装置,其特征在于,所述分组模块还用于:
将所述所有计算核分为两组或者三组。
12.根据权利要求8-11任一项所述的装置,其特征在于,所述调度模块还用于:
在接收到对一帧数据的深度模型计算任务时,调度空闲的一组所述计算核执行所述一帧数据的深度模型计算任务;
在接收到对另一帧数据的深度模型计算任务时,调度空闲的另一组所述计算核执行所述另一帧数据的深度模型计算任务。
13.根据权利要求8-11任一项所述的装置,其特征在于,所述调度模块还用于:
通过多线程并行地调度所述至少两组计算核,以使每组所述计算核执行一帧数据的深度模型计算任务。
14.根据权利要求13所述的装置,其特征在于,所述调度模块还用于:
在接收到对一帧数据的深度模型计算任务时,通过第一线程调度空闲的一组所述计算核执行所述一帧数据的深度模型计算任务;
在接收到对另一帧数据的深度模型计算任务时,通过第二线程调度空闲的另一组所述计算核执行所述另一帧数据的深度模型计算任务。
15.一种AI芯片,其特征在于,包括:CPU,多个用于深度模型计算的计算核,存储器,以及存储在所述存储器上并可所述CPU运行的计算机程序,
所述CPU运行所述计算机程序时实现如权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,存储有计算机程序,
所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810700318.9A CN108958938B (zh) | 2018-06-29 | 2018-06-29 | 数据处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810700318.9A CN108958938B (zh) | 2018-06-29 | 2018-06-29 | 数据处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108958938A true CN108958938A (zh) | 2018-12-07 |
CN108958938B CN108958938B (zh) | 2020-01-14 |
Family
ID=64484725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810700318.9A Active CN108958938B (zh) | 2018-06-29 | 2018-06-29 | 数据处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108958938B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738446A (zh) * | 2020-06-12 | 2020-10-02 | 北京百度网讯科技有限公司 | 深度学习推理引擎的调度方法、装置、设备和介质 |
CN113495866A (zh) * | 2020-03-19 | 2021-10-12 | 北京希姆计算科技有限公司 | 基于神经网络的数据计算方法及装置、多核架构芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515736A (zh) * | 2017-07-01 | 2017-12-26 | 广州深域信息科技有限公司 | 一种在嵌入式设备上加速深度卷积网络计算速度的方法 |
CN107704923A (zh) * | 2017-10-19 | 2018-02-16 | 珠海格力电器股份有限公司 | 卷积神经网络运算电路 |
CN108108809A (zh) * | 2018-03-05 | 2018-06-01 | 山东领能电子科技有限公司 | 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法 |
-
2018
- 2018-06-29 CN CN201810700318.9A patent/CN108958938B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515736A (zh) * | 2017-07-01 | 2017-12-26 | 广州深域信息科技有限公司 | 一种在嵌入式设备上加速深度卷积网络计算速度的方法 |
CN107704923A (zh) * | 2017-10-19 | 2018-02-16 | 珠海格力电器股份有限公司 | 卷积神经网络运算电路 |
CN108108809A (zh) * | 2018-03-05 | 2018-06-01 | 山东领能电子科技有限公司 | 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113495866A (zh) * | 2020-03-19 | 2021-10-12 | 北京希姆计算科技有限公司 | 基于神经网络的数据计算方法及装置、多核架构芯片 |
CN111738446A (zh) * | 2020-06-12 | 2020-10-02 | 北京百度网讯科技有限公司 | 深度学习推理引擎的调度方法、装置、设备和介质 |
CN111738446B (zh) * | 2020-06-12 | 2023-11-03 | 北京百度网讯科技有限公司 | 深度学习推理引擎的调度方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108958938B (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292241B (zh) | 处理计算图 | |
Das et al. | Distributed deep learning using synchronous stochastic gradient descent | |
KR101468201B1 (ko) | 문서들로부터 토픽들의 병렬 생성 | |
US11693706B2 (en) | System and method for dynamic scheduling of distributed deep learning training jobs | |
CN106650925A (zh) | 一种基于MIC集群的深度学习框架Caffe***及算法 | |
CN114610474B (zh) | 一种异构超算环境下多策略的作业调度方法及*** | |
CN109522108A (zh) | 一种基于Kernel合并的GPU任务调度***及方法 | |
CN102135901A (zh) | 带有动态数量工作者的并行查询引擎 | |
CN110187956A (zh) | 一种多智能体平台的分层实时任务调度方法和*** | |
CN109240795A (zh) | 一种适用于超融合it基础设施的云计算资源池模型的资源调度方法 | |
WO2020253383A1 (zh) | 一种基于众核处理器的流式数据处理方法及计算设备 | |
CN108958938A (zh) | 数据处理方法、装置及设备 | |
CN110163333A (zh) | 卷积神经网络的并行优化方法 | |
CN104793993A (zh) | 基于Levy飞行的人工蜂群粒子群算法的云计算任务调度方法 | |
CN108985451A (zh) | 基于ai芯片的数据处理方法及设备 | |
CN109684088A (zh) | 云平台资源约束的遥感大数据快速处理任务调度方法 | |
Guo et al. | Weighted aggregating stochastic gradient descent for parallel deep learning | |
CN117193992B (zh) | 模型训练方法、任务调度方法、装置以及计算机存储介质 | |
CN109976873A (zh) | 容器化分布式计算框架的调度方案获取方法及调度方法 | |
CN104317657B (zh) | 实时交通流量统计中均衡统计任务的方法及装置 | |
CN109522106B (zh) | 一种基于协同计算的风险价值模拟动态任务调度方法 | |
Zarrouk et al. | Towards an embedded distributed implementations of PSO solutions for the flexible job shop problem | |
Rajak et al. | Performance Metrics for Comparison of Heuristics Task Scheduling Algorithms in Cloud Computing Platform | |
Sun et al. | An improved estimation of distribution algorithm for cloud computing resource scheduling | |
CN110866591A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |