CN108351783A - 多核数字信号处理***中处理任务的方法和装置 - Google Patents
多核数字信号处理***中处理任务的方法和装置 Download PDFInfo
- Publication number
- CN108351783A CN108351783A CN201580083942.3A CN201580083942A CN108351783A CN 108351783 A CN108351783 A CN 108351783A CN 201580083942 A CN201580083942 A CN 201580083942A CN 108351783 A CN108351783 A CN 108351783A
- Authority
- CN
- China
- Prior art keywords
- task
- arithmetic element
- ready
- memory
- 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 61
- 230000010365 information processing Effects 0.000 title claims abstract description 34
- 230000015654 memory Effects 0.000 claims description 146
- 238000012545 processing Methods 0.000 claims description 61
- 238000004422 calculation algorithm Methods 0.000 claims description 26
- 230000008569 process Effects 0.000 abstract description 5
- 230000009467 reduction Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 24
- 238000004364 calculation method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 101150052726 DSP2 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000002674 ointment Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种多核数字信号处理***中处理任务的方法和装置,在处理任务过程中减少数据装载的等待开销,提高任务间的并行度,减少***调度开销。该方法包括:确定任务队列中的就绪任务(S110),确定执行该就绪任务的目标运算单元(S120);通过该目标运算单元执行该就绪任务,并同时通过该目标运算单元为待执行任务准备数据(S130)。
Description
本发明实施例涉及数字信号处理器领域,并且更具体地,涉及多核数字信号处理***中处理任务的方法和装置。
随着移动互联网技术发展,数据处理量急速增加,数字信号处理器芯片正在朝着多核大数据量处理方向迈进。数字信号处理器在进行数字运算时通常用软件代码实现,核数目增多给软件开发以及硬件资源利用和调试都带来诸多困难。当需求发生变换时,软件架构都需要重新划分多个不同核的功能映射关系,对一些硬件资源如内存,数据通道,消息资源等使用不充分造成浪费。
相关技术中的静态任务调度的方法在静态任务调度过程中,软件设计人员根据软件任务图标和各功能算法模块性能仿真评估后获得各功能模块的基本性能,在根据目标映射硬件资源的能力进行匹配,按照功能粒度,资源消耗将不同的软件功能部署到不同的硬件资源上,但是静态任务调度的方法适用场景受限、调度的复杂度高、内存资源利用率低。
相关技术中的动态任务调度方案中采用主从分布式调度的资源池方案,每个处理器上均承载一个裁剪的操作***(Operating System,简称为“OS”),可支持创建不同优先级的任务,可响应外部中断等,由主核将任务划分为适当的粒度放入任务缓存池,当从核空闲时,自主从主核中获取任务并执行。但是该方案中每个从核上均需要承载一个操作***,任务切换,数据装载均会占用很多的从核负载,计算资源和内存资源利用率较低。
发明内容
本发明实施例提供一种多核数字信号处理***中处理任务的方法和装置,能够在任务运行时决定运行的调度过程,动态分配运算资源,提高运算资源的利用率,减少***调度开销。
第一方面,提供了一种多核数字信号处理***中处理任务的方法,包括:确定任务队列中的就绪任务;确定执行该就绪任务的目标运算单元;通过该目标运算单元执行该就绪任务,并同时通过该目标运算单元为待执行任务准
备数据。
根据本发明实施例的多核数字信号处理***中处理任务的方法,在通过一个运算单元执行任务时,同时通过该运算单元为其他任务准备数据,由此能够实现数据装载与算法业务执行并行,减少数据装载的等待开销,提高任务间的并行度,减少***调度开销。
结合第一方面,在第一方面的一种实现方式中,在确定执行该就绪任务的依赖任务的运算单元空闲时,将该执行该就绪任务的运算单元确定为该目标运算单元。
此时,执行该就绪任务与该就绪任务的依赖任务的运算单元为同一个运算单元,在执行该就绪任务时,不需要再次装载数据,减轻装载路径上的拥堵情况。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,在通过该目标运算单元执行该就绪任务之前,该方法还包括:确定该目标运算单元的近端内存中用于存放与该就绪任务相对应的输入数据的内存块;将该与该就绪任务相对应的输入数据搬移到该内存块中。
结合第一方面及其上述实现方式,在第一方面的另一实现方式中,该确定该目标运算单元的近端内存中用于存放与该就绪任务相对应的输入数据的内存块,包括:根据固定资源池算法,确定该内存块,其中,该目标运算单元的近端内存中存储的数据支持驻留直到用户释放或在近端内存不够时将数据置换到远端内存。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该方法还包括:在通过该目标运算单元执行完该就绪任务时,将该就绪任务的输出数据保存在该近端内存中。
这样,执行任务时的读写内存均为近端内存,执行任务时不会因等待数据到达消耗时延,并且申请内存时采用固定资源池算法能够减小内存碎片,提高内存周转效率,节省内存。
结合第一方面及其上述实现方式,在第一方面的另一种可能的实现方式中,该根据固定资源池算法,确定该内存块,包括:根据该就绪任务需要的所有参数对应的数据块的总和与该近端内存中的单个内存块的大小的比值,确定该内存块的数量。
由此,通过将任务内的内存数据进行拼装处理,可以进一步提高内存的
使用效率,减少内存浪费。
结合第一方面及其上述实现方式,在第一方面的另一种可能的实现方式中,在确定任务队列中的就绪任务之前,该方法还包括:对包括该就绪任务的业务进行抽象处理,得到抽象处理信息,该抽象处理信息包括下列信息中的至少一种:任务依赖关系信息、数据依赖关系信息和任务执行的先后顺序信息。
结合第一方面及其上述实现方式,在第一方面的另一种可能的实现方式中,该任务队列为多个并行的任务队列;其中,该确定任务队列中的就绪任务,包括:按照优先级顺序轮询该多个并行的任务队列,确定该就绪任务。
结合第一方面及其上述实现方式,在第一方面的另一种可能的实现方式中,该对包括该就绪任务的业务进行抽象处理,包括:根据该业务的需要创建缓存;根据该缓存的缓存标识ID,确定该数据依赖关系信息。
第二方面,提供了一种多核数字信号处理***中处理任务的装置,用于执行上述第一方面或第一方面的任一可能的实现方式中的方法,具体地,该装置包括用于执行上述第一方面或第一方面的任一可能的实现方式中的方法的模块。
第三方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第四方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,但该计算机程序代码被多核数字信号处理***的处理任务的装置运行时,使得该装置执行上述第一方面或第一方面的任一可能的实现方式中的方法。
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是应用本发明实施例的应用***的示意性架构图;
图2是图1所示的应用***中的调度器包括的各个管理模块及其相互关
系的示意图;
图3是应用本发明实施例的应用***中的数据依赖关系的示意图;
图4是应用本发明实施例的应用***中只有一个核被调度时的调度结果示意图;
图5是应用本发明实施例的应用***中有三个核被调度时的调度结果示意图;
图6是根据本发明实施例的多核数字信号处理***中处理任务的方法的示意性流程图;
图7是根据本发明实施例的多核数字信号处理***中处理任务的方法的另一示意性流程图;
图8是根据本发明实施例的多核数字信号处理***中处理任务的方法的再一示意性流程图;
图9是根据本发明实施例的对业务进行抽象处理的方法的示意性流程图;
图10是根据本发明实施例的一种具体情况下实现处理任务的方法的示意性流程图;
图11是根据本发明实施例的确定就绪任务和空闲运算单元的方法的示意性流程图;
图12是根据本发明实施例的多核数字信号处理***中处理任务的装置的示意性框图;
图13是根据本发明实施例的多核数字信号处理***中处理任务的装置的另一示意性框图;
图14是根据本发明实施例的多核数字信号处理***中处理任务的装置的再一示意性框图;
图15是根据本发明另一实施例的多核数字信号处理***中处理任务的装置的示意性框图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创
造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
应理解,本发明实施例的技术方案主要应用于需要多核处理的数字信号处理***,具有大量并行计算的场景,如宏站基带芯片,终端芯片。该多核特征,具体体现在于,在单芯片上集成了计算模块的数量,包括但不限于多个通用处理器、多个IP核、多个专用处理器等。如计算模块的数量大于一,则为多核。
图1示出了应用本发明实施例的应用***(多核数字信号处理***)的示意性架构图,应用***由三部分组成:主控层、执行层和运算层。其中,主控层承载用户软件,完成高层的信息交互、流程控制、任务分解、任务依赖关系定义等功能。执行层由三部分组成,主控核执行层、调度器、从核执行层。主控核执行层提供软件编程接口,向调度器提交命令并且接收命令反馈或回调通知;调度器为硬件部分,负责处理任务的调度,具体的功能包括:任务间的依赖关系处理、内存管理、任务分配、数据搬移等功能。如图2所示,调度器内部由多个管理模块进行管理:命令管理、命令队列管理、事件管理、缓存(buffer)描述符管理、共享内存管理、运算内存管理、运算资源状态管理和调度主控模块;从核执行层为软件部分,主要负责接收任务消息,调用算法函数库到执行云端,运算结束后发送任务结束反馈消息。运算层可以为硬件也可以为软件,主要负责对任务进行处理。
下面将举例说明本发明实施例的方法应用的场景。假设已知有三种优先级的信道处理片断;其中核(Kernel)0~2是高优先级的处理,Kernel3~5是中优先级的处理,Kernel7~9是低优先级的处理。如图3所示,为了标示处理的数据流(箭头指向的方向表明了数据流动的方向),将主机(Host)与设备(Device)之间的数据流根据方向标示为缓存输入/输出(Buff_In/Out)。而Kernel与Kernel处理中间的数据流标示为缓存_M(Buff_M)。不同核之间的数据依赖关系可以描述为:
Kernel_0/3/7的输入分别为Buff_In0/1/2,由Host准备(实际应用中可能是来自外部接口或硬件加速控制(Hardware Accelerate Control,简称为“HAC”)的输出)。
Kernel_2完成处理后数据输出给Host(实际应用中Host通常需要将数字信号处理(Digital Signal Processing,简称为“DSP”)处理的数据发送到片外,或者给Hac继续处理)。
Kernel_2处理的输入依赖Kernel_1的输出,同时还依赖于Kernel_5的输出。
Kernel_4处理的输入依赖Kernel_9的输出,同时还依赖于Kernel_3的输出。
Kernel_8处理的输入依赖Kernel_7的输出,同时还依赖于Kernel_3的输出。
Kernel_3处理的输出除了给Kernel_4使用,还需要提供给Kernel_8使用(Kenrel_8可能只用其中的一部分)。
调度器根据被调度的实际执行核的数目,在保证数据依赖正确的情况下,按照优先级进行调度。上文中描述的Kernel依赖关系,在初始阶段,Host将全部提交Kernel到命令队列(CommandQueue),同时输入的数据Buff_In0/1/2全部就绪,则调度器在只有一个核可以被调度的情况下,其调度结果如图4所示,对于存在三个核的情况下,其调度结果如图5所示,在图5中,虚线Kernel_2,Kernel_4是否被调度在DSP2上依赖其输入的数据量的大小。如当Kernel_4输入的数据Buff_M8(Kernel_9的输出)大于或等于Buff_M2(Kernel_3的输出),则应将Kernel_4调度到DSP2上,否则应调度到Kernel_3的输出所在的核上。
应理解,在本发明实施例中,业务指的是独立于硬件处理数据的程序,是与操作***、驱动相区别的概念,业务例如可以是数据经过信道估计、快速傅氏变换(Fast Fourier Transformation,简称为“FFT”)、解码等操作。任务指的是软件任务,该软件任务为实现某一功能的一段程序,通常需要运行在核心处理器上。
图6是根据本发明实施例的处理任务的方法100的示意性流程图。该方法100可以由图1所示的多核数字信号处理***执行,如图6所示,该方法100包括:
S110,确定任务队列中的就绪任务;
S120,确定执行该就绪任务的目标运算单元;
S130,通过该目标运算单元执行该就绪任务,并同时通过该目标运算单元为待执行任务准备数据。
具体而言,多核数字信号处理***在确定任务队列中的就绪任务后,确定能够执行该就绪任务的目标运算单元,之后通过确定的该目标运算单元执
行该就绪任务,并同时通过该目标运算单元为待执行任务准备数据。
因此,本发明实施例的处理任务的方法,在通过目标运算单元执行就绪任务的同时通过该目标运算单元为待执行任务准备数据,由此可以将数据装载与运算并行,减少数据装载的等待开销,提高任务间的并行度,减少***调度开销。
需要说明的是,就绪任务指的是依赖的任务已经完成,可以启动运行的任务,待执行任务可以理解为在该就绪任务之后需要被执行的任务。一个运算单元可以理解为一个核。
可选地,在S110中,该任务队列为多个并行的任务队列;
相应地,S110具体为:按照优先级顺序轮询该多个并行的任务队列,确定该就绪任务。
也就是说,多核数字信号处理***可以创建并行任务队列,这些并行的任务之间为并行关系,但是这些并行的任务队列具有不同的优先级,任务下发进任务队列后,每个任务队列中的任务是串行执行的,采用先入先出的包序原则。
具体的,在确定就绪任务时,可以按照多个并行的任务队列的优先级由高到低的顺序进行轮询,如果高优先级的任务队列中没有就绪任务则继续轮询下一优先级的任务队列,直到找到一个就绪队列或者已经轮询到最低优先级的任务队列时,结束轮询。
可选地,在S130中,通过目标运算单元执行该就绪任务,并同时通过该目标单元为待执行任务准备数据,可以理解为将一个运算单元虚拟为乒乓两个逻辑资源,当一个逻辑资源分配任务后,另一个逻辑资源也可以再分配任务,这样可以保证一个逻辑资源在运算时,另一个逻辑资源的数据也在准备中,由此可以减少数据等待,提高运算资源利用率。
可选地,S120具体为:在确定执行该就绪任务的依赖任务的运算单元空闲时,将该执行该就绪任务的依赖任务的运算单元确定为该目标运算单元。
具体来说,该就绪任务的依赖任务指的是输出数据为该就绪任务的输入数据的任务,多核数字信号处理***可以依据数据位置选择空闲资源来执行该就绪任务,优选地,多核数字信号处理***记录了处理该就绪任务的依赖任务的运算单元,多核数字信号处理***在确定执行该依赖任务的运算单元
处于空闲状态时,则将就绪任务分配在该执行该依赖任务的运算单元上,即将该执行依赖任务的运算单元确定为该目标运算单元。由于处理该就绪任务的运算单元与处理该就绪任务的运算单元为同一个运算单元,由此可以不需要再次为该就绪任务装载数据,减轻装载路径上的拥堵情况。
可选地,在多核数字信号处理***在确定执行该依赖任务的运算单元不处于空闲状态时,可以从其他空闲的运算单元中随机选取一个空闲的运算单元作为目标运算单元。
可选地,如图7所示,在通过该目标运算单元执行该就绪任务之前,该方法100还包括:
S140,确定该目标运算单元的近端内存中用于存放与该就绪任务相对应的输入数据的内存块;
S150,将该与该就绪任务相对应的输入数据搬移到该内存块中。
具体来说,执行就绪任务所需要的数据可以在其他运算单元上或者在外部内存(例如双倍速率同步动态随机存储器(Double Data Rate,简称为“DDR”)、L3缓存等)上,在执行任务前需要把这些内存上的数据搬移到即将运行任务的运算单元的近端内存(例如L1缓存或L2缓存)上。在搬移数据之前需要先确定用于存储数据的内存块,或者需要先申请用于存储数据的内存,之后将数据搬移到确定的或申请到的内存上。
可选地,在S140中,根据固定资源池算法,确定该内存块,其中,该目标运算单元的近端内存中存储的数据支持驻留直到用户释放或在近端内存不够时将数据置换到远端内存。
也就是说,可以按照内存离核的远近将内存空间分级,然后根据内存的级别做相应的处理,对于近端内存的内存分配算法采用固定资源池算法,由此可以减小内存碎片和提高申请释放效率。
应理解,本发明实施例中还可以根据其他的算法申请该目标运算单元的近端内存,例如可以根据链表内存分配算法、伙伴算法、基于内存池的伙伴算法、工作集算法等算法申请近端内存,但本发明并不限于此。
可选地,S140具体为:根据该就绪任务需要的所有参数对应的数据块的总和与该近端内存中的单个内存块的大小的比值,确定需要申请的该近端内存中的内存块的数量。
具体来说,任务相当于一个功能函数,具有参数,每个参数可能是一块
数据,也可能是数值,可以将数据进行拼装处理之后放到同一个或多个内存块中。举例来说,假设任务A有10个参数,每个参数都是数据块类型,假设这10个参数对应的数据块大小总和为31K,近端内存中单个内存块的大小为4K,则需要申请的内存块的个数为8个。由此可以提高内存使用效率减少内存浪费。
可选地,如图8所示,在S110之前,该方法100还包括:
S160,对包括该就绪任务的业务进行抽象处理,得到抽象处理信息,该抽象处理信息包括下列信息中的至少一种:任务依赖关系信息、数据依赖关系信息和任务执行的先后顺序信息。
具体来说,可以将一个业务拆分为多个任务,对该业务进行抽象处理。在对包括该就绪任务的业务进行抽象的过程中,可以根据该业务的需要创建缓存(buffer),根据该缓存的缓存标识ID,确定该数据依赖关系信息。Buffer为一块数据存储空间,在任务开始前装载数据,在任务不需要此buffer时销毁。每个buffer都有一个ID,通过此ID进行任务间的数据关系的关联,假设任务A的输出的数据为任务B的输入数据,那么任务A的输出buffer为buffer2,任务B的输入也为buffer2。
应理解,buffer的创建可以是程序人员根据业务需要确定的,实际创建的buffer的个数是根据实际任务执行过程动态确定的。
在S160中,任务依赖关系信息用于指示任务间的依赖关系,可以由事件关联出任务之间的依赖关系,例如任务A完成可以选择发布一个事件ID,任务B需要等待任务A完成,在任务B的等待事件列表中填入事件A的事件ID,等待事件的描述包括等待事件的个数和等待事件的ID列表。
在本发明实施例中,可选地,可以描述任务输入输出数据特征,支持有限个输入输出参数,参数支持不同的特征:输入缓存、输出缓存、外部输入指针、传入值、全局指针等。
在本发明实施例中,由于可以对业务进行抽象处理,因此不同的多核芯片软件不需要重构,规格变化软件也不需重新部署,仅需创建一个资源集合即可。简化了软件编程人员需要根据不同的运算、负载和硬件的限制进行设计的复杂度。
在本发明实施例中,可选地,可以在通过该目标运算单元执行完该就绪任务时,将该就绪任务的输出数据保存在该近端内存中。由此当下一个任务
装载到相同的运算单元中时,不需要再次装载,减轻装载路径上的拥堵情况。
下面将结合图9对S160进行详细描述,S160可以由图1所示的架构图中的主控核执行层执行,该主控核执行层可以为软件编程接口,这些软件接口生成命令提交到调度器执行。如图9所示,在本发明实施例中,可选地,对包括该就绪任务的业务进行抽象处理,得到抽象处理信息的过程可以包括以下步骤:
S161,创建任务执行函数,执行函数库由从核执行层调用,主核执行层将函数的指针或者索引注册入函数列表中;
S162,创建使用功能资源集合;
该功能资源集合包括执行任务的资源,即在哪些运算单元上运行任务,使用哪些直接内存存取(Direct Memory Access,简称为“DMA”)等。
S163,创建并行队列;
队列有不同的优先级,队列之间为并行关系,任务下发进入队列,队列内串行执行,采用先入先出的保序原则。
S164,创建缓存buffer;
buffer为一块数据存储空间,任务开始前装载数据,在任务不需要此buffer数据时销毁。每个buffer都有一个ID,通过此ID进行任务间数据关系的关联,即任务A的输出的数据为任务B的输入数据,那么任务A的输出buffer为buffer2,任务B的输入buffer也为buffer2。
S165,描述任务间的依赖关系;
可以由事件关联出任务之间的依赖关系,即任务A完成可以选择发布一个事件ID,任务B需要等待任务A完成,在它的等待事件列表中填入事件A的事件ID,等待事件的描述包括等待事件的个数和等待事件的ID列表。
S166,描述任务输入输出数据特征;
本发明实施例的多核数字信号处理***,支持有限个输入输出参数个数,参数支持不同的特征,输入缓存、输出缓存、外部输入指针、传入值和全局指针等。
S167,设置算法业务参数,将实际参数值填入相应的参数表中;
S168,提交算法业务执行请求;
S169,等待执行回调,或者接收外部任务。
下面将结合图10详细描述在一种具体情况下实现处理任务的方法的示
意性流程图。图10将结合图11进行说明。如图10所示,根据本发明实施例的处理任务的方法200包括:
S201,调度器初始化;
创建需要使用的资源(队列、事件、buffer、命令),将所有资源放入共享队列,由主核执行层申请使用。
S202,调度器创建功能资源集合的响应处理;
创建功能资源集合的响应处理包括对运算单元的初始化、运算单元内存储管理器的初始化、共享内存的初始化。
S203,调度器等待主核执行层下发的命令,并进行命令处理;
S204,调度器按照优先级有高到低轮询并行队列,找到就绪任务;
S205,若有就绪任务,调度器在运算单元集合中选择一个空闲的运算单元,并准备就绪任务需要的数据;
可以将空闲的运算单元虚拟为乒乓两个逻辑资源,当一个逻辑资源分配任务后,另一个逻辑资源也可以再分配任务,这样可以保证一个逻辑资源在运算时,另一个逻辑资源的数据也在准备中,以减少数据等待,提高运算资源利用率。
在准备数据前,需要先申请运算单元的近端内存,之后设置DMA进行数据搬移,将数据搬入近端内存中。
可以根据内存的级别对内存做相应的处理,对于近端内存的内存分配算法采用固定资源池申请以减小内存碎片和提高申请释放效率。对于近端内存的数据支持驻留直到用户释放,或内存不够将数据置换到远端内存(根据用户设定的置换级别进行置换)。由于是固定大小的内存申请,为了提高内存使用效率减少内存浪费。
在S205中,若没有就绪任务,则处理已经下发的任务的反馈,更新事件列表,更新就绪任务表,释放相应内存,之后返回到S203。
在本发明实施例中,可选地,可以设置内存锁,保证数据读写的一致性,从而能够自动解决多个核(运算单元)同时读写的一致性问题。具体地,可以设定在文件的数据被改写时,任务不能读取该文件中的数据;或者设备定在文件的数据在被任务读取时,该文件的数据不能被改写。但多个任务同时读取该文件中的数据是允许的。
下面将结合图11具体说明步骤S204和S205中的确定就绪任务和空闲
运算单元的方法。图11中的方法由数字信号处理***中的调度器执行。
如图11所示,在S301中,轮询并行队列,并判断是否轮询到最低优先级的队列;
S302,确定没有轮询到最低优先级的队列时,获取就绪队列;
S303,确定就绪队列中是否存在就绪任务和***中是否存在空闲的运算单元;
在一个队列中,任务下发到队列后,是串行执行的,根据先入先出的保序原则执行。
S304,在确定存在就绪任务和空闲的运算单元时,获取就绪任务和空闲的运算单元;
S305,在获取到的空闲的运算单元上为获取到的就绪任务准备数据;
在S305之后,继续在当前优先级的队列中查找就绪任务,及确定***中是否存在空闲的运算单元,即执行S303及其后续步骤。
可选地,在S303中,如果确定当前优先级的就绪队列中没有就绪任务,则查询下一优先级的队列中是否存在就绪队列,即重新执行S301及其后续步骤。
可选地,在S301中,如果已经轮询到最低优先级的队列(也就是说,所有的队列已经轮询完毕),则执行以下步骤:
S306,判断是否有空闲的运算资源;
S307,在有空闲的运算资源时,找到空闲的运算资源;
空闲的运算资源应理解为一个运算单元的一个逻辑资源。
S308,获取空闲的运算资源的伙伴资源;
空闲的运算资源的伙伴资源指的是S307中的运算单元的另一个逻辑资源。
S309,在找到的空闲的运算资源上为任务准备数据。
具体地,在S308中获取到的该伙伴资源上已经部署有任务时,在找到的空闲运算资源上为与该伙伴资源上部署的任务有依赖关系的任务准备数据。在为该与该伙伴资源上部署的任务有依赖关系的任务准备数据后,可以继续执行S306及其后续步骤,进而为其他的任务准备数据。
因此,本发明实施例的处理任务的方法,在通过目标运算单元执行就绪任务的同时通过该目标运算单元为待执行任务准备数据,由此可以将数据装
载与运算并行,减少数据装载的等待开销,提高任务间的并行度,减少***调度开销。
下面将结合图12详细描述本发明实施例的多核数字信号处理***中处理任务的装置。如图12所示,该装置10包括:
确定模块11,用于确定任务队列中的就绪任务;
该确定模块11,还用于确定执行该就绪任务的目标运算单元;
任务执行模块12,用于通过该目标运算单元执行该就绪任务,并同时通过该目标运算单元为待执行任务准备数据。
因此,本发明实施例的多核数字信号处理***中处理任务的装置,在通过目标运算单元执行就绪任务的同时通过该目标运算单元为待执行任务准备数据,由此可以将数据装载与运算并行,减少数据装载的等待开销,提高任务间的并行度,减少***调度开销。
在本发明实施例中,可选地,在确定执行该就绪任务的目标运算单元方面,该确定模块11具体用于:在确定执行该就绪任务的依赖任务的运算单元空闲时,将该执行该就绪任务的依赖任务的运算单元确定为该目标运算单元。
在本发明实施例中,可选地,如图13所示,该装置还包括内存申请模块13;
其中,在该任务执行模块12通过该目标运算单元执行该就绪任务之前,该内存申请模块13具体用于:确定该目标运算单元的近端内存中用于存放与该就绪任务相对应的输入数据的内存块;将该与该就绪任务相对应的输入数据搬移到该内存块中。
在本发明实施例中,可选地,在确定该目标运算单元的近端内存中用于存放与该就绪任务相对应的输入数据的内存块方面,该内存申请模块13具体用于:根据固定资源池算法,确定该内存块,其中,该目标运算单元的近端内存中存储的数据支持驻留直到用户释放或在近端内存不够时将数据置换到远端内存。
在本发明实施例中,可选地,在根据固定资源池算法,确定该内存块方面,该内存申请模块13具体用于:根据该就绪任务需要的所有参数对应的数据块的总和与该近端内存中的单个内存块的大小的比值,确定需要申请的该近端内存中的内存块的数量。
在本发明实施例中,可选地,如图14所示,该装置还包括:
业务抽象模块14,用于在该确定模块10确定任务队列中的就绪任务之前,对包括该就绪任务的业务进行抽象处理,得到抽象处理信息,该抽象处理信息包括下列信息中的至少一种:任务依赖关系信息、数据依赖关系信息和任务执行的先后顺序信息。
在本发明实施例中,可选地,该任务队列为多个并行的任务队列;
其中,在确定任务队列中的就绪任务方面,该确定模块11具体用于:
按照优先级顺序轮询该多个并行的任务队列,确定该就绪任务。
在本发明实施例中,可选地,在对包括该就绪任务的业务进行抽象处理方面,该业务抽象模块14具体用于:根据该业务的需要创建缓存;根据该缓存的缓存标识ID,确定该数据依赖关系信息。
在本发明实施例中,可选地,该任务执行模块12还用于:在通过该目标运算单元执行完该就绪任务时,将该就绪任务的输出数据保存在该近端内存中。
应理解,根据本发明实施例的装置10的上述和其它操作和/或功能分别为了实现图6至图8中的各个方法,为了简洁,在此不再赘述。
因此,本发明实施例的多核数字信号处理***中处理任务的装置,在通过目标运算单元执行就绪任务的同时通过该目标运算单元为待执行任务准备数据,由此可以将数据装载与运算并行,减少数据装载的等待开销,提高任务间的并行度,减少***调度开销。
图15示出了根据本发明另一实施例的多核数字信号处理***中处理任务的装置100的示意性框图。
如图15所示,该多核数字信号处理***中处理任务的装置100的硬件结构可以包括:收发器件101、软件器件102以及硬件器件103三个部分。
其中,收发器件101为用于完成包收发的硬件电路;
硬件器件103也可以成为“硬件处理模块”或者更简单的,也可以简称为“硬件”,硬件器件103主要包括基于FPGA、ASIC之类的硬件电路(也会配合其他配套器件,如存储器)来实现某些特定功能的硬件电路,其处理速度相比通用处理器往往要快很多,但功能一经定制,便很难更改,因此,实现起来并不灵活,通常用来处理一些固定的功能,需要说明的是,硬件器件103在实际应用中,也可以包括MCU(微处理器,如单片机)、或者CPU
等处理器,但这些处理器的主要功能并不是完成大数据的处理,而主要用于进行一些控制,在这种应用场景下,由这些器件搭配的***为硬件器件。
软件器件102(或者也简单“软件”)主要包括通用的处理器(例如CPU)及其一些配套的器件(如内存、硬盘等存储设备),可以通过编程来让处理器具备相应的处理功能,用软件来实现时,可以根据业务需求灵活配置,但往往速度相比硬件器件来说要慢。软件处理完后,可以通过硬件器件103将处理完的数据通过收发器件101进行发送,也可以通过一个与收发器件101相连的接口向收发器件101发送处理完的数据。
可选地,作为一个实施例,该硬件器件103:用于确定任务队列中的就绪任务;确定执行该就绪任务的目标运算单元;通过该目标运算单元执行该就绪任务,并同时通过该目标运算单元为待执行任务准备数据。
可选地,作为一个实施例,在确定执行该就绪任务的目标运算单元方面,该硬件器件103具体用于:在确定执行该就绪任务的依赖任务的运算单元空闲时,将该执行该就绪任务的依赖任务的运算单元确定为该目标运算单元。
可选地,作为一个实施例,在通过该目标运算单元执行该就绪任务之前,该硬件器件103具体用于:确定该目标运算单元的近端内存中用于存放与该就绪任务相对应的输入数据的内存块;将该与该就绪任务相对应的输入数据搬移到该内存块中。
可选地,作为一个实施例,在确定该目标运算单元的近端内存中用于存放与该就绪任务相对应的输入数据的内存块方面,该硬件器件103具体用于:根据固定资源池算法,确定该内存块,其中,该目标运算单元的近端内存中存储的数据支持驻留直到用户释放或在近端内存不够时将数据置换到远端内存。
可选地,作为一个实施例,在根据固定资源池算法,确定该内存块方面,该硬件器件103具体用于:根据该就绪任务需要的所有参数对应的数据库的总和与该近端内存中的单个内存块的大小的比值,确定该内存块的数量。
可选地,作为一个实施例,该硬件器件103还用于:在确定任务队列中的就绪任务之前,对包括该就绪任务的业务进行抽象处理,得到抽象处理信息,该抽象处理信息包括下列信息中的至少一种:任务依赖关系信息、数据依赖关系信息和任务执行的先后顺序信息。
可选地,作为一个实施例,该任务队列为多个并行的任务队列;其中,
在对包括该就绪任务的业务进行抽象处理方面,该硬件器件103具体用于:根据该业务的需要创建缓存;根据该缓存的缓存标识ID,确定该数据依赖关系信息。
可选地,作为一个实施例,该硬件器件103还用于:在通过该目标运算单元执行完该就绪任务时,将该就绪任务的输出数据保存在该近端内存中。
通过本实施例软硬结合的方法,能够在通过目标运算单元执行就绪任务的同时通过该目标运算单元为待执行任务准备数据,由此可以将数据装载与运算并行,减少数据装载的等待开销,提高任务间的并行度,减少***调度开销。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (18)
- 一种多核数字信号处理***中处理任务的方法,其特征在于,所述方法包括:确定任务队列中的就绪任务;确定执行所述就绪任务的目标运算单元;通过所述目标运算单元执行所述就绪任务,并同时通过所述目标运算单元为待执行任务准备数据。
- 根据权利要求1所述的方法,其特征在于,所述确定执行所述就绪任务的目标运算单元,包括:在确定执行所述就绪任务的依赖任务的运算单元空闲时,将所述执行所述就绪任务的依赖任务的运算单元确定为所述目标运算单元。
- 根据权利要求1或2所述的方法,其特征在于,在通过所述目标运算单元执行所述就绪任务之前,所述方法还包括:确定所述目标运算单元的近端内存中用于存放与所述就绪任务相对应的输入数据的内存块;将所述与所述就绪任务相对应的输入数据搬移到所述内存块中。
- 根据权利要求3所述的方法,其特征在于,所述确定所述目标运算单元的近端内存中用于存放与所述就绪任务相对应的输入数据的内存块,包括:根据固定资源池算法,确定所述内存块,其中,所述目标运算单元的近端内存中存储的数据支持驻留直到用户释放或在近端内存不够时将数据置换到远端内存。
- 根据权利要求4所述的方法,其特征在于,所述根据固定资源池算法,确定所述内存块,包括:根据所述就绪任务需要的所有参数对应的数据块的总和与所述近端内存中的单个内存块的大小的比值,确定所述内存块的数量。
- 根据权利要求1至5中任一项所述的方法,其特征在于,在确定任务队列中的就绪任务之前,所述方法还包括:对包括所述就绪任务的业务进行抽象处理,得到抽象处理信息,所述抽象处理信息包括下列信息中的至少一种:任务依赖关系信息、数据依赖关系信息和任务执行的先后顺序信息。
- 根据权利要求1至6中任一项所述的方法,其特征在于,所述任务队列为多个并行的任务队列;其中,所述确定任务队列中的就绪任务,包括:按照优先级顺序轮询所述多个并行的任务队列,确定所述就绪任务。
- 根据权利要求6所述的方法,其特征在于,所述对包括所述就绪任务的业务进行抽象处理,包括:根据所述业务的需要创建缓存;根据所述缓存的缓存标识ID,确定所述数据依赖关系信息。
- 根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:在通过所述目标运算单元执行完所述就绪任务时,将所述就绪任务的输出数据保存在所述近端内存中。
- 一种多核数字信号处理***中处理任务的装置,其特征在于,所述装置包括:确定模块,用于确定任务队列中的就绪任务;所述确定模块,还用于确定执行所述就绪任务的目标运算单元;任务执行模块,用于通过所述目标运算单元执行所述就绪任务,并同时通过所述目标运算单元为待执行任务准备数据。
- 根据权利要求10所述的装置,其特征在于,在确定执行所述就绪任务的目标运算单元方面,所述确定模块具体用于:在确定执行所述就绪任务的依赖任务的运算单元空闲时,将所述执行所述就绪任务的依赖任务的运算单元确定为所述目标运算单元。
- 根据权利要求10或11所述的装置,其特征在于,所述装置还包括内存申请模块;其中,在所述任务执行模块通过所述目标运算单元执行所述就绪任务之前,所述内存申请模块具体用于:确定所述目标运算单元的近端内存中用于存放与所述就绪任务相对应的输入数据的内存块;将所述与所述就绪任务相对应的输入数据搬移到所述内存块中。
- 根据权利要求12所述的装置,其特征在于,在确定所述目标运算单元的近端内存中用于存放与所述就绪任务相对应的输入数据的内存块方 面,所述内存申请模块具体用于:根据固定资源池算法,确定所述内存块,其中,所述目标运算单元的近端内存中存储的数据支持驻留直到用户释放或在近端内存不够时将数据置换到远端内存。
- 根据权利要求13所述的装置,其特征在于,在根据固定资源池算法,确定所述内存块方面,所述内存申请模块具体用于:根据所述就绪任务需要的所有参数对应的数据块的总和与所述近端内存中的单个内存块的大小的比值,确定所述内存块的数量。
- 根据权利要求10至14中任一项所述的装置,其特征在于,所述装置还包括:业务抽象模块,用于在所述确定模块确定任务队列中的就绪任务之前,对包括所述就绪任务的业务进行抽象处理,得到抽象处理信息,所述抽象处理信息包括下列信息中的至少一种:任务依赖关系信息、数据依赖关系信息和任务执行的先后顺序信息。
- 根据权利要求10至15中任一项所述的装置,其特征在于,所述任务队列为多个并行的任务队列;其中,在确定任务队列中的就绪任务方面,所述确定模块具体用于:按照优先级顺序轮询所述多个并行的任务队列,确定所述就绪任务。
- 根据权利要求15所述的装置,其特征在于,在对包括所述就绪任务的业务进行抽象处理方面,所述业务抽象模块具体用于:根据所述业务的需要创建缓存;根据所述缓存的缓存标识ID,确定所述数据依赖关系信息。
- 根据权利要求10至17中任一项所述的装置,其特征在于,所述任务执行模块还用于:在通过所述目标运算单元执行完所述就绪任务时,将所述就绪任务的输出数据保存在所述近端内存中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/093248 WO2017070900A1 (zh) | 2015-10-29 | 2015-10-29 | 多核数字信号处理***中处理任务的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108351783A true CN108351783A (zh) | 2018-07-31 |
Family
ID=58629684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580083942.3A Pending CN108351783A (zh) | 2015-10-29 | 2015-10-29 | 多核数字信号处理***中处理任务的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108351783A (zh) |
WO (1) | WO2017070900A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825461A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 数据处理方法和装置 |
CN110968418A (zh) * | 2018-09-30 | 2020-04-07 | 北京忆恒创源科技有限公司 | 基于信号-槽的大规模有约束并发任务的调度方法与装置 |
CN111026539A (zh) * | 2018-10-10 | 2020-04-17 | 上海寒武纪信息科技有限公司 | 通信任务处理方法、任务缓存装置及存储介质 |
CN111324427A (zh) * | 2018-12-14 | 2020-06-23 | 深圳云天励飞技术有限公司 | 一种基于dsp的任务调度方法及装置 |
CN111767121A (zh) * | 2019-04-02 | 2020-10-13 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN114900486A (zh) * | 2022-05-09 | 2022-08-12 | 江苏新质信息科技有限公司 | 基于fpga的多算法核调用方法及*** |
CN116107724A (zh) * | 2023-04-04 | 2023-05-12 | 山东浪潮科学研究院有限公司 | 一种ai加速核调度管理方法、装置、设备及存储介质 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109697122B (zh) * | 2017-10-20 | 2024-03-15 | 华为技术有限公司 | 任务处理方法、设备及计算机存储介质 |
CN109725994B (zh) * | 2018-06-15 | 2024-02-06 | 中国平安人寿保险股份有限公司 | 数据抽取任务执行方法、装置、终端及可读存储介质 |
CN111104168B (zh) * | 2018-10-25 | 2023-05-12 | 上海嘉楠捷思信息技术有限公司 | 一种计算结果提交方法及装置 |
CN111104167B (zh) * | 2018-10-25 | 2023-07-21 | 上海嘉楠捷思信息技术有限公司 | 一种计算结果提交方法及装置 |
CN111309482B (zh) * | 2020-02-20 | 2023-08-15 | 浙江亿邦通信科技有限公司 | 基于哈希算法的区块链任务分配***、装置及可存储介质 |
CN112823343A (zh) * | 2020-03-11 | 2021-05-18 | 深圳市大疆创新科技有限公司 | 直接内存存取单元、处理器、设备、处理方法及存储介质 |
CN112148454A (zh) * | 2020-09-29 | 2020-12-29 | 行星算力(深圳)科技有限公司 | 一种支持串行和并行的边缘计算方法及电子设备 |
CN112365002A (zh) * | 2020-11-11 | 2021-02-12 | 深圳力维智联技术有限公司 | 基于spark的模型构建方法、装置、***及存储介质 |
CN112667386A (zh) * | 2021-01-18 | 2021-04-16 | 青岛海尔科技有限公司 | 任务管理方法和装置、存储介质及电子设备 |
CN113138812A (zh) * | 2021-04-23 | 2021-07-20 | 中国人民解放军63920部队 | 航天器任务调度方法及装置 |
CN115658325B (zh) * | 2022-11-18 | 2024-01-23 | 北京市大数据中心 | 数据处理方法、装置、多核处理器、电子设备以及介质 |
CN117633914B (zh) * | 2024-01-25 | 2024-05-10 | 深圳市纽创信安科技开发有限公司 | 基于芯片的密码资源调度方法、设备和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240930A1 (en) * | 2004-03-30 | 2005-10-27 | Kyushu University | Parallel processing computer |
CN1758223A (zh) * | 2004-10-08 | 2006-04-12 | 华为技术有限公司 | 基于数字信号处理器的多任务处理方法 |
CN1808386A (zh) * | 2005-01-18 | 2006-07-26 | 华为技术有限公司 | 处理多线程/多任务/多处理器的方法 |
CN101610399A (zh) * | 2009-07-22 | 2009-12-23 | 杭州华三通信技术有限公司 | 计划类业务调度***和实现计划类业务调度的方法 |
CN102096857A (zh) * | 2010-12-27 | 2011-06-15 | 大唐软件技术股份有限公司 | 一种数据处理过程的协同方法和装置 |
CN102542379A (zh) * | 2010-12-20 | 2012-07-04 | ***通信集团公司 | 一种计划任务处理方法、***及装置 |
US20130212591A1 (en) * | 2006-03-15 | 2013-08-15 | Mihai-Daniel Fecioru | Task scheduling method and apparatus |
CN103440173A (zh) * | 2013-08-23 | 2013-12-11 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
CN104598426A (zh) * | 2013-10-30 | 2015-05-06 | 联发科技股份有限公司 | 用于异构多核处理器***的任务调度方法 |
CN104714785A (zh) * | 2015-03-31 | 2015-06-17 | 中芯睿智(北京)微电子科技有限公司 | 任务调度装置、方法及并行处理数据的设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955685B (zh) * | 2011-08-17 | 2016-10-05 | 上海贝尔股份有限公司 | 多核dsp及其***和调度器 |
US9201693B2 (en) * | 2012-09-04 | 2015-12-01 | Microsoft Technology Licensing, Llc | Quota-based resource management |
-
2015
- 2015-10-29 CN CN201580083942.3A patent/CN108351783A/zh active Pending
- 2015-10-29 WO PCT/CN2015/093248 patent/WO2017070900A1/zh active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240930A1 (en) * | 2004-03-30 | 2005-10-27 | Kyushu University | Parallel processing computer |
CN1758223A (zh) * | 2004-10-08 | 2006-04-12 | 华为技术有限公司 | 基于数字信号处理器的多任务处理方法 |
CN1808386A (zh) * | 2005-01-18 | 2006-07-26 | 华为技术有限公司 | 处理多线程/多任务/多处理器的方法 |
US20130212591A1 (en) * | 2006-03-15 | 2013-08-15 | Mihai-Daniel Fecioru | Task scheduling method and apparatus |
CN101610399A (zh) * | 2009-07-22 | 2009-12-23 | 杭州华三通信技术有限公司 | 计划类业务调度***和实现计划类业务调度的方法 |
CN102542379A (zh) * | 2010-12-20 | 2012-07-04 | ***通信集团公司 | 一种计划任务处理方法、***及装置 |
CN102096857A (zh) * | 2010-12-27 | 2011-06-15 | 大唐软件技术股份有限公司 | 一种数据处理过程的协同方法和装置 |
CN103440173A (zh) * | 2013-08-23 | 2013-12-11 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
CN104598426A (zh) * | 2013-10-30 | 2015-05-06 | 联发科技股份有限公司 | 用于异构多核处理器***的任务调度方法 |
CN104714785A (zh) * | 2015-03-31 | 2015-06-17 | 中芯睿智(北京)微电子科技有限公司 | 任务调度装置、方法及并行处理数据的设备 |
Non-Patent Citations (1)
Title |
---|
张琼声等: "操作***内核内存分配算法的分析与性能评价", 《计算机***应用》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825461A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 数据处理方法和装置 |
CN110825461B (zh) * | 2018-08-10 | 2024-01-05 | 北京百度网讯科技有限公司 | 数据处理方法和装置 |
CN110968418A (zh) * | 2018-09-30 | 2020-04-07 | 北京忆恒创源科技有限公司 | 基于信号-槽的大规模有约束并发任务的调度方法与装置 |
CN111026539A (zh) * | 2018-10-10 | 2020-04-17 | 上海寒武纪信息科技有限公司 | 通信任务处理方法、任务缓存装置及存储介质 |
CN111026539B (zh) * | 2018-10-10 | 2022-12-02 | 上海寒武纪信息科技有限公司 | 通信任务处理方法、任务缓存装置及存储介质 |
CN111324427A (zh) * | 2018-12-14 | 2020-06-23 | 深圳云天励飞技术有限公司 | 一种基于dsp的任务调度方法及装置 |
CN111324427B (zh) * | 2018-12-14 | 2023-07-28 | 深圳云天励飞技术有限公司 | 一种基于dsp的任务调度方法及装置 |
CN111767121A (zh) * | 2019-04-02 | 2020-10-13 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111767121B (zh) * | 2019-04-02 | 2022-11-01 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN114900486A (zh) * | 2022-05-09 | 2022-08-12 | 江苏新质信息科技有限公司 | 基于fpga的多算法核调用方法及*** |
CN114900486B (zh) * | 2022-05-09 | 2023-08-08 | 江苏新质信息科技有限公司 | 基于fpga的多算法核调用方法及*** |
CN116107724A (zh) * | 2023-04-04 | 2023-05-12 | 山东浪潮科学研究院有限公司 | 一种ai加速核调度管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017070900A1 (zh) | 2017-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108351783A (zh) | 多核数字信号处理***中处理任务的方法和装置 | |
US10467725B2 (en) | Managing access to a resource pool of graphics processing units under fine grain control | |
EP3239852B1 (en) | Method and device for task scheduling on heterogeneous multi-core reconfigurable computing platform | |
US10733019B2 (en) | Apparatus and method for data processing | |
US11290392B2 (en) | Technologies for pooling accelerator over fabric | |
US20140095769A1 (en) | Flash memory dual in-line memory module management | |
US9378047B1 (en) | Efficient communication of interrupts from kernel space to user space using event queues | |
US9965412B2 (en) | Method for application-aware interrupts management | |
CN109074281B (zh) | 图形处理器任务的分配方法和装置 | |
US20160127382A1 (en) | Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time | |
US10275558B2 (en) | Technologies for providing FPGA infrastructure-as-a-service computing capabilities | |
US10983833B2 (en) | Virtualized and synchronous access to hardware accelerators | |
US9471387B2 (en) | Scheduling in job execution | |
US20120144146A1 (en) | Memory management using both full hardware compression and hardware-assisted software compression | |
KR20140096587A (ko) | 기능 유닛들 간의 기능 로직 공유 장치, 방법 및 재구성 가능 프로세서 | |
US9015719B2 (en) | Scheduling of tasks to be performed by a non-coherent device | |
US8706923B2 (en) | Methods and systems for direct memory access (DMA) in-flight status | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
CN113439260A (zh) | 针对低时延存储设备的i/o完成轮询 | |
US11941722B2 (en) | Kernel optimization and delayed execution | |
US20180181443A1 (en) | METHOD OF PROCESSING OpenCL KERNEL AND COMPUTING DEVICE THEREFOR | |
US20240184624A1 (en) | Method and system for sequencing artificial intelligence (ai) jobs for execution at ai accelerators | |
Park et al. | BTS: Exploring Effects of Background Task-Aware Scheduling for Key-Value CSDs | |
CN118159947A (zh) | 用于处理任务请求的方法和计算设备 | |
US8656375B2 (en) | Cross-logical entity accelerators |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180731 |
|
WD01 | Invention patent application deemed withdrawn after publication |