CN111274019B - 一种数据处理方法、装置及计算机可读存储介质 - Google Patents
一种数据处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111274019B CN111274019B CN202010086589.7A CN202010086589A CN111274019B CN 111274019 B CN111274019 B CN 111274019B CN 202010086589 A CN202010086589 A CN 202010086589A CN 111274019 B CN111274019 B CN 111274019B
- Authority
- CN
- China
- Prior art keywords
- processing
- data
- algorithm model
- task
- algorithm
- 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
- 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- 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 Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Advance Control (AREA)
Abstract
本发明实施例提供一种数据处理方法、装置及计算机可读存储介质,该方法应用于数字信号处理器DSP,DSP包括M个算法模型,包括:根据业务请求生成任务,该任务携带有业务类型的标识和待处理数据,待处理数据为图像和/或视频;根据M个算法模型和业务类型的标识,确定多个算法模型以及多个算法模型之间的执行顺序;根据第一算法模型对待处理数据进行处理,得到第一处理结果,第一算法模型为执行顺序中的第一个算法模型;根据第i+1算法模型对第i处理结果进行处理,得到第i+1处理结果,第i处理结果为执行顺序中与第i+1算法模型相邻的前一个算法模型的处理结果,i为大于或等于1的整数。本发明实施例,可以提高数据处理效率。
Description
技术领域
本发明涉及机器学习领域,具体涉及一种数据处理方法、装置及计算机可读存储介质。
背景技术
随着计算机技术的不断发展,需要处理的数据越来越多。因此,为了提高数据处理效率,业界引入了深度学习(deep learning)。深度学习用于学习样本数据的内在规律和表示层次,以便可以使机器能够像人一样具有分析学习能力,能够处理数据。在深度学习中,是通过算法模型来学习的。目前,在(application process,AP)系统中的一个业务需要多个算法模型完成的情况下,AP系统先将这个任务发送给DSP中的第一算法模型,第一算法模型处理完之后,将结果上报给AP系统,AP系统根据该结果将这个任务发送给DSP中的下一个算法模型处理,直到这个任务的所有内容都处理完。上述方法中,由于需要AP系统进行多次调度,以致降低了数据处理效率。
发明内容
本发明实施例提供一种数据处理方法、装置及计算机可读存储介质,用于提高数据处理效率。
第一方面提供一种数据处理方法,所述方法应用于数字信号处理器DSP,所述DSP包括M个算法模型,M为大于1的整数,包括:
根据业务请求生成任务,所述任务携带有业务类型的标识和待处理数据,所述待处理数据为图像和/或视频;
根据所述M个算法模型和所述业务类型的标识,确定多个算法模型以及所述多个算法模型之间的执行顺序;
根据第一算法模型对所述待处理数据进行处理,得到第一处理结果,所述第一算法模型为所述执行顺序中的第一个算法模型;
根据第i+1算法模型对第i处理结果进行处理,得到第i+1处理结果,所述第i处理结果为所述执行顺序中与所述第i+1算法模型相邻的前一个算法模型的处理结果,所述i为大于或等于1的整数。
在任务需要多个串接的算法模型依次进行处理的情况下,由于携带了多个算法模型之间的执行顺序,可以根据执行顺序确定算法模型之间的处理流程,在执行顺序中前一个算法模型处理完之后,后一个算法模型可以接着处理,不需要将结果发送给AP系统,由AP系统再次进行调度,因此,可以避免调度所需时间,从而可以提高数据处理效率。
作为一种可能的实现方式,所述任务还携带有句柄的标识,所述根据第一算法模型对所述待处理数据进行处理,得到第一处理结果包括:
根据第一算法模型和所述句柄的标识,确定所述任务的句柄;
根据所述第一算法模型和所述句柄对所述待处理数据进行处理,得到第一处理结果。
可以根据任务的句柄快速地对数据进行处理,因此,可以进一步提高数据处理效率。此外,由于采用多句柄管理,因此,一个算法模型可以同时处理多个同一业务类型的不同任务,从而可以进一步提高数据处理效率。
作为一种可能的实现方式,所述根据所述第一算法模型和所述句柄对所述待处理数据进行处理,得到第一处理结果包括:
根据所述第一算法模型和所述句柄,确定所述任务的控制信息;
根据所述控制信息和所述第一算法模型对所述待处理数据进行处理,得到第一处理结果。
可以先得到控制信息,之后根据控制信息和算法模型对数据进行处理,因此,可以进一步提高数据处理效率。
作为一种可能的实现方式,所述根据所述控制信息和所述第一算法模型对所述待处理数据进行处理,得到第一处理结果之后,所述方法还包括:
删除所述句柄。
在第一算法模型处理完之后,删除对应的句柄,可以节约存储空间,同时可以避免对后面算法模型处理的影响。
作为一种可能的实现方式,所述根据第一算法模型对所述待处理数据进行处理,得到第一处理结果包括:
确定第一算法模型对应的消息回调函数表,所述消息回调函数表包括一个或多个消息回调函数;
根据所述第一算法模型和所述消息回调函数表对所述待处理数据进行处理,得到第一处理结果。
由于算法模型根据消息回调函数设计,算法模型的交叉复用可以通过回调函数来实现,而不是通过状态机来实现,由于一个回调函数对应一个消息,针对不同应用场景只需要将不同的消息进行组合即可,因此,可以通过有限的消息组合达到对不同场景的覆盖。此外,在后续对算法模型进行扩展时,只需要增加消息即可,算法模型的可扩展性较强。因此,可以提高算法模型的适用性。
作为一种可能的实现方式,所述任务还携带有消息的标识,所述根据所述第一算法模型和所述消息回调函数表对所述待处理数据进行处理,得到第一处理结果包括:
根据所述第一算法模型确定处理流程;
根据所述消息回调函数表确定所述处理流程中使用的所述消息的标识;
根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理,得到第一处理结果。
可以通过消息的标识调用对应的消息回调函数进行返回,可以减少处理步骤,因此,可以提高数据处理效率。
作为一种可能的实现方式,所述根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理,得到第一处理结果包括:
在所述处理流程包括需要硬件处理的流程的情况下,向加速层发送加速任务,所述加速任务携带有计算类型、计算数据和第一消息回调函数,所述加速任务用于指示所述加速层通过所述计算类型对应的硬件对所述计算数据进行计算,根据所述第一消息回调函数返回计算结果,所述硬件为深度学习中用于算子运算的专用芯片;
接收来自所述加速层的计算结果。
由于加速任务可以在硬件上进行,而硬件为研发人员根据需要自主研发的深度学习中用于算子运算的专用芯片,只用于处理某一个或多个算子的运算,可以提高这些算子的计算效率,因此,可以进一步提高数据处理效率。
第二方面提供一种数据处理装置,所述装置设置在数字信号处理器DSP上,所述DSP包括M个算法模型,M为大于1的整数,包括:
生成单元,用于根据业务请求生成任务,所述任务携带有业务类型的标识和待处理数据,所述待处理数据为图像和/或视频;
确定单元,用于根据所述M个算法模型和所述业务类型的标识,确定多个算法模型以及所述多个算法模型之间的执行顺序;
处理单元,用于根据第一算法模型对所述待处理数据进行处理,得到第一处理结果,所述第一算法模型为所述执行顺序中的第一个算法模型;
所述处理单元,还用于根据第i+1算法模型对第i处理结果进行处理,得到第i+1处理结果,所述第i处理结果为所述执行顺序中与所述第i+1算法模型相邻的前一个算法模型的处理结果,所述i为大于或等于1的整数。
作为一种可能的实现方式,所述任务还携带有句柄的标识,所述处理单元根据第一算法模型对所述待处理数据进行处理,得到第一处理结果包括:
根据第一算法模型和所述句柄的标识,确定所述任务的句柄;
根据所述第一算法模型和所述句柄对所述待处理数据进行处理,得到第一处理结果。
作为一种可能的实现方式,所述处理单元根据所述第一算法模型和所述句柄对所述待处理数据进行处理,得到第一处理结果包括:
根据所述第一算法模型和所述句柄,确定所述任务的控制信息;
根据所述控制信息和所述第一算法模型对所述待处理数据进行处理,得到第一处理结果。
作为一种可能的实现方式,所述装置还包括:
删除单元,用于所述处理单元根据所述控制信息和所述第一算法模型对所述待处理数据进行处理,得到第一处理结果之后,删除所述该句柄。
作为一种可能的实现方式,所述处理单元根据第一算法模型对所述待处理数据进行处理,得到第一处理结果包括:
确定第一算法模型对应的消息回调函数表,所述消息回调函数表包括一个或多个消息回调函数;
根据所述第一算法模型和所述消息回调函数表对所述待处理数据进行处理,得到第一处理结果。
作为一种可能的实现方式,所述任务还携带有消息的标识,所述处理单元根据所述第一算法模型和所述消息回调函数表对所述待处理数据进行处理,得到第一处理结果包括:
根据所述第一算法模型确定处理流程;
根据所述消息回调函数表确定所述处理流程中使用的所述消息的标识;
根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理,得到第一处理结果。
作为一种可能的实现方式,所述处理单元根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理,得到第一处理结果包括:
在所述处理流程包括需要硬件处理的流程的情况下,向加速层发送加速任务,所述加速任务携带有计算类型、计算数据和第一消息回调函数,所述加速任务用于指示所述加速层通过所述计算类型对应的硬件对所述计算数据进行计算,根据所述第一消息回调函数返回计算结果,所述硬件为深度学习中用于算子运算的专用芯片;
接收来自所述加速层的计算结果。
第三方面提供一种数据处理装置,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令执行第一方面或第一方面的任一实施例提供的数据处理方法。
第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行第一方面或第一方面的任一实施例提供的数据处理方法。
第五方面提供一种应用程序,该应用程序用于在运行时执行第一方面或第一方面的任一实施例提供的数据处理方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种系统架构的示意图;
图2是本发明实施例提供的一种数据处理系统的结构示意图;
图3是本发明实施例提供的一种HL模型的示意图;
图4是本发明实施例提供的一种HL配置的示意图;
图5是本发明实施例提供的一种HL工作原理的示意图;
图6是本发明实施例提供的一种加速层的示意图;
图7是本发明实施例提供的一种两个DSP的硬件资源分配的示意图;
图8是本发明实施例提供的一种DSP1和DSP2批调度业务请求的示意图;
图9是本发明实施例提供的一种通用的业务算法模型的示意图;
图10是本发明实施例提供的一种通用的任务调度模型的示意图;
图11是本发明实施例提供的一种标记调度的示意图;
图12是本发明实施例提供的一种句柄调度的示意图;
图13是本发明实施例提供的一种多任务的HL配置的示意图;
图14是本发明实施例提供的一种算法模型执行的示意图;
图15是本发明实施例提供的一种数据处理方法的流程示意图;
图16是本发明实施例提供的一种视频流人脸抓拍业务的算法模型执行的示意图;
图17是本发明实施例提供的一种人脸检测业务的算法模型执行的示意图;
图18是本发明实施例提供的一种数据处理装置的结构示意图;
图19是本发明实施例提供的另一种数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据处理方法、装置及计算机可读存储介质,用于提高数据处理效率。以下分别进行详细说明。
为了更好地理解本发明实施例提供的一种数据处理方法、装置及计算机可读存储介质,下面先对本发明实施例使用的系统架构进行描述。请参阅图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进行配置。
请参阅图14,图14是本发明实施例提供的一种算法模型执行的示意图。如图14所示,AP系统中的每个业务类型需要哪些算法模型串接是明确的,算法模型[0]通过根据业务请求生成的任务中的参数,把任务传递给算法模型[1],依次再传递给算法模型[2],这样算法模型[1]和算法模型[2]就能知道结果该如何处理。任务的结果需要封装打包,提供算法模型[0]、算法模型[1]和算法模型[2]的结果,可以屏蔽算法模型之间的关联,这样算法模型[2]就不需要关注算法模型[0]和算法模型[1]的结果如何处理。详细步骤如下:1、算法模型[0]在收到任务时,创建句柄以及任务的结果数据空间;2、算法模型[0]处理完毕后,调用任务结果打包函数,把算法模型[0]的结果写入任务的结果数据空间;3、算法模型[0]触发算法模型[1],携带任务以及任务的结果指针,删除算法模型[0]的句柄;4、算法模型[1]创建句柄处理,处理完毕后,调用任务结果打包函数,把算法模型[1]的结果写入任务的结果数据空间;5、算法模型[1]触发算法模型[2],携带任务以及任务的结果指针,删除算法模型[1]的句柄;6、算法模型[2]创建句柄处理,处理完毕后,调用任务结果打包函数,把算法模型[2]的结果写入任务的结果数据结构;7、算法模型[2]判断任务执行完,把任务的结果发送给AP系统,并释放存储空间,删除算法模型[2]的句柄,最后释放任务的存储空间。
基于图1所示的系统架构,请参阅图15,图15是本发明实施例提供的一种数据处理方法的流程示意图。其中,该数据处理方法适用于数据处理系统中的DSP,DSP包括M个算法模型,M为大于1的整数。如图15所示,该数据处理方法可以包括以下流程。
1501、根据业务请求生成携带有业务类型的标识和待处理数据的任务。
在DSP空闲的情况下,DSP可以从对应的任务池获取业务请求,之后可以根据业务请求生成任务。该任务携带有业务类型的标识和待处理数据。待处理数据可以为图像,也可以为视频,还可以为图像和视频。该任务还可以携带有句柄的标识和消息的标识。
业务类型的标识可以为一个,也可以为多个。在业务类型的标识为一个的情况下,该标识所标识的业务需要的算法模型为多个,且这多个算法模型的执行顺序是固定不变的,因此,不需要额外指示这些算法模型的执行顺序。例如,在业务类型为视频流人脸抓拍的情况下,需要人脸检测模型和人脸跟踪模型,先执行人脸检测模型,再执行人脸跟踪模型。在业务类型的标识为多个的情况下,这多个标识所标识的多个业务之间的执行方式可以有一种,也可以有多种。在这多个标识所标识的多个业务之间的执行方式有多种的情况下,任务还需要携带有用于指示标识所标识的业务之间的执行方式,即业务之间的执行顺序。
可选地,根据业务请求生成任务之后,可以根据业务类型的标识为任务配置HL,即从配置的HL中为该任务选取一条HL,具体方式可以参考上面的相关描述。之后为HL配置信息,该信息可以包括HL包括的队列的描述符,描述符用于描述硬件的工作方式,相关描述可以参考上面的相关描述。
1502、根据M个算法模型和业务类型的标识,确定多个算法模型以及多个算法模型之间的执行顺序。
根据业务请求生成任务之后,可以根据M个算法模型和业务类型的标识,确定多个算法模型以及多个算法模型之间的执行顺序。可以先根据业务类型的标识从M个算法模型中选取多个算法模型,之后确定多个算法模型的执行顺序。在业务类型的标识为一个的情况下,可以先确定业务类型的标识所标识任务所需的多个算法模型,同时可以确定这多个算法模型之间的执行顺序。在业务类型的标识为多个,且这多个标识所标识的多个业务之间的执行方式只有一种的情况下,可以先确定这多个标识所标识的多个任务中每个任务所需的一个或多个算法模型,同时可以确定每个任务所需的一个或多个算法模型之间的执行顺序。之后可以根据指示信息确定多个任务所需的所有算法模型的执行顺序。
1503、根据第一算法模型对待处理数据进行处理,得到第一处理结果。
1504、根据第i+1算法模型对第i处理结果进行处理,得到第i+1处理结果。
根据M个算法模型和业务类型的标识,确定出多个算法模型以及多个算法模型之间的执行顺序之后,可以先根据第一算法模型对待处理数据进行处理得到第一处理结果,之后根据第i+1算法模型对第i处理结果进行处理得到第i+1处理结果。第一算法模型为执行顺序中的第一个算法模型,第i处理结果为执行顺序中与第i+1算法模型相邻的前一个算法模型的处理结果,i为大于或等于1的整数。
根据第一算法模型对待处理数据进行处理得到第一处理结果时,可以先根据第一算法模型和句柄的标识确定任务的句柄,之后根据第一算法模型和该句柄对待处理数据进行处理,得到第一处理结果。根据第一算法模型和句柄的标识确定任务的句柄时,可以先从第一算法模型包括的句柄中,选取句柄的标识对应的句柄,在获取的句柄为空的情况下,创建任务的句柄,在获取的句柄不为空的情况下,将获取的句柄确定为任务的句柄。根据第一算法模型和该句柄对待处理数据进行处理,得到第一处理结果时可以先根据第一算法模型和该句柄确定该任务的控制信息,之后根据控制信息和第一算法模型对待处理数据进行处理,得到第一处理结果。任务的控制信息可以为任务的状态、输入控制变量、输出控制变量等。在根据控制信息和第一算法模型对待处理数据进行处理得到第一处理结果之后,即第一算法模型处理完之后,可以删除任务的句柄。
根据第一算法模型对待处理数据进行处理得到第一处理结果时,可以先确定第一算法模型对应的消息回调函数表,之后可以根据第一算法模型和消息回调函数表对待处理数据进行处理,得到第一处理结果。根据第一算法模型和消息回调函数表对待处理数据进行处理得到第一处理结果,可以先根据第一算法模型确定处理流程,根据消息回调函数表确定处理流程中使用的消息的标识,之后根据处理流程和使用的消息的标识对应的消息回调函数对待处理数据进行处理得到第一处理结果。消息回调函数表包括一个或多个消息回调函数,以及这一个或多个消息回调函数对应的消息的标识。
根据处理流程和使用的消息的标识对应的消息回调函数对待处理数据进行处理得到第一处理结果的过程中,在处理流程包括需要硬件处理的流程,即需要硬件进行计算的情况下,可以向加速层发送加速任务。加速任务可以携带有计算类型、计算数据和第一消息回调函数。加速层接收到加速任务之后,可以根据计算类型确定要使用的硬件,获取该硬件的驱动函数,之后通过驱动函数驱动该硬件对计算数据进行处理,处理完之后,可以根据第一消息回调函数返回计算结果。计算数据可以是待处理数据中的全部数据或部分数据,也可以是待处理数据被处理后的中间数据。
加速层可以接收到来自DSP的配置信息。配置信息可以包括为加速任务对应的任务配置的HL的信息,HL的信息携带有任务的头信息。HL的信息可以包括HL包括的队列的描述符,描述符用于描述硬件的工作方式。加速任务还可以携带有头信息。可以将携带的头信息与加速任务携带的头信息相同的配置信息对应的HL确定加速任务对应的HL。之后从HL包括的硬件中选取计算类型对应的硬件时,可以从HL的信息包括的描述符中选取计算类型对应的描述符,将描述符对应的硬件确定为计算类型对应的硬件。通过驱动函数驱动硬件对计算数据进行处理时,可以通过驱动函数驱动硬件根据对应的描述符对计算数据进行处理。
可以先根据第一算法模型和句柄的标识确定任务的句柄,确定第一算法模型对应的消息回调函数表,根据第一算法模型、该句柄、消息的标识以及消息回调函数表,确定任务的控制信息,根据第一算法模型确定处理流程,根据消息回调函数表确定处理流程中使用的消息的标识,根据第一控制信息、处理流程和使用的消息的标识对应的消息回调函数对待处理数据进行处理,得到第一处理结果。
其中,根据第i+1算法模型对第i处理结果进行处理得到第i+1处理结果的过程与根据第一算法模型对待处理数据进行处理的过程相似,详细描述可以参考上面的描述。
在这多个算法模型都处理完之后,可以将处理结果发送给AP系统,可以是将多个算法模型中每个算法模型的处理结果都发送给AP系统,也可以是将多个算法模型中部分算法模型的处理结果发送给AP系统。该任务还可以携带有用于指示返回那些结果的指示信息,以便可以根据该指示信息向AP系统发送相应的处理结果。
举例说明,请参阅图16,图16是本发明实施例提供的一种视频流人脸抓拍业务的算法模型执行的示意图。如图16所示,AP系统向DSP发送视频流人脸抓拍业务,视频流人脸抓拍业务可以包含对人脸跟踪的结果要求,也可以包含对人脸质量(quality)姿态(pose)的结果要求,还可以包含对人脸跟踪和的人脸质量姿态的结果要求。当人脸检测模型处理完后,调用打包函数,将结果发送给人脸跟踪模型,人脸跟踪模型处理完后,可以向AP系统返回结果,同时,也可以调用打包函数,将结果传递给人脸质量姿态模型,待人脸质量姿态模型处理完后,将结果返回给AP系统。如果人脸跟踪采取跳帧跟踪,那么未跟踪的帧的人脸结果也需要上报给AP系统。
举例说明,请参阅图17,图17是本发明实施例提供的一种人脸检测业务的算法模型执行的示意图。如图17所示,AP系统只会通过DSP向人脸检测模型发送人脸检测任务,人脸检测任务里是否包含人脸质量姿态检测任务、人脸性别年龄检测任务、人脸特征提取任务是具体情况而定。如果包含这些业务,则人脸检测模型处理完后,调用打包函数,将结果传递到对应的业务的算法模型。待所有业务的算法模型处理完后,可以将各个算法模型的处理结果打包,用一条消息回传给AP系统。结果由消息发送模块打包。人脸检测需要的属性很多,如果检测不到人脸,那么直接上报,否则根据检测出的人脸继续检测其它属性,如人脸性别、人脸年龄、人脸特征、人脸质量姿态等。同时调用其他算法模型检测相应的属性。具体地,人脸检测模型检测图像中的人脸,之后将人脸检测的结果分别发送给人脸质量姿态模型、人脸性别年龄模型和人脸特征模型,在人脸质量姿态模型、人脸性别年龄模型和人脸特征模型处理完之后,确定是否结束,在结束的情况下,将人脸质量姿态模型、人脸性别年龄模型和人脸特征模型的处理结果发送给AP系统。
基于图1所示的系统架构,请参阅图18,图18是本发明实施例提供的一种数据处理装置的结构示意图。其中,该数据处理装置设置在DSP上,DSP包括M个算法模型,M为大于1的整数。如图18所示,该数据处理装置可以包括:
生成单元1801,用于根据业务请求生成任务,该任务携带有业务类型的标识和待处理数据,待处理数据为图像和/或视频;
确定单元1802,用于根据M个算法模型和业务类型的标识,确定多个算法模型以及多个算法模型之间的执行顺序;
处理单元1803,用于根据第一算法模型对待处理数据进行处理,得到第一处理结果,第一算法模型为执行顺序中的第一个算法模型;
处理单元1803,还用于根据第i+1算法模型对第i处理结果进行处理,得到第i+1处理结果,第i处理结果为执行顺序中与第i+1算法模型相邻的前一个算法模型的处理结果,i为大于或等于1的整数。
在一个实施例中,任务还携带有句柄的标识,处理单元1803根据第一算法模型对待处理数据进行处理,得到第一处理结果包括:
根据第一算法模型和句柄的标识,确定任务的句柄;
根据第一算法模型和该句柄对待处理数据进行处理,得到第一处理结果。
在一个实施例中,处理单元1803根据第一算法模型和该句柄对待处理数据进行处理,得到第一处理结果包括:
根据第一算法模型和该句柄,确定任务的控制信息;
根据控制信息和第一算法模型对待处理数据进行处理,得到第一处理结果。
在一个实施例中,该数据处理装置还可以包括:
删除单元1804,用于处理单元1803根据控制信息和第一算法模型对待处理数据进行处理,得到第一处理结果之后,删除句柄。
在一个实施例中,处理单元1803根据第一算法模型对待处理数据进行处理,得到第一处理结果包括:
确定第一算法模型对应的消息回调函数表,消息回调函数表包括一个或多个消息回调函数;
根据第一算法模型和消息回调函数表对待处理数据进行处理,得到第一处理结果。
在一个实施例中,任务还携带有消息的标识,处理单元1803根据第一算法模型和消息回调函数表对待处理数据进行处理,得到第一处理结果包括:
根据第一算法模型确定处理流程;
根据消息回调函数表确定处理流程中使用的消息的标识;
根据处理流程和使用的消息的标识对应的消息回调函数对待处理数据进行处理,得到第一处理结果。
在一个实施例中,处理单元1803根据处理流程和使用的消息的标识对应的消息回调函数对待处理数据进行处理,得到第一处理结果包括:
在处理流程包括需要硬件处理的流程的情况下,向加速层发送加速任务,加速任务携带有计算类型、计算数据和第一消息回调函数,加速任务用于指示加速层通过计算类型对应的硬件对计算数据进行计算,根据第一消息回调函数返回计算结果,硬件为深度学习中用于算子运算的专用芯片;
接收来自加速层的计算结果。
有关上述生成单元1801、确定单元1802、处理单元1803和删除单元1804更详细的描述可以直接参考上述图15所示的方法实施例中的相关描述直接得到,这里不加赘述。
基于图1所示的系统架构,请参阅图19,图19是本发明实施例提供的另一种数据处理装置的结构示意图。其中,该数据处理装置设置在DSP上,DSP包括M个算法模型,M为大于1的整数。如图19所示,该数据处理装置可以包括处理器1901、存储器1902、接口1903和总线1904。存储器1902可以是独立存在,也可以和处理器1901集成在一起。总线1904在上述组件之间传送信息。
其中:
接口1903,用于获取业务请求;
存储器1902中存储有一组程序代码,处理器1901用于调用存储器1902中存储的程序代码执行以下操作:
根据业务请求生成任务,任务携带有业务类型的标识和待处理数据,待处理数据为图像和/或视频;
根据M个算法模型和业务类型的标识,确定多个算法模型以及多个算法模型之间的执行顺序;
根据第一算法模型对待处理数据进行处理,得到第一处理结果,第一算法模型为执行顺序中的第一个算法模型;
根据第i+1算法模型对第i处理结果进行处理,得到第i+1处理结果,第i处理结果为执行顺序中与第i+1算法模型相邻的前一个算法模型的处理结果,i为大于或等于1的整数。
在一个实施例中,任务还携带有句柄的标识,处理器1901根据第一算法模型对待处理数据进行处理,得到第一处理结果包括:
根据第一算法模型和句柄的标识,确定任务的句柄;
根据第一算法模型和句柄对待处理数据进行处理,得到第一处理结果。
在一个实施例中,处理器1901根据第一算法模型和句柄对待处理数据进行处理,得到第一处理结果包括:
根据第一算法模型和句柄,确定任务的控制信息;
根据控制信息和第一算法模型对待处理数据进行处理,得到第一处理结果。
在一个实施例中,处理器1901还用于调用存储器1902中存储的程序代码执行以下操作:
根据控制信息和第一算法模型对待处理数据进行处理,得到第一处理结果之后,删除句柄。
在一个实施例中,处理器1901根据第一算法模型对待处理数据进行处理,得到第一处理结果包括:
确定第一算法模型对应的消息回调函数表,消息回调函数表包括一个或多个消息回调函数;
根据第一算法模型和消息回调函数表对待处理数据进行处理,得到第一处理结果。
在一个实施例中,任务还携带有消息的标识,处理器1901根据第一算法模型和消息回调函数表对待处理数据进行处理,得到第一处理结果包括:
根据第一算法模型确定处理流程;
根据消息回调函数表确定处理流程中使用的消息的标识;
根据处理流程和使用的消息的标识对应的消息回调函数对待处理数据进行处理,得到第一处理结果。
在一个实施例中,处理器1901根据处理流程和使用的消息的标识对应的消息回调函数对待处理数据进行处理,得到第一处理结果包括:
在处理流程包括需要硬件处理的流程的情况下,向加速层发送加速任务,加速任务携带有计算类型、计算数据和第一消息回调函数,加速任务用于指示加速层通过计算类型对应的硬件对计算数据进行计算,根据第一消息回调函数返回计算结果,硬件为深度学习中用于算子运算的专用芯片;
接收来自加速层的计算结果。
上述数据处理装置还可以用于执行前述方法实施例中执行的各种方法,不再赘述。
在一个实施例中提供了一种计算机可读存储介质,该计算机可读存储介质用于存储应用程序,应用程序用于在运行时执行图15的数据处理方法。
在一个实施例中提供了一种应用程序,该应用程序用于在运行时执行图15的数据处理方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种数据处理方法,其特征在于,所述方法应用于数字信号处理器DSP,所述DSP包括M个算法模型,M为大于1的整数,包括:
根据业务请求生成任务,所述任务携带有业务类型的标识和待处理数据,所述待处理数据为图像和/或视频;
根据所述M个算法模型和所述业务类型的标识,确定多个算法模型以及所述多个算法模型之间的执行顺序;
根据第一算法模型对所述待处理数据进行处理,得到第一处理结果,包括:确定第一算法模型对应的消息回调函数表,所述消息回调函数表包括一个或多个消息回调函数;根据所述第一算法模型和所述消息回调函数表对所述待处理数据进行处理,得到第一处理结果,所述第一算法模型为所述执行顺序中的第一个算法模型;
根据第i+1算法模型对第i处理结果进行处理,得到第i+1处理结果,所述第i处理结果为所述执行顺序中与所述第i+1算法模型相邻的前一个算法模型的处理结果,所述i为大于或等于1的整数。
2.根据权利要求1所述的方法,其特征在于,所述任务还携带有句柄的标识,所述根据第一算法模型对所述待处理数据进行处理,得到第一处理结果包括:
根据第一算法模型和所述句柄的标识,确定所述任务的句柄;
根据所述第一算法模型和所述句柄对所述待处理数据进行处理,得到第一处理结果。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一算法模型和所述句柄对所述待处理数据进行处理,得到第一处理结果包括:
根据所述第一算法模型和所述句柄,确定所述任务的控制信息;
根据所述控制信息和所述第一算法模型对所述待处理数据进行处理,得到第一处理结果。
4.根据权利要求3所述的方法,其特征在于,所述根据所述控制信息和所述第一算法模型对所述待处理数据进行处理,得到第一处理结果之后,所述方法还包括:
删除所述句柄。
5.根据权利要求1所述的方法,其特征在于,所述任务还携带有消息的标识,所述根据所述第一算法模型和所述消息回调函数表对所述待处理数据进行处理,得到第一处理结果包括:
根据所述第一算法模型确定处理流程;
根据所述消息回调函数表确定所述处理流程中使用的所述消息的标识;
根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理,得到第一处理结果。
6.根据权利要求5所述的方法,其特征在于,所述根据所述处理流程和所述使用的消息的标识对应的消息回调函数对所述待处理数据进行处理,得到第一处理结果包括:
在所述处理流程包括需要硬件处理的流程的情况下,向加速层发送加速任务,所述加速任务携带有计算类型、计算数据和第一消息回调函数,所述加速任务用于指示所述加速层通过所述计算类型对应的硬件对所述计算数据进行计算,根据所述第一消息回调函数返回计算结果,所述硬件为深度学习中用于算子运算的专用芯片;
接收来自所述加速层的计算结果。
7.一种数据处理装置,其特征在于,所述装置设置在数字信号处理器DSP上,所述DSP包括M个算法模型,M为大于1的整数,包括:
生成单元,用于根据业务请求生成任务,所述任务携带有业务类型的标识和待处理数据,所述待处理数据为图像和/或视频;
确定单元,用于根据所述M个算法模型和所述业务类型的标识,确定多个算法模型以及所述多个算法模型之间的执行顺序;
处理单元,用于根据第一算法模型对所述待处理数据进行处理,得到第一处理结果,包括:确定第一算法模型对应的消息回调函数表,所述消息回调函数表包括一个或多个消息回调函数;根据所述第一算法模型和所述消息回调函数表对所述待处理数据进行处理,得到第一处理结果,所述第一算法模型为所述执行顺序中的第一个算法模型;
所述处理单元,还用于根据第i+1算法模型对第i处理结果进行处理,得到第i+1处理结果,所述第i处理结果为所述执行顺序中与所述第i+1算法模型相邻的前一个算法模型的处理结果,所述i为大于或等于1的整数。
8.一种数据处理装置,其特征在于,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令执行如权利要求1-6任一项所述的数据处理方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-6任一项所述的数据处理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911417613 | 2019-12-31 | ||
CN2019114176134 | 2019-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274019A CN111274019A (zh) | 2020-06-12 |
CN111274019B true CN111274019B (zh) | 2023-05-12 |
Family
ID=70999206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010086589.7A Active CN111274019B (zh) | 2019-12-31 | 2020-02-11 | 一种数据处理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274019B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813529B (zh) * | 2020-07-20 | 2023-12-12 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113297306B (zh) * | 2020-09-30 | 2023-02-07 | 阿里云计算有限公司 | 数据处理方法及装置 |
CN112199196B (zh) * | 2020-10-21 | 2022-03-18 | 上海交通大学 | 一种资源配置方法、介质及服务端 |
CN113760090B (zh) * | 2021-06-18 | 2022-09-13 | 荣耀终端有限公司 | 一种基于可信执行环境的业务流程执行方法及电子设备 |
CN113434551B (zh) * | 2021-06-28 | 2022-05-27 | 北京百度网讯科技有限公司 | 数据处理方法、装置、设备和计算机存储介质 |
CN116634208A (zh) * | 2023-07-26 | 2023-08-22 | 合肥英特灵达信息技术有限公司 | 一种业务算法调度方法、系统、装置、终端及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103346974B (zh) * | 2013-06-03 | 2015-04-08 | 华为技术有限公司 | 一种业务流程的控制方法及网络设备 |
CN109886859B (zh) * | 2019-01-30 | 2023-06-13 | 上海赜睿信息科技有限公司 | 数据处理方法、系统、电子设备和计算机可读存储介质 |
CN110113387A (zh) * | 2019-04-17 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 一种基于分布式批量处理系统的处理方法、装置及系统 |
-
2020
- 2020-02-11 CN CN202010086589.7A patent/CN111274019B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111274019A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111274019B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN111338769B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN108536538A (zh) | 处理器核心调度方法、装置、终端及存储介质 | |
CN111400008B (zh) | 计算资源调度方法、装置及电子设备 | |
JP7100154B6 (ja) | プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体 | |
CN111310638B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN109725977B (zh) | 一种基于Android系统的多应用显示方法及终端设备 | |
CN109542642A (zh) | 一种前端任务处理的方法及装置 | |
CN108829530B (zh) | 一种图像处理方法及装置 | |
EP2801913A1 (en) | Memory control apparatus and method | |
CN110955461A (zh) | 计算任务的处理方法、装置、系统、服务器和存储介质 | |
CN111143078B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN111160546B (zh) | 一种数据处理系统 | |
CN111443898A (zh) | 基于优先级队列与有限状态机的流程式控制软件设计方法 | |
CN114546677A (zh) | 一种消息执行处理方法、装置、电子设备和存储介质 | |
CN114416381B (zh) | 处理资源超分方法、装置、设备及存储介质 | |
EP4191413A1 (en) | Message management method, device, and serverless system | |
CN117724852B (zh) | 一种云电脑计算资源分配方法及装置 | |
CN101587584A (zh) | 基于图形绘制引擎的资源设置方法和装置 | |
US20230325512A1 (en) | Graphics processing unit invoking method, central processing unit and apparatus | |
EP4120078A1 (en) | Method for scheduling feature services within a distributed data flow service framework | |
CN109800064B (zh) | 一种处理器和线程处理方法 | |
CN113515391A (zh) | 消息处理的方法、装置、电子设备和计算机可读存储介质 | |
CN116501454A (zh) | 多任务执行方法、装置以及电子设备 | |
CN114610416A (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 |