CN111310638B - 一种数据处理方法、装置及计算机可读存储介质 - Google Patents
一种数据处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111310638B CN111310638B CN202010086593.3A CN202010086593A CN111310638B CN 111310638 B CN111310638 B CN 111310638B CN 202010086593 A CN202010086593 A CN 202010086593A CN 111310638 B CN111310638 B CN 111310638B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- handle
- processing
- message
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- 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
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/96—Management of image or video recognition tasks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Stored Programmes (AREA)
- Advance Control (AREA)
Abstract
本发明实施例提供一种数据处理方法、装置及计算机可读存储介质,该方法应用于数字信号处理器DSP,DSP包括M个算法模型,M为大于1的整数,包括:根据业务请求生成任务,该任务携带有头信息和待处理数据,头信息包括任务类型的标识,待处理数据为图像和/或视频;根据M个算法模型和任务类型的标识确定算法模型和消息回调函数表,消息回调函数表包括一个或多个消息回调函数;根据确定的算法模型和消息回调函数表对待处理数据进行处理。本发明实施例,可以提高数据处理效率。
Description
技术领域
本发明涉及机器学习领域,具体涉及一种数据处理方法、装置及计算机可读存储介质。
背景技术
随着计算机技术的不断发展,需要处理的数据越来越多。因此,为了提高数据处理效率,业界引入了深度学习(deep learning)。深度学习用于学习样本数据的内在规律和表示层次,以便可以使机器能够像人一样具有分析学习能力,能够处理数据。在深度学习中,是通过算法模型来学习的。目前,算法模型是通过有限状态机(finite state machine,FSM)模型来设计的。由于算法模型的交叉复用使状态机比较复杂,很多应用场景可能无法考虑到,因此,在用算法模型处理数据的过程中,对于没有考虑到的场景数据很容易出现错误。此外,在后续对算法模型进行扩展时,会对算法模型中已有的状态机产生较大的冲击,且由于算法模型演进的不确定性,导致状态机的后续扩展更加困难。因此,降低了算法模型的适用性。
发明内容
本发明实施例提供一种数据处理方法、装置及计算机可读存储介质,用于提高数据处理效率。
第一方面提供一种数据处理方法,所述方法应用于数字信号处理器DSP,所述DSP包括M个算法模型,M为大于1的整数,包括:
根据业务请求生成任务,所述任务携带有头信息和待处理数据,所述头信息包括任务类型的标识,所述待处理数据为图像和/或视频;
根据所述M个算法模型和所述任务类型的标识确定算法模型和消息回调函数表,所述消息回调函数表包括一个或多个消息回调函数;
根据确定的算法模型和确定的消息回调函数表对所述待处理数据进行处理。
由于算法模型根据消息回调函数设计,算法模型的交叉复用可以通过回调函数来实现,而不是通过状态机来实现,由于一个回调函数对应一个消息,针对不同应用场景只需要将不同的消息进行组合即可,因此,可以通过有限的消息组合达到对不同场景的覆盖。此外,在后续对算法模型进行扩展时,只需要增加消息即可,算法模型的可扩展性较强。因此,可以提高算法模型的适用性。
作为一种可能的实现方式,所述头信息还包括句柄的标识,所述方法还包括:
根据所述任务类型的标识和所述句柄的标识,确定所述任务的句柄;
所述根据确定的算法模型和确定的消息回调函数表对所述待处理数据进行处理包括:
根据确定的算法模型、确定的消息回调函数表和所述任务的句柄对所述待处理数据进行处理。
可以根据消息回调函数表和任务的句柄快速地对数据进行处理,因此,可以进一步提高数据处理效率。
作为一种可能的实现方式,所述根据确定的算法模型、确定的消息回调函数表和所述任务的句柄对所述待处理数据进行处理包括:
根据确定的算法模型、确定的消息回调函数表和所述任务的句柄,确定所述任务的控制信息;
根据所述控制信息和所述算法模型对所述待处理数据进行处理。
可以先得到控制信息,之后根据控制信息和算法模型对数据进行处理,因此,可以进一步提高数据处理效率。
作为一种可能的实现方式,所述根据所述任务类型的标识和所述句柄的标识,确定所述任务的句柄包括:
从所述任务类型的标识对应的算法模型包括的句柄中,选取所述句柄的标识对应的句柄;
在获取的句柄为空的情况下,创建所述任务的句柄;
在获取的句柄不为空的情况下,将获取的句柄确定为所述任务的句柄。
由于采用多句柄管理,因此,一个算法模型可以同时处理多个同一任务类型的不同任务,从而可以进一步提高数据处理效率。
作为一种可能的实现方式,所述方法还包括:
在所述待处理数据处理完后,发送处理结果;
删除所述任务的句柄。
在任务处理完之后删除任务的句柄,可以节约存储空间。
作为一种可能的实现方式,所述头信息还包括消息的标识,所述根据确定的算法模型和确定的消息回调函数表对所述待处理数据进行处理包括:
根据确定的算法模型确定处理流程;
根据确定的消息回调函数表确定所述处理流程中使用的消息的标识;
根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理。
可以通过消息的标识调用对应的消息回调函数进行返回,可以减少处理步骤,因此,可以提高数据处理效率。
作为一种可能的实现方式,所述根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理包括:
在所述处理流程包括需要硬件处理的流程的情况下,向加速层发送加速任务,所述加速任务携带有计算类型、计算数据和第一消息回调函数,所述加速任务用于指示所述加速层通过所述计算类型对应的硬件对所述计算数据进行计算,根据所述第一消息回调函数返回计算结果,所述硬件为深度学习中用于算子运算的专用芯片;
接收来自所述加速层的计算结果。
由于加速任务可以在硬件上进行,而硬件为研发人员根据需要自主研发的深度学习中用于算子运算的专用芯片,只用于处理某一个或多个算子的运算,可以提高这些算子的计算效率,因此,可以进一步提高数据处理效率。
第二方面提供一种数据处理装置,所述装置设置在数字信号处理器DSP上,所述装置设置在数字信号处理器DSP上,所述DSP包括M个算法模型,M为大于1的整数,包括:
生成单元,用于根据业务请求生成任务,所述任务携带有头信息和待处理数据,所述头信息包括任务类型的标识,所述待处理数据为图像和/或视频;
第一确定单元,用于根据所述M个算法模型和所述任务类型的标识确定算法模型和消息回调函数表,所述消息回调函数表包括一个或多个消息回调函数;
处理单元,用于根据确定的算法模型和确定的消息回调函数表对所述待处理数据进行处理。
作为一种可能的实现方式,所述头信息还包括句柄的标识,所述装置还包括:
第二确定单元,用于根据所述任务类型的标识和所述句柄的标识,确定所述任务的句柄;
所述处理单元,具体用于根据确定的算法模型、确定的消息回调函数表和所述任务的句柄对所述待处理数据进行处理。
作为一种可能的实现方式,所述处理单元具体用于:
根据确定的算法模型、确定的消息回调函数表和所述任务的句柄,确定所述任务的控制信息;
根据所述控制信息和所述确定的算法模型对所述待处理数据进行处理。
作为一种可能的实现方式,所述第二确定单元具体用于:
从所述任务类型的标识对应的算法模型包括的句柄中,选取所述句柄的标识对应的句柄;
在获取的句柄为空的情况下,创建所述任务的句柄;
在获取的句柄不为空的情况下,将获取的句柄确定为所述任务的句柄。
作为一种可能的实现方式,所述装置还包括:
发送单元,用于在所述待处理数据处理完后,发送处理结果;
删除单元,用于删除所述任务的句柄。
作为一种可能的实现方式,所述头信息还包括消息的标识,所述处理单元具体用于:
根据确定的算法模型确定处理流程;
根据确定的消息回调函数表确定所述处理流程中使用的消息的标识;
根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理。
作为一种可能的实现方式,所述处理单元根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理包括:
在所述处理流程包括需要硬件处理的流程的情况下,向加速层发送加速任务,所述加速任务携带有计算类型、计算数据和第一消息回调函数,所述加速任务用于指示所述加速层通过所述计算类型对应的硬件对所述计算数据进行计算,根据所述第一消息回调函数返回计算结果,所述硬件为深度学习中用于算子运算的专用芯片;
接收来自所述加速层的计算结果。
第三方面提供一种数据处理装置,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令执行第一方面或第一方面的任一实施例提供的数据处理方法。
第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行第一方面或第一方面的任一实施例提供的数据处理方法。
第五方面提供一种应用程序,该应用程序用于在运行时执行第一方面或第一方面的任一实施例提供的数据处理方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种系统架构的示意图;
图2是本发明实施例提供的一种数据处理系统的结构示意图;
图3是本发明实施例提供的一种HL模型的示意图;
图4是本发明实施例提供的一种HL配置的示意图;
图5是本发明实施例提供的一种HL工作原理的示意图;
图6是本发明实施例提供的一种加速层的示意图;
图7是本发明实施例提供的一种两个DSP的硬件资源分配的示意图;
图8是本发明实施例提供的一种DSP1和DSP2批调度业务请求的示意图;
图9是本发明实施例提供的一种通用的业务算法模型的示意图;
图10是本发明实施例提供的一种通用的任务调度模型的示意图;
图11是本发明实施例提供的一种标记调度的示意图;
图12是本发明实施例提供的一种句柄调度的示意图;
图13是本发明实施例提供的一种多任务的HL配置的示意图;
图14是本发明实施例提供的一种数据处理方法的流程示意图;
图15是本发明实施例提供的一种数据处理装置的结构示意图;
图16是本发明实施例提供的另一种数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据处理方法、装置及计算机可读存储介质,用于提高数据处理效率。以下分别进行详细说明。
为了更好地理解本发明实施例提供的一种数据处理方法、装置及计算机可读存储介质,下面先对本发明实施例使用的系统架构进行描述。请参阅图1,图1是本发明实施例提供的一种系统架构的示意图。如图1所示,该系统架构可以包括应用处理(applicationprocess,AP)系统101和数据处理系统102。
AP系统101,用于接收用户输入的消息,根据该消息向数据处理系统102发送业务请求,该业务请求携带有待处理数据。
数据处理系统102,用于接收来自AP系统101的业务请求,根据该业务请求对待处理数据进行处理,将处理结果发送给AP系统101。
AP系统101,还用于接收来自数据处理系统102的处理结果。
请参阅图2,图2是本发明实施例提供的一种数据处理系统的结构示意图。如图2所示,该数据处理系统可以包括中断模块、消息接收模块、共享任务池、至少两个数字信号处理器(digital signal processor,DSP)、至少两个DSP中每个DSP对应的任务池、加速层、DDR存储器和消息发送模块。加速层包括硬件加速模块和硬件驱动模块。
中断模块,用于接收来自AP系统的业务请求,向消息接收模块发送该业务请求和携带该业务请求的标识的中断。该业务请求携带有待处理数据、任务类型的标识以及用于指示该业务请求的类型的指示信息。待处理数据可以为图像或视频。
消息接收模块,用于接收来自中断模块的该业务请求和中断,根据指示信息确定该业务请求的类型;在该指示信息指示该业务请求为共享业务请求的情况下,向共享任务池发送该业务请求,向至少两个DSP分别发送该中断;在该指示信息指示该业务请求为DSP1处理的业务请求的情况下,向DSP1对应的任务池发送该业务请求,向DSP1发送该中断。DSP1为至少两个DSP中的任一DSP。
共享任务池,用于接收来自消息接收模块的共享业务请求,存储接收的业务请求。
DSP1对应的任务池,用于接收来自消息接收模块的DSP1处理的业务请求,存储接收的业务请求。共享任务池以及至少两个DSP中每个DSP对应的任务池遵循先进先出的原则。
DSP1,用于接收来自消息接收模块的中断,在DSP1处于空闲状态的情况下,从DSP1对应的任务池或共享任务池获取该业务请求,根据该业务请求生成任务,为该任务从配置的HL中选取一条HL,向加速层发送该任务的HL的配置信息,根据任务携带的任务类型的标识确定该任务要使用的算法模型和消息回调函数表,根据算法模型、消息回调函数表、待处理数据以及该任务携带的句柄的标识和消息的标识创建句柄,通过句柄控制算法模型包括的处理流程对待处理数据进行处理。在处理流程包括需要硬件处理的流程的情况下,向加速层发送加速任务。加速任务可以携带有头信息、计算数据和计算类型,计算数据为待处理数据中的部分数据或待处理数据处理后的数据。
该任务携带有头信息。头信息可以包括任务类型的标识、句柄(handle)的标识和消息的标识。任务类型的标识即业务请求携带的任务类型的标识。句柄的标识用于标识该任务,是根据可以并行处理的该任务类型的任务的数量以及业务请求到达任务池时任务池中已经存在的该任务类型的任务数量确定的。可以并行处理的该任务类型的任务的数量是预先配置的。例如,配置的可以并行处理的任务的数量为8,句柄的标识为0-7之间的值,该业务请求到达时任务池中有同一任务类型的业务请求的数量为6,则句柄的标识为6。消息的标识是初始化的值,所有消息的标识的初始化的值均相同。为该任务从配置的HL中选取一条HL时,可以先根据任务类型选取,在选取的HL为一条的情况下,可以将这条HL确定为这个任务的HL。在选取的HL为多条的情况下,可以从这多条HL中选取描述符空间的剩余空间最大的一条HL为这个任务的HL。之后为这个任务的HL中的每个队列分别生成描述符,以及为每个队列的描述符从该HL的描述符空间中分配空间,以便确定配置信息。在描述符空间剩余的空间或HL对应的缓存器的剩余空间不够该任务的情况下,可以将该任务重新放入DSP1对应的任务池。
共享任务池,还用于在该指示信息指示该业务请求为共享业务请求的情况下,在该业务请求被DSP1取走后,向DSP2发送该业务请求被处理的信息。DSP2为至少两个DSP中除DSP1之外的DSP。
DSP2,用于接收来自共享任务池的信息,根据该信息删除该中断。
加速层,用于接收到来自DSP的加速任务,根据配置信息、头信息和计算类型对计算数据进行处理。
为了更好地理解本发明实施例提供的一种数据处理方法、装置及计算机可读存储介质,下面先对本发明实施例的相关概念和信息进行描述。请参阅图3,图3是本发明实施例提供的一种HL模型的示意图。如图3所示,HL模型包括HL0、HL1和HL2三条HL。HL0为DSP→硬件加速器(hardware accelerator,HW)-A→HW-C→DSP,包括队列Q0和Q1。HL1为DSP→HW-A→DSP,包括队列Q2。HL2为DSP→HW-B→HW-C→DSP,包括队列Q3和Q4。
队列为连接两个硬件实体之间的关联(即硬连线)。例如,图3中的Q0为关联DSP和HW-A之间的队列。队列也称描述符表,用于描述HW的工作方式。一个队列对应一个或多个描述符,在一个队列配置有一个任务的情况下,一个队列对应一个描述符,在一个队列配置有多个任务的情况下,一个队列对应多个描述符。队列的描述符可以包括队列的数据结构、队列的输出缓存器(output buffer)的个数和地址、配置的最近输出缓存器的指针。队列的数据结构可以包括队列的描述符在描述符空间中的地址、大小、读写指针以及单次配置可能消耗的最大内存空间。两个硬件之间可以配置多个队列。例如,图3中的DSP与HW-A之间配置了Q0和Q2两个队列。队列的配置参数由DSP预先配置,该配置参数可以携带输入数据地址、输出数据地址以及相关的启动参数,如任务数、图像格式等。队列的描述符对应的任务对应于HW的工作方式。例如,图3中的Q0的描述符对应的任务定义HW-A的输入配置参数和输出配置参数。队列的数据结构采用循环缓冲器,可以一次为一个队列配置多个任务,DSP为队列配置描述符(write),HW从队列的描述符中读取队列的配置参数,根据配置参数使对应的硬件工作。
缓存器管理(buffer manager)用于控制硬件之间的任务,是用于控制任务的进行或停止的自主研发芯片,配置在加速层中。缓存器管理为每个缓存器配置一个阈值,用于表征缓存器能够容纳任务的最大数量。缓存器类似于一个容器,当缓存器的阈值大于或等于HL包括的任务数量时,缓存器可以存储HL包括的所有数据。当缓存器的阈值小于HL包括的任务数量时,缓存器先存储HL包括的任务中前阈值个任务,在前阈值个任务处理完成后,缓存器中存储的数据被DSP取走之后,缓存器继续存储HL包括的剩余任务。
HL是根据上层算法(algorithm)业务组合的物理链路,描述了HL的业务处理能力。HL由一个或多个不同的队列串接HW,起点为DSP,终点也必须为DSP。HL通过配置HL上的队列的描述符来驱动硬件工作。请参阅图4,图4是本发明实施例提供的一种HL配置的示意图。如图4所示,DSP可以为HL0配置一个描述符空间,这个描述符空间分配给HL0中的不同队列。HL0中Q0包括四个任务。HL的描述符空间大小是预先配置的。HL中每个队列的描述符可以配置的最大空间也是预先配置的。rdPos为为HL0配置的描述符空间(区域)中已经被硬件读取的描述符的结尾,即HL0的描述符空间中当前读指针的位置。wrPos为为HL0配置的描述符空间中DSP已经配置的描述符的结尾,即为HL0中的队列Q0配置的描述符的起始地址,也即HL0的描述符空间中当前写指针的位置。endPos为为HL0配置的描述符空间的末尾,即HL0的描述符空间的结束地址。maxCfgSz为单次配置的一个或多个描述符可以占据的最大空间。wrapEn为当写指针超过endPos时,可以将wrapEn置真(true),同时将该次配置从HL0对应的描述符空间的首地址开始,即在HL0对应的描述符空间分配完成之后,可以重新从最开始进行分配。硬件接收到该标志后,也会从首地址开始读取描述符。HL中每个队列是独立配置的。在为一个任务配置一条HL之前,可以先判断这条HL是否有足够的描述符空间为这个任务配置,在有足够描述符空间的情况下,可以为这个任务配置这条HL,以及可以从这条HL的描述符空间中为这个任务的描述符分配空间。可以根据这条HL包括的队列支持的maxCfgSz,以及队列的读写指针位置,判断队列是否有足够的空间配置给这个任务,如果空间不够,那么不能配置这条HL给这个任务。例如,考虑到wrapEn的影响,图4中HL0的描述符空间中rdPos和wrPos之间的空间大于或等于2*maxCfgSz的情况下,才能确保队列Q0和队列Q1中的任务100%写入。在wrPos大于或等于rdPos,且wrPos与maxCfgSz的和小于endPos的情况下,即待配置的描述符的起始位置在硬件读取的描述符位置上,也即描述符空间的写指针在描述符空间的读指针前面,继续为HL中的队列的描述符进行配置。在wrPos小于rdPos,且wrPos与maxCfgSz的和小于rdPos的情况下,该种场景即对应着wrapEn为真的情形,配置后的描述符尽可能不影响到硬件正在读的描述符。可以判断为队列配置的最后一个任务是否需要wrapEn,在队列的wrPos超过HL的endPos的情况下,HL中这个队列的最后一个任务需要将wrapEn置真。
HL区分不同的DSP,不同DSP之间的HL是相互独立的。例如,DSP0只能调用DSP0自身管理的HL。对于同一个DSP管理的同一类型的多个HL,每次为任务配置HL时,优先选择HL中队列的剩余描述符的空间最大的HL。例如,DSP0管理2个某类型的HL,HL0中Q0的剩余空间为1.2KB,Q1的剩余空间为3KB,可见,HL0中Q0的容量(capacity)为1.2KB。HL1中的Q0的剩余空间为2.3KB,Q1的剩余空间为8KB,可见,HL1中Q0的容量为2.3KB。因此,可以选择HL1为任务的HL。
队列作为DSP与HW之间的交互缓冲,理论上越大越好,以便可以减少DSP与HW之间的依赖。在队列的描述符能够配置的空间较小的情况下,DSP需要将任务切分为多个子任务进行配置,且要及时响应中断取出缓存器中的结果。在队列的描述符占用DDR空间的情况下,队列可以足够大。在队列的描述符占用静态随机存取存储器(static random-accessmemory,SRAM)空间的情况下,一条HL中一个队列的描述符所占空间不能超过128KB,因此,需要考虑这条HL中多个队列之间的均衡性。例如,HL中Q0的描述符所占空间最多支持32个任务,则HL中Q1Q0的描述符所占空间也最多支持32个任务,不均衡会造成HL的SRAM浪费。HL的最后一级输出缓存器的个数要尽可能多,以便可以减少对DSP的依赖,缓存的时间要达到2ms以上。
为任务配置的HL中需要携带任务的头信息(header),主要用于HL的任务结果回调函数中,利用头信息来生成新的任务。例如,头信息可以表示如下:typedef struct{
u16 algldx:5;//0~31,业务请求携带的任务类型的标识;
u16 poolldx:2;//0:dsp 0,1:dsp 1,3:dsp0&dsp1;
u16 priority:2;//0:sched 1:high,2:low;
u16 handleldx:3;//任务类型(algldx)对应的handle的标识,一次最多可以同时处理8个handle;
u16 msgldx:4;//任务类型(algldx)对应的消息的标识,一次最多可以同时处理16个消息;
u16 bearinfo;//用户自定义信息(bear携带信息,任务中携带bear,应答消息上原封不动返回bear信息
}Msg_Header
可以通过为任务配置的HL中的头信息包括的algldx指明HL中该任务的处理结果再送给哪个algldx和handleldx,同时可以返回配置中携带的bearinfo。
一个HW可以包括硬件加速模块中的一个硬件以及硬件驱动模块中这个硬件对应的驱动函数。硬件为深度学习中用于算子运算的专用芯片,算子可以为激活算子、归一化算子、特征提取算子、防过拟合算子等。HW之间的缓存器一般为中间数据临时存储交互区,可以称为中间缓存器。例如,图3中的HL0中的Q0的数据输出地址为Q1的数据输入地址,Q0的输出缓存器为中间临时数据存储交互区。两个HW之间的任务可以为1对多,也可以多对1。由于一条HL可能支持多种类型的加速任务,中间缓存器的个数以及大小是变化的。队列的输出缓存器是半静态配置的,同一类型的HL中的多个队列的输出缓存器可以复用,如尺寸变化(resize)的HL可以在resize后定义3*128*128的输出缓存器,以满足绝大部分卷积神经网络(convolutional neural networks,CNN)的处理。一条HL可以支持不同类型的任务,队列的输出缓存器的个数要根据多个任务中需求最大的任务来定义,对于HW之间的输出缓存器个数,输出缓存器个数不能太大,只需要保证HW之间能够正常工作即可,但HW与DSP之间的输出缓存器之间的个数要多一些,可以保证DSP处理更大的延迟。在不同HL的最后一个HW复用的情况下,DSP需要确定这个HW触发的DSP中断是那条HL触发的。在DSP中断延迟的情况下,还需要确定每条HL完成了多少个任务。
举例说明,假设有HL0:DSP→HW-A→HW-C→DSP和HL1:DSP→HW-B→HW-C→DSP,DSP接收到来自HW-C上报的中断之后,由于中断有可能是HL0的,也有可能是HL1的,因此,需要区别是HL0的还是HL1的。此处中断的目的是为了通知DSP HL执行完了,不同HL完成的时间是随机,因此,DSP处理中断时可能对应多个HL的中断。可以通过读取中断携带的HW的队列中任务的标识来识别不同HW的完成状态。假设描述符中任务的标识定义为hlOTaskCnt,表示当前HL的第几个输出任务,HW-C可以更新在不同队列上(即不同HW)完成的任务的标识,假设HL0在T1时刻配置了8个任务,配置前HL0的最新hlOTaskCnt为10,HL1在T2时刻配置了5个任务,配置前HL1的最新hlOTaskCnt为20。DSP在T3时刻收到来自HW-C的中断,读取HW-C寄存器中存储的HL0的hlOTaskCnt为15,那么表示HL0的最新hlOTaskCnt为15,表明HL0已经执行了5个任务,还有3个任务未执行。读取HW-C寄存器中存储的HL1的hlOTaskCnt为25,那么表示HL1的最新hlOTaskCnt为25,表明HL1已经全部执行完5个任务,中断为HL1产生的。
请参阅图5,图5是本发明实施例提供的一种HL工作原理的示意图。如图5所示,HL0中的Q0和Q1分别包括32个A类型的任务和40个B类型的任务,在Q0和Q1包括的任务执行之前hlOTaskCnt为10,由于每输入4个A类型的任务HW输出一个任务,32个A类型的任务对应8个输出任务,因此,在Q0包括的32个A类型的任务执行完之后,hlOTaskCnt为18。由于每输入8个B类型的任务HW输出一个任务,40个B类型的任务对应5个输出任务,因此,在Q1包括的40个B类型的任务执行完之后,hlOTaskCnt为23。
请参阅图6,图6是本发明实施例提供的一种加速层的示意图。如图6所示,硬件加速模块与硬件驱动模块之间存在连接接口,硬件加速模块可以通过该接口从硬件驱动模块获取硬件的驱动函数。硬件加速模块上还存在一个接口,用于与DSP进行交互。
请参阅图7,图7是本发明实施例提供的一种两个DSP的硬件资源分配的示意图。如图7所示,DSP1和DSP2控制的硬件资源的完全对等的,DSP1和DSP2均可以控制驱动函数1-驱动函数4,4个硬件,即硬件1-硬件4,平均分配给DSP1和DSP2,可以保证DSP1和DSP2的一致性。
为了提高调度效率,DSP可以根据支持的能力以及任务类型,从共享资源池取多个任务类型相同的业务请求并行调度。请参阅图8,图8是本发明实施例提供的一种DSP1和DSP2批(batch)调度业务请求的示意图。如图8所示,共享任务池包括任务类型为X和任务类型为Y的业务请求,DSP1可以从共享任务池取出3个任务类型为X的业务请求进行处理,DSP2可以从共享任务池取出2个任务类型为Y的业务请求进行处理。
请参阅图9,图9是本发明实施例提供的一种通用的业务算法模型的示意图。如图9所示,1、算法模型X接收来自AP系统的业务请求;2、算法模型X中的算法业务如果有部分需要硬件加速,则向加速层传递消息;3、加速层处理完毕之后上报中断,向算法模型X返回结果;4、算法模型X中如果还需要其它算法模型Y的配合才能完成,则将消息路由到算法模型Y;5、算法模型Y处理算法模型X发出的业务,完成后向算法模型X返回结果,可以借助加速层,也可以不借助加速层;6、算法模型X中的算法业务如果继续需要硬件加速,则向加速层传递消息;7、加速层处理完毕后上报中断,向算法模型X返回结果;8、算法模型X全部完成后,向AP系统上报最终结果。
请参阅图10,图10是本发明实施例提供的一种通用的任务调度模型的示意图。其中,图10与图9相对应。如图10所示,图9中的1包括:任务池接收来自AP系统的业务请求,任务池向算法模型X发送接收的业务请求。图9中的3包括:加速层处理完毕之后上报中断,向任务池发送结果,任务池向算法模型X发送接收的结果。图9中的4包括:算法模型X向任务池发送业务,任务池向算法模型Y发送接收的业务。图9中的5包括:算法模型Y向任务池发送结果,任务池向算法模型X发送接收的结果。图9中的7包括:加速层向任务池发送结果,任务池向算法模型X发送接收的结果。
请参阅图11,图11是本发明实施例提供的一种标记(tick)调度的示意图。如图11所示,DSP从对应的任务池获取到业务请求之后,根据业务请求生成任务,之后判断是否存在空闲的内存和描述符空间,如果存在,则为这个任务配置HL,由于内存资源不够和/或描述符空间的剩余空间不够导致失败的情况下,发起tick调度,将这个任务重新放入任务池,在下一次执行到该任务的情况下,重新进行配置,配置成功之后等待硬件完成。可见,在资源受限的情况下,虽然处理任务所需时间较长,但不会影响任务的处理。
DSP中封装有多个算法模型,这些算法模型的类型不同,每个算法模型对应一个消息回调函数表,可以表示算法的处理逻辑,每个算法模型可以支持多个句柄。例如,每个算法模型可以最多支持8个句柄,不同句柄用0-7之间的值进行区分。DSP根据从任务池中取出的业务请求生成任务之后,可以根据头信息确定使用的算法模型、消息回调函数和句柄。请参阅图12,图12是本发明实施例提供的一种句柄调度的示意图。如图12所示,任务类型的标识为1、消息的标识为0x02、句柄的标识为7,可以根据任务类型的标识1确定使用的算法模型为算法模型1,可以根据任务类型的标识1和消息的标识0x02确定使用的消息回调函数为算法模型1中的Alg_yyy_proc函数,可以根据任务类型的标识1和句柄的标识7确定使用的句柄为算法模型1中的第二个句柄。句柄对应于算法模型的数据结构,定义算法模型处理具体任务时的数据变量,一般由DSP根据任务类型动态申请存储区,之后把该任务以及中间结果存储在句柄中,任务处理完之后可以删除句柄,释放存储空间。由于采用多句柄管理,因此,一个算法模型可以同时处理多个同一任务类型的不同任务,从而可以进一步提高数据处理效率。同一任务类型的不同任务的待处理数据的类型可以相同,也可以不同。待处理数据的类型可以为视频,也可以为图像。
由于算法模型支持批处理,因此,算法模型的每个句柄可以支持多个任务,但受限于HL的配置能力,一般单个句柄可能需要多次HL配置。请参阅图13,图13是本发明实施例提供的一种多任务的HL配置的示意图。如图13所示,算法模型的句柄支持8个人脸的年龄和性别的计算,而HL仅支持最多4个同一类型人脸的计算,因此,句柄需要切分为4个组配置,即8*2/4=4,年龄和性别各占一个任务。考虑到每次配置不一定成功,不同组的配置可能分配到不同的HL上,处理的先后顺序随机,因此句柄需要缓存组的配置信息、收到的组结果以及如何把结果填入正确的位置等信息。
在配置数据处理系统时,可以在DSP中配置算法模型。不同DSP中配置的算法模型可以全部相同,也可以全部不同,还可以部分相同部分不同。DSP中的算法模型是经过训练和评估后的算法模型,可以直接用于数据处理。DSP中配置的算法模型的数量可以为一个,也可以为多个。
在配置数据处理系统时,也可以根据DSP中配置的算法模型配置硬件加速模块中的硬件,以及配置硬件驱动模块中与硬件加速模块中的硬件对应的驱动函数。硬件加速模块中的硬件为研发人员根据需要自主研发的专用芯片,如用于卷积运算的芯片、用于图像格式变换的芯片、用于图像尺寸变换的芯片、用于图像格式和尺寸变换的芯片等。
在配置数据处理系统时,还可以根据DSP中包括的算法模型、硬件加速模块中配置的硬件以及硬件驱动模块中配置的驱动函数,配置HL,为每条HL配置描述符空间,为每条HL中的队列的描述符配置可以分配的最大空间。还可以为不同类型的HL分别配置一对缓存器,即一个输入缓存器和输出缓存器。配置的HL的数量可以为一条,也可以为多条。同一类型的HL可以为一条,也可以为多条。一条HL可以配置给多个任务,一个任务的HL可以从多条HL中选择合适的HL进行配置。
基于图1所示的系统架构,请参阅图14,图14是本发明实施例提供的一种数据处理方法的流程示意图。其中,该数据处理方法适用于数据处理系统中的DSP,DSP包括M个算法模型,M为大于1的整数。如图14所示,该数据处理方法可以包括以下流程。
1401、根据业务请求生成携带有头信息和待处理数据的任务。
在DSP空闲的情况下,DSP可以从对应的任务池获取业务请求,之后可以根据业务请求生成任务。该任务携带有待处理数据和头信息。待处理数据可以为图像,也可以为视频,还可以为图像和视频。头信息可以包括任务类型的标识、句柄的标识和消息的标识。
可选地,根据业务请求生成任务之后,可以根据任务类型的标识为任务配置HL,即从配置的HL中为该任务选取一条HL,具体方式可以参考上面的相关描述。之后为HL配置配置信息,可以向加速层发送该配置信息。该配置信息可以包括HL包括的队列的描述符,描述符用于描述硬件的工作方式,相关描述可以参考上面的相关描述。
1402、根据M个算法模型和任务类型的标识确定算法模型和消息回调函数表。
接收到来自DSP的任务之后,可以根据M个算法模型和任务类型的标识确定算法模型和消息回调函数表。可以先确定任务类型的标识所标识的算法模型,即从M个算法模型中选取任务类型的标识所标识的算法模型。由于一个算法模型对应一个消息回调函数表,因此,确定出任务类型的标识所标识的算法模型之后,可以确定算法模型对应的消息回调函数表。消息回调函数表包括一个或多个消息回调函数,以及这一个或多个消息回调函数对应的消息的标识。
1403、根据确定的算法模型和确定的消息回调函数表对待处理数据进行处理。
根据任务类型的标识确定出算法模型和消息回调函数表之后,可以根据确定的算法模型和确定的消息回调函数表对待处理数据进行处理。
可以先根据确定的算法模型确定处理流程,之后可以根据确定的消息回调函数表确定处理流程中使用的消息的标识,之后可以根据处理流程和处理流程中使用的消息的标识对应的消息回调函数对待处理数据进行处理。
根据处理流程和处理流程中使用的消息的标识对应的消息回调函数对待处理数据进行处理的过程中,在处理流程包括需要硬件处理的流程,即需要硬件进行计算的情况下,可以向加速层发送加速任务。加速任务可以携带有计算类型、计算数据和第一消息回调函数。加速层接收到加速任务之后,可以根据计算类型确定要使用的硬件,获取该硬件的驱动函数,之后通过驱动函数驱动该硬件对计算数据进行处理,处理完之后,可以根据第一消息回调函数返回计算结果。计算数据可以是待处理数据中的全部数据或部分数据,也可以是待处理数据被处理后的中间数据。
加速层可以接收到来自DSP的配置信息。配置信息可以包括为加速任务对应的任务配置的HL的信息,HL的信息携带有任务的头信息。HL的信息可以包括HL包括的队列的描述符,描述符用于描述硬件的工作方式。加速任务还可以携带有头信息。可以将携带的头信息与加速任务携带的头信息相同的配置信息对应的HL确定加速任务对应的HL。之后从HL包括的硬件中选取计算类型对应的硬件时,可以从HL的信息包括的描述符中选取计算类型对应的描述符,将描述符对应的硬件确定为计算类型对应的硬件。通过驱动函数驱动硬件对计算数据进行处理时,可以通过驱动函数驱动硬件根据对应的描述符对计算数据进行处理。
可选地,上述方法还可以包括:根据任务类型的标识和句柄的标识,确定任务的句柄。可以从任务类型的标识对应的算法模型包括的句柄中,选取句柄的标识对应的句柄,在获取的句柄为空的情况下,创建任务的句柄,在获取的句柄不为空的情况下,将获取的句柄确定为任务的句柄。根据确定的算法模型和确定的消息回调函数表对待处理数据进行处理时,可以根据确定的算法模型、确定的消息回调函数表和任务的句柄对待处理数据进行处理。可以先根据确定的算法模型、确定的消息回调函数表和任务的句柄确定任务的控制信息,之后根据控制信息和确定的算法模型对待处理数据进行处理。任务的控制信息可以为任务的状态、输入控制变量、输出控制变量等。
可以根据处理流程、控制信息和使用的消息的标识对应的消息回调函数对待处理数据进行处理。具体的描述可以参考上面的描述。
在待处理数据处理完之后,可以发送处理结果,可以是发送给消息发送模块,也可以是发送给AP系统。处理结果可以是具体的结果,也可以结果的存储地址。将处理结果发送之后,可以删除任务的句柄。
基于图1所示的系统架构,请参阅图15,图15是本发明实施例提供的一种数据处理装置的结构示意图。其中,该数据处理装置设置在DSP上,DSP包括M个算法模型,M为大于1的整数。如图15所示,该数据处理装置可以包括:
生成单元1501,用于根据业务请求生成任务,该任务携带有头信息和待处理数据,头信息包括任务类型的标识,待处理数据为图像和/或视频;
第一确定单元1502,用于根据M个算法模型和任务类型的标识确定算法模型和消息回调函数表,消息回调函数表包括一个或多个消息回调函数;
处理单元1503,用于根据确定的算法模型和确定的消息回调函数表对待处理数据进行处理。
在一个实施例中,头信息还可以包括句柄的标识,该数据处理装置还可以包括:
第二确定单元1504,用于根据任务类型的标识和句柄的标识,确定该任务的句柄;
处理单元1503,具体用于根据确定的算法模型、确定的消息回调函数表和该任务的句柄对待处理数据进行处理。
在一个实施例中,处理单元1503具体用于:
根据确定的算法模型、确定的消息回调函数表和该任务的句柄,确定该任务的控制信息;
根据控制信息和确定的算法模型对待处理数据进行处理。
在一个实施例中,第二确定单元1504具体用于:
从任务类型的标识对应的算法模型包括的句柄中,选取句柄的标识对应的句柄;
在获取的句柄为空的情况下,创建该任务的句柄;
在获取的句柄不为空的情况下,将获取的句柄确定为该任务的句柄。
在一个实施例中,该数据处理装置还可以包括:
发送单元1505,用于在待处理数据处理完后,发送处理结果;
删除单元1506,用于删除该任务的句柄。
在一个实施例中,头信息还可以包括消息的标识,处理单元1503具体用于:
根据确定的算法模型确定处理流程;
根据确定的消息回调函数表确定处理流程中使用的消息的标识;
根据处理流程和使用的消息的标识对应的消息回调函数对待处理数据进行处理。
在一个实施例中,处理单元1503根据处理流程和使用的消息的标识对应的消息回调函数对待处理数据进行处理包括:
在处理流程包括需要硬件处理的流程的情况下,向加速层发送加速任务,加速任务携带有计算类型、计算数据和第一消息回调函数,加速任务用于指示加速层通过计算类型对应的硬件对计算数据进行计算,根据第一消息回调函数返回计算结果,硬件为深度学习中用于算子运算的专用芯片;
接收来自加速层的计算结果。
有关上述生成单元1501、第一确定单元1502、处理单元1503、第二确定单元1504、发送单元1505和删除单元1506更详细的描述可以直接参考上述图14所示的方法实施例中的相关描述直接得到,这里不加赘述。
基于图1所示的系统架构,请参阅图16,图16是本发明实施例提供的另一种数据处理装置的结构示意图。其中,该数据处理装置设置在DSP上,DSP包括M个算法模型,M为大于1的整数。如图16所示,该数据处理装置可以包括处理器1601、存储器1602、接口1603和总线1604。存储器1602可以是独立存在,也可以和处理器1601集成在一起。总线1604在上述组件之间传送信息。
其中:
接口1603,用于获取业务请求;
存储器1602中存储有一组程序代码,处理器1601用于调用存储器1602中存储的程序代码执行以下操作:
根据业务请求生成任务,所述任务携带有头信息和待处理数据,所述头信息包括任务类型的标识,待处理数据为图像和/或视频;
根据M个算法模型和任务类型的标识确定算法模型和消息回调函数表,消息回调函数表包括一个或多个消息回调函数;
根据确定的算法模型和确定的消息回调函数表对待处理数据进行处理。
在一个实施例中,头信息还包括句柄的标识,处理器1601用于调用存储器1602中存储的程序代码执行以下操作:
根据任务类型的标识和句柄的标识,确定任务的句柄;
处理器1601根据确定的算法模型和确定的消息回调函数表对待处理数据进行处理包括:
根据确定的算法模型、确定的消息回调函数表和任务的句柄对待处理数据进行处理。
在一个实施例中,处理器1601根据确定的算法模型、确定的消息回调函数表和任务的句柄对待处理数据进行处理包括:
根据确定的算法模型、确定的消息回调函数表和任务的句柄,确定任务的控制信息;
根据控制信息和确定的算法模型对待处理数据进行处理。
在一个实施例中,处理器1601根据任务类型的标识和句柄的标识,确定任务的句柄包括:
从任务类型的标识对应的算法模型包括的句柄中,选取句柄的标识对应的句柄;
在获取的句柄为空的情况下,创建任务的句柄;
在获取的句柄不为空的情况下,将获取的句柄确定为任务的句柄。
在一个实施例中,处理器1601还用于调用存储器1602中存储的程序代码执行以下操作:
在待处理数据处理完后,发送处理结果;
删除任务的句柄。
在一个实施例中,头信息还包括消息的标识,处理器1601根据确定的算法模型和确定的消息回调函数表对待处理数据进行处理包括:
根据确定的算法模型确定处理流程;
根据确定的消息回调函数表确定处理流程中使用的消息的标识;
根据处理流程和使用的消息的标识对应的消息回调函数对待处理数据进行处理。
在一个实施例中,处理器1601根据处理流程和使用的消息的标识对应的消息回调函数对待处理数据进行处理包括:
在处理流程包括需要硬件处理的流程的情况下,向加速层发送加速任务,加速任务携带有计算类型、计算数据和第一消息回调函数,加速任务用于指示加速层通过计算类型对应的硬件对计算数据进行计算,根据第一消息回调函数返回计算结果,硬件为深度学习中用于算子运算的专用芯片;
接收来自加速层的计算结果。
上述数据处理装置还可以用于执行前述方法实施例中执行的各种方法,不再赘述。
在一个实施例中提供了一种计算机可读存储介质,该计算机可读存储介质用于存储应用程序,应用程序用于在运行时执行图14的数据处理方法。
在一个实施例中提供了一种应用程序,该应用程序用于在运行时执行图14的数据处理方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种数据处理方法,其特征在于,所述方法应用于数字信号处理器DSP,所述DSP包括M个算法模型,M为大于1的整数,包括:
根据业务请求生成任务,所述任务携带有头信息和待处理数据,所述头信息包括任务类型的标识,所述待处理数据为图像和/或视频;
根据所述M个算法模型和所述任务类型的标识确定算法模型和消息回调函数表,所述消息回调函数表包括一个或多个消息回调函数;
根据确定的算法模型和确定的消息回调函数表对所述待处理数据进行处理;
所述头信息还包括句柄的标识,所述方法还包括:
根据所述任务类型的标识和所述句柄的标识,确定所述任务的句柄;
所述根据确定的算法模型和确定的消息回调函数表对所述待处理数据进行处理包括:根据确定的算法模型、确定的消息回调函数表和所述任务的句柄,确定所述任务的控制信息,根据所述控制信息和所述确定的算法模型对所述待处理数据进行处理;
所述头信息还包括消息的标识,所述根据确定的算法模型和消息回调函数表对所述待处理数据进行处理还包括:根据确定的算法模型确定处理流程,根据确定的消息回调函数表确定所述处理流程中使用的消息的标识,根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述任务类型的标识和所述句柄的标识,确定所述任务的句柄包括:
从所述任务类型的标识对应的算法模型包括的句柄中,选取所述句柄的标识对应的句柄;
在获取的句柄为空的情况下,创建所述任务的句柄;
在获取的句柄不为空的情况下,将获取的句柄确定为所述任务的句柄。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述待处理数据处理完后,发送处理结果;
删除所述任务的句柄。
4.根据权利要求1所述的方法,其特征在于,所述根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理包括:
在所述处理流程包括需要硬件处理的流程的情况下,向加速层发送加速任务,所述加速任务携带有计算类型、计算数据和第一消息回调函数,所述加速任务用于指示所述加速层通过所述计算类型对应的硬件对所述计算数据进行计算,根据所述第一消息回调函数返回计算结果,所述硬件为深度学习中用于算子运算的专用芯片;
接收来自所述加速层的计算结果。
5.一种数据处理装置,其特征在于,所述装置设置在数字信号处理器DSP上,所述DSP包括M个算法模型,M为大于1的整数,包括:
生成单元,用于根据业务请求生成任务,所述任务携带有头信息和待处理数据,所述头信息包括任务类型的标识,所述待处理数据为图像和/或视频;
第一确定单元,用于根据所述M个算法模型和所述任务类型的标识确定算法模型和消息回调函数表,所述消息回调函数表包括一个或多个消息回调函数;
处理单元,用于根据确定的算法模型和确定的消息回调函数表对所述待处理数据进行处理;
所述头信息还包括句柄的标识,所述装置还包括:
第二确定单元,用于根据所述任务类型的标识和所述句柄的标识,确定所述任务的句柄;
所述处理单元具体用于:根据确定的算法模型、确定的消息回调函数表和所述任务的句柄,确定所述任务的控制信息,根据所述控制信息和所述确定的算法模型对所述待处理数据进行处理;
所述头信息还包括消息的标识,所述处理单元还具体用于:根据确定的算法模型确定处理流程,根据确定的消息回调函数表确定所述处理流程中使用的消息的标识,根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理。
6.一种数据处理装置,其特征在于,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令执行如权利要求1-4任一项所述的数据处理方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-4任一项所述的数据处理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911421756 | 2019-12-31 | ||
CN2019114217562 | 2019-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111310638A CN111310638A (zh) | 2020-06-19 |
CN111310638B true CN111310638B (zh) | 2023-05-16 |
Family
ID=71145449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010086593.3A Active CN111310638B (zh) | 2019-12-31 | 2020-02-11 | 一种数据处理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111310638B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112163468A (zh) * | 2020-09-11 | 2021-01-01 | 浙江大华技术股份有限公司 | 基于多线程的图像处理方法及装置 |
CN115086778B (zh) * | 2021-03-15 | 2024-05-24 | 中移(上海)信息通信科技有限公司 | 视频流的ai处理方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800695A (zh) * | 2009-12-30 | 2010-08-11 | 四川长虹电器股份有限公司 | 一种软件实现同步通信及异步通信的方法 |
CN102662778A (zh) * | 2012-04-28 | 2012-09-12 | 杭州格畅科技有限公司 | 在线应用平台上应用间通信的回调应答方法、应用及在线应用平台 |
CN109302477A (zh) * | 2018-09-30 | 2019-02-01 | 武汉斗鱼网络科技有限公司 | 一种任务的调度方法及相关装置 |
-
2020
- 2020-02-11 CN CN202010086593.3A patent/CN111310638B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111310638A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111274019B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN106371894B (zh) | 一种配置方法、装置和数据处理服务器 | |
CN108647104B (zh) | 请求处理方法、服务器及计算机可读存储介质 | |
CN111338769B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN108536538A (zh) | 处理器核心调度方法、装置、终端及存储介质 | |
US8145820B2 (en) | Multiprocessor system and computer program product | |
CN109634718B (zh) | 云平台创建镜像的方法及系统 | |
CN111310638B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
EP2565786A1 (en) | Information processing device and task switching method | |
JP7100154B6 (ja) | プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体 | |
JP5030647B2 (ja) | 複数処理ノードを含むコンピュータ・システムでプログラムをロードする方法、該プログラムを含むコンピュータ可読媒体、及び、並列コンピュータ・システム | |
CN108829530B (zh) | 一种图像处理方法及装置 | |
EP2801913A1 (en) | Memory control apparatus and method | |
CN109992539B (zh) | 双主机协同工作装置 | |
CN111143078B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN110955461A (zh) | 计算任务的处理方法、装置、系统、服务器和存储介质 | |
CN114911538A (zh) | 一种运行系统的启动方法及计算设备 | |
CN111160546B (zh) | 一种数据处理系统 | |
JP6368452B2 (ja) | 非同期のデバイスによって実行されるタスクのスケジューリングの向上 | |
CN114911525A (zh) | 二进制指令翻译执行方法及装置 | |
CN111722915A (zh) | 任务处理方法、装置和系统 | |
CN117724852B (zh) | 一种云电脑计算资源分配方法及装置 | |
EP4191413A1 (en) | Message management method, device, and serverless system | |
CN114416381B (zh) | 处理资源超分方法、装置、设备及存储介质 | |
US20230325512A1 (en) | Graphics processing unit invoking method, central processing unit and apparatus |
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 |