CN110543148A - 一种任务调度方法及装置 - Google Patents
一种任务调度方法及装置 Download PDFInfo
- Publication number
- CN110543148A CN110543148A CN201810525810.7A CN201810525810A CN110543148A CN 110543148 A CN110543148 A CN 110543148A CN 201810525810 A CN201810525810 A CN 201810525810A CN 110543148 A CN110543148 A CN 110543148A
- Authority
- CN
- China
- Prior art keywords
- task
- delay
- power consumption
- delay sensitive
- requirement
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 25
- 230000035945 sensitivity Effects 0.000 claims description 20
- 238000007667 floating Methods 0.000 claims description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000004364 calculation method Methods 0.000 description 27
- 101150039208 KCNK3 gene Proteins 0.000 description 18
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000005265 energy consumption Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012806 monitoring device Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41865—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32252—Scheduling production, machining, job shop
-
- 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
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Mobile Radio Communication Systems (AREA)
- Power Sources (AREA)
Abstract
本申请实施例公开了一种任务调度方法及装置,涉及人工智能领域,能够综合考虑行驶状态下的时延要求和功耗要求,提升车载装置的工作效率。包括:确定移动设备的运动状态,根据移动设备的运动状态确定需要执行的M个任务,确定M个任务中的N个时延敏感任务。针对每一个时延敏感任务,计算时延敏感任务的功耗需求,将目标功耗余量范围与时延敏感任务的功耗需求相匹配且能够在时延敏感任务的延迟要求时长内执行完时延敏感任务的运算器确定为执行时延敏感任务的目标运算器,并将时延敏感任务分配给时延敏感任务的目标运算器。
Description
技术领域
本申请实施例涉及人工智能领域,尤其涉及一种任务调度方法及装置。
背景技术
自动驾驶系统运用了计算机、现代传感、信息融合、通讯、人工智能及自动控制等技术,实现了环境感知、行为决策,路径规划以及运动控制等功能,集中。目前,自动驾驶系统的处理流程为:车载装置收集车身分布的各个摄像头采集到的图像数据,将这些图像数据传输给车载装置的运算器。经过对这些图像数据的深度学习,识别出车身周边环境(如:行人数量、与行人的距离等)。最后可以根据识别出的环境作出决策,如:控制车速、改变路径等。
自动驾驶场景下,对任务时延的要求苛刻,即需要车载装置的运算器在严格的时长内执行完任务,如:识别出车身周边环境。伴随着苛刻的时延要求,运算器的计算量大幅升高,就会大大增加车载装置的能耗。另外,车载装置通常对能耗敏感,行车过程应尽可能降低计算能耗。但是,如果在行车过程维持较低的计算能耗,则难以满足行车过程严格的时延要求。可见,现有技术无法同时满足车载环境下对能耗与时延的要求。
发明内容
本申请实施例提供一种任务调度方法及装置,能够综合考虑行驶状态下的时延要求和功耗要求,提升车载装置的工作效率。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,公开了一种任务调度方法,包括:车载装置首先确定移动设备的运动状态,根据移动设备的运动状态确定需要执行的M个任务,确定M个任务中的N个时延敏感任务。其中,M为大于等于1的整数,N为小于等于M的整数。进一步,针对N个时延敏感任务中的每一个时延敏感任务,计算时延敏感任务的功耗需求,将目标功耗余量范围与时延敏感任务的功耗需求相匹配且能够在时延敏感任务的延迟要求时长内执行完时延敏感任务的运算器确定为执行时延敏感任务的目标运算器,随后并将时延敏感任务分配给时延敏感任务的目标运算器。需要说明的是,目标功耗余量范围是根据移动设备的运算器的目标功耗范围与该运算器的当前功耗确定的;时延敏感任务的功耗需求是执行时延敏感任务所需的功耗;时延敏感任务的延迟要求时长是执行时延敏感任务所需的时长。
本发明实施例提的任务调度方法中,车载装置可以在车辆行进过程中对需要执行的任务进行合理调度,不仅满足任务的延迟要求时长,并且使得运算器可以工作在目标功耗状态下,综合考虑了行驶状态、时延、功耗的需求,提升车载平台的工作效率。
结合第一方面,在第一方面的第一种可能的实现方式中,车载装置确定M个任务中的N个时延敏感任务具体包括:根据运动状态确定M个任务中每一个任务的时延敏感度;根据M个任务中每一个任务的时延敏感度确定M个任务中每一个任务的优先级等级;优先级等级与时延敏感度成正比例关系;最后,将M个任务中优先级等级较高的N个任务确定为N个时延敏感任务。
本发明实施例中,可以将时延敏感度较高的任务确定为时延敏感任务,进一步车载装置在后续处理中首先考虑为时延敏感任务分配运算器,保证时延敏感任务能够优先被执行。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,计算时延敏感任务的功耗需求,将目标功耗余量范围与时延敏感任务的功耗需求相匹配且能够在时延敏感任务的延迟要求时长内执行完时延敏感任务的运算器确定为执行时延敏感任务的目标运算器具体包括:计算时延敏感任务的功耗需求;针对移动设备每一个运算器,确定运算器执行时延敏感任务的时长以及运算器的目标功耗余量范围;判断时延敏感任务的功耗需求是否落入运算器的目标功耗余量范围内以及运算器执行时延敏感任务的时长是否未超过时延敏感任务的延迟要求时长;若时延敏感任务的功耗需求落入运算器的目标功耗余量范围内且运算器执行时延敏感任务的时长未超过时延敏感任务的延迟要求时长,则确定运算器为时延敏感任务的目标运算器。
本发明实施例中,目标功耗范围指的是运算器的功耗维持在该范围内时,运算器的性能达到最佳状态,如果任务的功耗需求落入运算器目标功耗余量范围,则表示该运算器可以在最佳状态下执行该任务,因此提高了运算器的计算功效,进一步提升车载平台的工作效率。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,方法还包括:若时延敏感任务的功耗需求与移动设备的所有运算器的目标功耗余量范围均不匹配,则将时延敏感任务的输入数据拆分为至少两个子数据块;针对至少一个子数据块中的每一个子数据块,确定计算子数据块所需的功耗,若移动设备的一个运算器的目标功耗余量范围与功耗相匹配,则确定运算器为子数据块对应的目标运算器;将所有子数据块对应的目标运算器确定为时延敏感任务对应的目标运算器。
本发明实施例中,可以将时延敏感任务拆分,由多个运算器来执行,如此可以保证时延敏感任务能够快速被执行,保证满足任务的时延要求,不会影响车载装置的后续决策。
结合第一方面或第一方面的第一至第三种可能的实现方式中的任意一种,在第一方面的第四种可能的实现方式中,将时延敏感任务分配给时延敏感任务的目标运算器具体包括:计算N个时延敏感任务的执行时长,根据时延敏感任务的执行时长确定时延敏感任务的执行时长的延迟要求时长;生成任务列表,任务列表用于记录N个时延敏感任务中的每一个时延敏感任务对应的目标运算器以及每一个目标运算器对应的延迟要求时长,以便移动设备的运算器根据任务列表确定待执行的时延敏感任务并在待执行的时延敏感任务的延迟要求时长内执行完待执行的时延敏感任务。
本发明实施例中,可以通过任务列表的方式将任务分配给相应的运算器,运算器可以根据任务列表执行相应的任务的计算。
结合第一方面的第一种可能的实现方式,在第一方面的第五种可能的实现方式中,本发明实施例提供的方法还包括:将N个时延敏感任务中的每一个时延敏感任务分配给对应的目标运算器后,针对M个任务中除N个时延敏感任务外的每一个任务,计算任务的功耗需求,将目标功耗余量范围与任务的功耗需求相匹配且能够在任务的延迟要求时长内执行完任务的运算器确定为执行任务的目标运算器,并将任务分配给时延敏感任务的目标运算器。其中,任务的功耗需求是执行任务所需的功耗,任务的延迟要求时长是执行任务所需的时长。
本发明实施例中,在为时延敏感任务分配好运算器后,还可以为非时延敏感任务分配运算器,保证非时延敏感任务能够被执行,避免对车载装置的后续决策造成影响。并且,运算器可以在最佳状态下执行非时延敏感任务,提高了运算器的计算功效,进一步提升车载平台的工作效率。
结合第一方面的第二种可能的实现方式,在第一方面的第六种可能的实现方式中,运算器执行时延敏感任务的时长T满足:
其中,Nc和Nm是运算器内部基本计算单元数量,f1为运算器上核心的频率;f2为运算器的内存的频率,Ci是执行完时延敏感任务所需的双精度浮点运算次数,mj是执行完时延敏感任务所需的内存访问频率;内存访问频率是每秒访问内存的次数。
本发明实施例中,可以通过上述公式计算出各个运算器执行某个任务所需的时长,进而可以判断运算器是否满足任务的时延要求。
结合第一方面或第一方面的第一至第六种可能的实现方式中的任意一种,在第一方面的第七种可能的实现方式中,时延敏感任务的功耗需求W满足:W=n*w^,其中,n执行完时延敏感任务的所需的基本操作数,w^为运算器进行一次基本操作的功耗。
本发明实施例中,可以通过上述公式计算出各个运算器执行某个任务所需的功耗,进而可以判断运算器是否满足任务的功耗需求。
第二方面,公开了一种装置,包括:确定单元,用于确定移动设备的运动状态,根据移动设备的运动状态确定需要执行的M个任务,确定M个任务中的N个时延敏感任务;M为大于等于1的整数,N为小于等于M的整数;计算单元,用于针对N个时延敏感任务中的每一个时延敏感任务,计算时延敏感任务的功耗需求;确定单元还用于,将目标功耗余量范围与时延敏感任务的功耗需求相匹配且能够在时延敏感任务的延迟要求时长内执行完时延敏感任务的运算器确定为执行时延敏感任务的目标运算器;分配单元,用于将时延敏感任务分配给时延敏感任务的目标运算器。需要说明的是,目标功耗余量范围是根据移动设备的运算器的目标功耗范围与该运算器的当前功耗确定的;时延敏感任务的功耗需求是执行时延敏感任务所需的功耗;时延敏感任务的延迟要求时长是执行时延敏感任务所需的时长。
本发明实施例提的装置,可以在车辆行进过程中对需要执行的任务进行合理调度,不仅满足任务的延迟要求时长,并且使得运算器可以工作在目标功耗状态下,综合考虑了行驶状态、时延、功耗的需求,提升车载平台的工作效率。
结合第二方面,在第二方面的第一种可能的实现方式中,确定单元具体用于,根据运动状态确定M个任务中每一个任务的时延敏感度;根据M个任务中每一个任务的时延敏感度确定M个任务中每一个任务的优先级等级;优先级等级与时延敏感度成正比例关系;将M个任务中优先级等级较高的N个任务确定为N个时延敏感任务。
结合第二方面或第二方面的第一种可能的实现方式中,在第二方面的第二种可能的实现方式中,计算单元具体用于,计算时延敏感任务的功耗需求;针对移动设备的每一个运算器,确定运算器执行时延敏感任务的时长以及运算器的目标功耗余量范围;确定单元具体用于,判断时延敏感任务的功耗需求是否落入运算器的目标功耗余量范围内以及运算器执行时延敏感任务的时长是否未超过时延敏感任务的延迟要求时长;若时延敏感任务的功耗需求落入运算器的目标功耗余量范围内且运算器执行时延敏感任务的时长未超过时延敏感任务的延迟要求时长,则确定运算器为时延敏感任务的目标运算器。
结合第二方面的第二种可能的实现方式中,在第二方面的第三种可能的实现方式中,确定单元还用于,若时延敏感任务的功耗需求与移动设备的所有运算器的目标功耗余量范围均不匹配,则将时延敏感任务的输入数据拆分为至少两个子数据块;针对至少一个子数据块中的每一个子数据块,确定计算子数据块所需的功耗,若移动设备的一个运算器的目标功耗余量范围与功耗相匹配,则确定运算器为子数据块对应的目标运算器;将所有子数据块对应的目标运算器确定为时延敏感任务对应的目标运算器。
结合第二方面或第二方面的第一至第三种可能的实现方式中的任意一种,在第二方面的第四种可能的实现方式中,分配单元具体用于,计算N个时延敏感任务的执行时长,根据时延敏感任务的执行时长确定时延敏感任务的执行时长的延迟要求时长;
生成任务列表,任务列表用于记录N个时延敏感任务中的每一个时延敏感任务对应的目标运算器以及每一个目标运算器对应的延迟要求时长,以便移动设备的运算器根据任务列表确定待执行的时延敏感任务并在待执行的时延敏感任务的延迟要求时长内执行完待执行的时延敏感任务。
结合第二方面的第一种可能的实现方式中,在第二方面的第五种可能的实现方式中,计算单元还用于,将N个时延敏感任务中的每一个时延敏感任务分配给对应的目标运算器后,针对M个任务中除N个时延敏感任务外的每一个任务,计算任务的功耗需求;分配单元还用于,将目标功耗余量范围与任务的功耗需求相匹配且能够在任务的延迟要求时长内执行完任务的运算器确定为执行任务的目标运算器,并将任务分配给时延敏感任务的目标运算器;其中,任务的功耗需求是执行任务所需的功耗,任务的延迟要求时长是执行任务所需的时长。
结合第二方面的第二种可能的实现方式中,在第二方面的第六种可能的实现方式中,运算器执行时延敏感任务的时长T满足:
其中,Nc和Nm是运算器内部基本计算单元数量,f1为运算器上核心的频率;f2为运算器的内存的频率,Ci是执行完时延敏感任务所需的双精度浮点运算次数,mj是执行完时延敏感任务所需的内存访问频率;内存访问频率是每秒访问内存的次数。
结合第二方面或第二方面的第一至第六种可能的实现方式中的任意一种,在第二方面的第七种可能的实现方式中,时延敏感任务的功耗需求W满足:W=n*w^,其中,n执行完时延敏感任务的所需的基本操作数,w^为运算器进行一次基本操作的功耗。
附图说明
图1为本申请实施例提供的车载系统的架构图;
图2为本发明实施例提供车载系统的另一架构图;
图3为本发明实施例提供的预处理示意图;
图4为本发明实施例提供的任务调度方法的流程示意图;
图5为本发明实施例提供的任务输入数据的示意图;
图6为本发明实施例提供的高低速示意图;
图7为本发明实施例提供的任务分配方法的流程示意图;
图8为本发明实施例提供的任务状态示意图;
图9为本发明实施例提供的另一任务状态示意图;
图10为本发明实施例提供的装置的结构框图;
图11为本发明实施例提供的装置的另一结构框图;
图12为本发明实施例提供的装置的另一结构框图。
具体实施方式
目前,车载系统的架构如图1所示。参考图1,车身设置有监测装置,车辆内部安装有车载装置。监测装置可以是传感器,如:摄像头、激光传感器等。在自动驾驶场景下,监测装置实时采集车身周围的环境信息,根据采集到的信息(如:摄像头拍摄到的图像)进行计算,根据计算的结果识别车身周围物体,为后续的决策提供输入。如:根据计算结果控制车辆行驶速度、车辆行驶路线等。
自动驾驶场景下对时延的要求极高,这是由于车身周围环境复杂,需要车载装置在车辆高速行驶过程中快速进行大量的计算,以便能及时识别车身周围的物体。大量的计算会导致车载装置产生极大的能耗。但是,车载装置通常对能耗敏感,行车过程应尽可能降低能耗。可见,现有技术并不能均衡车载环境下车载装置对能耗与时延的要求。
本发明实施例提供一种任务调度方法,移动设备的车载装置首先确定移动设备的运动状态,并根据移动设备的运动状态确定需要执行的M个任务,随后还可以确定这M个任务中的N个时延敏感任务。进一步,针对上述N个时延敏感任务中的每一个时延敏感任务执行以下步骤:车载装置计算时延敏感任务的功耗需求,将目标功耗余量范围与该时延敏感任务的功耗需求相匹配且能够在该时延敏感任务的延迟要求时长内执行完该时延敏感任务的运算器确定执行该时延敏感任务的目标运算器。进一步,将该时延敏感任务分配对应的目标运算器。可见,本发明实施例中,车载装置可以在车辆行进过程中对需要执行的任务进行合理调度,不仅满足任务的延迟要求时长,并且使得运算器可以工作在目标功耗状态下,综合考虑了行驶状态、时延、功耗的需求,提升车载平台的工作效率。
本发明实施例还提供了一种车载系统,如图2所示,所述车载系统包括:车载装置10和至少一个检测装置20。其中,车载装置10包括包括输入/输出(Input/Output,IO)逻辑101、调度模块102以及至少一个运算器103。具体地,调度模块102可以是中央处理器(Central Process Unit,CPU),运算器103可以是ACC(Accumulator)或图形处理器(Graphics Processing Unit,GPU),也可以是神经网络芯片。调度模块102可以为运算器103分配一个或多个待执行的任务。检测装置20可以是摄像头、激光传感器、毫米波雷达等传感装置。
需要说明的是,以移动设备为车辆作为示例,移动设备上安装的摄像头包括以下几种:
(1)长距摄像头:位于车身前方,用于识别较远的目标,如:红绿灯;
(2)中距摄像头:位于车身前方,主要用于识别车道线、人、车、非机动车、障碍物等,还可以用于测距;
(3)近距摄像头:位于车身周围,主要识别人、车、非机动车、障碍物、可行驶区域等;
除此之外,移动设备上还可以安装其他的摄像头,如:位于车身后方的摄像头,可用于停车、泊车;安装于车辆内部驾驶位附近的摄像头,可用于监测疲劳驾驶等。
在本发明实施例中,检测装置20采集车身周围环境信息,如:车身分布的摄像头在不同角度、广度、探测距离、帧率、分辨率下拍摄图像。检测装置20将采集到的信息传递给IO逻辑101,IO逻辑101对接收到的信息进行统一管理和预处理。IO逻辑101对接收到的信息(如:图像)的预处理可以是将摄像头拍摄到的图像进行分类。如图3所示,每个摄像头都拍摄了m帧图像,可以按照图像的帧数将所有摄像头拍摄的图像依次分类。示例的,将所有摄像头拍摄的图像中的第一帧(frame0)图像分为一组,将所有图像中的第二帧(frame1)图像分为一组,以此类推,可以将摄像头拍摄的所有图像进行分类。
随后,IO逻辑101将预处理后的图像传递给调度模块102,调度模块102根据IO逻辑101输入的信息生成计算任务,并将计算任务送入运算器103进行处理处理,运算器103运行深度神经网络(Deep Neural Network,DNN)算法,并将计算结果传回调度模块102。调度模块102可以根据计算结果进行后续决策。
本发明实施例提供一种任务调度方法,可以为调度模块102的任务调度提供支持。如图4所示,所述方法包括以下步骤:
401、调度模块102确定移动设备当前的运动状态,根据所述移动设备的运动状态确定需要执行的M个任务。
需要说明的是,调度模块102可以接收检测装置20发送的数据,根据检测装置20发送的数据计算出移动设备当前的运动状态,如:移动设备的运行速度。另外,本发明实施例中的移动设备可以车辆、无人机等具有移动功能的设备。另外,M为大于等于1的整数。
具体实现中,调度模块102根据车载感知系统算法确定需要执行的DNN任务,即本发明实施例所述的M个任务(task),如:检测车道线,检测行人,检测机动车,检测非机动车等任务。在本发明实施例中,每个任务由多个检测装置20获得的数据(如:摄像头拍摄的图像)作为输入,不同的任务交由不同的运算器执行。示例的,参考图5,移动设备在当前的运动状态下有Task 0,Task 1,Task 2三个任务,其中,运算器执行Task 0所需的输入数据是摄像头0、摄像头1以及摄像头3拍摄的图像,执行Task 1所需的输入数据是摄像头1以及摄像头2拍摄的图像,执行Task 2所需的输入数据是摄像头2以及摄像头3拍摄的图像。
402、调度模块102确定上述M个任务中的N个时延敏感任务。
需要说明的是,移动设备的运动状态不同,任务的时延敏感度是不同的,示例的,移动设备高速行驶时要求车载装置10能够快速识别移动设备正前方的车辆,行人,障碍物等,因此“识别前方车辆”、“识别前方行人”等任务的优先级较高;另外,识别移动设备后方情况的相关任务优先级相对较低,如:“识别后方车辆”、“识别后方行人”等任务。另外,N为小于等于M的整数。
具体实现中,调度模块102可以根据移动设备的运动状态确定M个任务中每一个任务的时延敏感度。进一步,由于任务的优先级等级与任务的时延敏感度成正比例关系,因此调度模块102还可以根据每一个任务的时延敏感度确定任务的优先级等级。另外,还可以根据任务的延迟要求时长确定任务的时延敏感度,延迟要求时长越小的任务时延敏感度越高。示例的,任务1、任务2、任务3的延迟要求时长分别是5s、10s、8s,因此,这三个任务按照时延敏感度从高到低依次为任务1、任务3、任务2,即按照优先级等级从高到低依次为任务1、任务3、任务2。
在本发明实施例中,任务的延迟要求时长可以是预估的执行该任务所需的时间,通常可以根据一个任务所需的输入数据的数量确定执行该任务所需的时间。示例的,执行任务1所需的输入数据是摄像头1、摄像头2在1s内拍摄的图像,假设摄像头1、摄像头2在1s内各自拍摄了8张图像,因此,执行任务1所需的输入数据是16张图像。如果规定一张图像的处理时间不能超过2ms,则执行该任务所需的时间不能超过2*16=32ms,因此,该任务的延迟要求时长为32ms。
随后,调度模块102还可以将所述M个任务按照优先级从高到低的顺序排列,将其中优先级等级较高的N个任务确定为N个时延敏感任务。
在一些实施例中,可以将移动设备的运动状态分为高速和低速,不同运动状态下任务的时延要求时长不同。具体地,移动设备的运动状态为高速时,要求能够快速处理任务,对任务的时延要求比较高;移动设备的运动状态为低速时,对任务的时延要求相对较低。
在本发明实施例中,可以根据不同地区的交通规则界定高速和低速,当然也可以根据其他因素来界定高速和低速,本发明实施例对此不做限制。图6为本发明实施例提供的低速和高速的一种示例,参考图6,移动设备的时速在80~120km/h时,移动设备的运动状态为高速;移动设备的时速在80km/h以下,移动设备的运动状态为低速。移动设备在高速状态下,对运算器103的处理帧率要求较高,如:移动设备的时速在80~120km/h时,运算器计算的帧率不低于30FPS,即每帧处理的时延不超过33ms。移动设备在低速状态下,较低的处理帧率即可满足需求,如:移动设备的时速为20km/h时,计算的帧率为5FPS,即每帧处理的时间为200ms。进一步,可以根据每帧处理的时延来确定一个任务的延迟要求时长。示例的,移动设备高速行驶下,任务1需要的输入数据是摄像头1、摄像头2拍摄的10张图像,那么可以预估执行任务1所需的时长为10*33=330ms,即任务1的延迟要求时长为330ms。
随后,调度模块102针对N个时延敏感任务中的每一个时延敏感任务执行以下步骤403~步骤404,为各个时延敏感任务确定目标运算器。在本发明实施例中,调度模块102可以按照优先级等级从高到低的顺序依次为N个时延敏感任务中的每一个时延敏感任务分配目标运算器,也可以按照计算量从大到小的顺序为N个时延敏感任务中的每一个时延敏感任务分配目标运算器。如果时延敏感任务的优先级等级相同,则可以按照计算量从大到小的顺序依次分配目标运算器。
以下步骤403~步骤404相关说明中以时延敏感任务1作为示例,详细说明在本发明实施例中为时延敏感任务分配目标运算器。
403、调度模块102确定车载装置的各个运算器103的目标功耗余量范围以及各个计算103执行时延敏感任务1所需的时长。
具体实现中,调度模块102可以通过以下两个步骤采集各运算器当前的状态,确定一个运算器103的目标功耗余量范围,具体包括:
步骤A:调度模块102首先确定运算器的当前功耗,即运算器当前正在进行的计算任务所占用的功耗。
步骤B:调度模块102根据运算器的当前功耗和运算器的目标功耗范围,确定运算器的目标功耗余量范围。需要说明的是,目标功耗范围指的是运算器的功耗维持在该范围内时,运算器的性能达到最佳状态,调度模块102可以从寄存器读取运算器的目标功耗范围,也可以由芯片或测试得到运算器的目标功耗范围。
需要说明的是,调度模块102也可以获取运算器的最大功耗限值,调度模块102在进行任务分配的时候需要考虑运算器的最大功耗限值,为运算器分配任务后运算器的功耗是不能超过这个限值的。
另外,调度模块102可以根据预以下公式(1)预估一个运算器执行完一个任务所需的时长T,在分配任务过程中,不仅要保证运算器工作在目标功耗下,还需要保证运算器在任务的延迟要求时长t内执行完该任务,因此T不超过任务的延迟要求时长t,即T小于或等于,如此才能保证任务的计算能够被执行完。
公式(1)中的Nc和Nm是运算器内部基本计算单元数量,f1为运算器上核心的频率;f2为运算器的内存的频率,Ci是执行完该任务所需的双精度浮点运算次数,mj是执行完所述时延敏感任务所需的内存访问频率;所述内存访问频率是每秒访问内存的次数。
在本发明实施例中,可以通过能力信息表记录各个运算器的能力信息,包括:运算器的目标功耗范围余量范围以及运算器执行时延敏感任务1所需的时长。表1是所述能力信息表的一种可能的实现方式,当然,本发明实施例对能力信息表的实现方式不做限制。参考表1,能力信息表还可以包括运算器的目标功耗范围以及当前功耗。
表1
需要说明的是,表1中应该在车载装置包括所有运算器的能力信息(用于计算DNN任务的运算器),表1中是以车载装置包括两个运算器为例。另外,在为其他时延敏感任务分配目标运算器时,表1中应该包括车载装置的各个运算器执行该时延敏感任务所需的时长。
404、调度模块102为时延敏感任务1确定目标运算器。
需要说明的是,为时延敏感任务1确定的目标运算器,即执行时延敏感任务对应的计算的运算器。在一些实施例中,调度模块102可以首先计算时延敏感任务1的功耗需求,预估执行时延敏感任务1的延迟要求时长。示例的,还可以通过需求信息表记录时延敏感任务的功耗需求以及延迟要求时长。表2是需求信息表的一种可能的实现方式。
表2
任务 | 时延敏感任务1(Task 1) |
功耗需求 | W1 |
延迟要求时长 | t1 |
具体实现中,调度模块102可以根据公式(2)来计算一个任务(可以是时延敏感任务)的功耗需求W。
W=n*w^ (2)
公式(2)中的n为执行完该任务所需的基本操作数,w^为运算器进行一次基本操作的功耗。如果该任务是神经网络任务(即DNN任务),则n为该神经网络的总乘累加数。
另外,任务(可以是时延敏感任务)的延迟要求时长是指当前车速下执行完该任务的截止时间,即执行完该任务至少所需的时长。在本发明实施例中,可以根据当前车速确定每帧图处理的时长,进一步再根据每帧图处理的时长预估执行该任务所需的时长,即任务的延迟要求时长。示例的,移动设备高速行驶下,任务1需要的输入数据是摄像头1、摄像头2拍摄的10张图像,那么可以预估执行任务1所需的时长为10*33=330ms,即任务1的延迟要求时长为330ms。
进一步,调度模块102遍历该移动设备的每一个运算器103,判断该时延敏感任务的功耗需求是否落入运算器103的目标功耗余量范围内,以及运算器103是否能够在时延敏感1的延迟要求时长内执行完该任务。示例的,调度模块102确定时延敏感任务1的需求信息后,查找表1以确定时延敏感任务1的目标运算器。具体地,针对运算器G0,首先判断运算器G0执行时延敏感任务1所需的时长T0是否小于或等于时延敏感任务1的延迟要求时长t1,如果T0小于或等于t1,则进一步判断时延敏感任务1的功耗需求是否落入(MW0-TW0)~(MW1-TW0)区间范围内,如果落入了该区间范围,则将运算器G0确定为时延敏感任务1的目标运算器。当然,如果运算器G0执行时延敏感任务1所需的时长T0大于时延敏感任务1的延迟要求时长t1,或者,时延敏感任务1的功耗需求未落入(MW0-TW0)~(MW0-TW0)区间范围内,则进一步判断运算器G1能否作为时延敏感任务1的目标运算器。示例的,首先判断运算器G1执行时延敏感任务1所需的时长T1是否小于或等于时延敏感任务1的延迟要求时长t1,如果T1小于或等于t1,则进一步判断时延敏感任务1的功耗需求是否落入(MW2-TW1)~(MW3-TW1)区间范围内,如果落入了该区间范围,则将运算器G1确定为时延敏感任务1的目标运算器。
判断延敏感任务的功耗需求是否落入一个运算器103的目标功耗余量范围内可以是:如果时延敏感任务的功耗需求为20W,运算器1的目标功耗余量范围是10W~30W,运算器2的目标功耗余量范围是5W~18W,可见,时延敏感任务的功耗需求落入了运算器1的目标功耗余量范围,即该时延敏感任务的目标运算器为运算器1。
在一些实施例中,如果没有运算器103的目标功耗余量与时延敏感任务的功耗需求相匹配,则可以将任务的输入数据拆分,由多个运算器执行一个时延敏感任务的计算。具体地,若调度模块102遍历所有运算器后,时延敏感任务的功耗需求与移动设备的所有运算器的目标功耗余量范围均不匹配,调度模块102则将该时延敏感任务的输入数据拆分为至少两个子数据块。
进一步,针对所述至少一个子数据块中的每一个子数据块,确定一个运算器计算完所述子数据块所需的功耗。随后,调度模块102遍历所有运算器,判断该功耗是否与运算器的目标功耗余量范围相匹配。若所述移动设备的一个运算器的目标功耗余量范围与所述功耗相匹配,则确定所述运算器为所述子数据块对应的目标运算器。最后,将所有子数据块对应的目标运算器确定为该时延敏感任务对应的目标运算器。
示例的,执行Task2的输入数据为摄像头2、摄像头3拍摄的图像,可以按照摄像头进行划分,将摄像头2拍摄的图像划分为子数据块1,摄像头3拍摄的图像划分为子数据块2。假设运算器G3的目标功耗余量范围满足计算子数据块1所需的功耗,运算器G4的目标功耗余量范围满足计算子数据块2所需的功耗,则Task2对应的目标运算器为G3、G4。另外,各个子数据块对应的延迟要求时长可以根据各个子数据块的数据量来确定,如:根据各个子数据块中图像的数量来确定。
当然,对于特殊任务不允许拆分任务的输入数据不能拆分,调度模块102则在为任务确定目标运算器时只考虑运算器能否满足任务的延迟要求时长。示例的,如果时延敏感任务1的输入数据不允许拆分,调度模块102判断时延敏感任务1的功率需求W1不在(MW0-TW0)~(MW1-TW0)的区间范围内,也不在(MW2-TW1)~(MW3-TW1)的区间范围内,如果运算器G0执行时延敏感任务1所需的时长T0大于时延敏感任务1的延迟要求时长t1,运算器G1执行时延敏感任务1所需的时长T1小于时延敏感任务1的延迟要求时长t1,则确定运算器G1为时延敏感任务1的目标运算器。
调度模块针对每一个时延敏感任务执行步骤403~步骤404,就可以为每一个时延敏感任务确定目标运算器。
405、调度模块102将每一个时延敏感任务分配给对应的目标运算器,指示时延敏感任务对应的目标运算器在该时延敏感任务的延迟要求时长内执行完所述时延敏感任务。
具体实现中,调度模块102生成任务列表,所述任务列表用于记录所述N个时延敏感任务中的每一个时延敏感任务对应的目标运算器以及每一个目标运算器对应的延迟要求时长。运算器103根据所述任务列表确定自身待执行的时延敏感任务并在待执行的时延敏感任务的延迟要求时长内执行完所述待执行的时延敏感任务。以下表3是任务列表的一种可能的实现方式。
表3
任务 | 目标运算器 | 延迟要求时长 |
Task0 | G2 | t0 |
Task1 | G1 | t1 |
Task2 | G3、G4 | t2,t3 |
参考表3,运算器G2需要在t0内执行完任务Task0的所有计算,运算器G1需要在t1内执行完任务Task1的所有计算。需要说明的是,如果一个时延敏感任务由多个运算器共同执行,即一个时延敏感任务的数据被拆分为多个子数据块,不同的子数据块由不同的运算器来计算,那么每个子数据块也相应有延迟要求时长,该延迟要求时长是根据一个运算器计算完该子数据块的时长来确定的。示例的,表3中Task2由运算器G3和G4共同执行,其中G3需要在t2内计算完Task2的子数据块1,G4需要在t2内计算完Task2的子数据块2。
406、调度模块102为非时延敏感任务分配相应的运算器。
需要说明的是,调度模块102在为每一个时延敏感任务分配运算器后,还可以为非时延敏感任务分配运算器。具体地,针对所述M个任务中除所述N个时延敏感任务外的每一个任务(即所述非时延敏感任务),计算所述任务的功耗需求,将目标功耗余量范围与所述任务的功耗需求相匹配且能够在所述任务的延迟要求时长内执行完所述任务的运算器确定为执行所述任务的目标运算器,并将所述任务分配给所述时延敏感任务的目标运算器。
其中,所述任务的功耗需求是执行所述任务所需的功耗,可以参考以上公式2计算非时延敏感任务的功耗需求。所述任务的延迟要求时长是执行所述任务所需的时长,同样,可以根据非时延敏感任务的输入数据量来预估非时延敏感任务的延迟要求时长,具体可以参考上述步骤402关于如何时延敏感任务的延迟要求时长预估的相关说明,本发明实施例对此不做赘述。
需要说明的是,如果非时延敏感任务的功耗需求与所有运算器的目标功耗范围均不匹配,则可以将非时延敏感任务分配给能够在非时延敏感任务的延迟要求时长内执行完该非时延敏感任务的一个运算器。
当然,也可以先不为非时延敏感任务分配运算器,而是等到再次执行步骤101~405后,将该非时延敏感任务的输入数据与其他非时延敏感任务的数据数据合并,为合并后的数据确定运算器。但是,需要保证当前时刻(本次执行步骤406的时刻)与再次执行完步骤405的时刻的间隔不能超过该时延敏感任务的延迟要求时长。
具体实现中,调度模块102可以将至少两个非时延敏感任务的输入数据合并成一个数据块。
进一步,确定所述移动设备的一个运算器计算完所述数据块所需的功耗,若所述移动设备的一个运算器的目标功耗余量范围与该功耗相匹配,则将所述数据块分配给该运算器,指示该运算器在所述数据块对应的时延要求时长内计算完所述数据块。
其中,所述数据块的时延要求为预估的计算完该数据块所需的时长,可以根据该数据块的数据量来预估数据块的时延要求。示例的,合并后的数据包括10张图像,移动设备高速行驶下,每张图像的处理时长不能超过33ms,那么可以预估数据块所需的时长为10*33=330ms,即数据块的延迟要求时长为330ms。
示例的,假设执行Task1要计算的数据为摄像头3拍摄的图像,执行Task2要计算的数据为摄像头2拍摄的图像;Task1、Task2均为非时延敏感任务,将Task1、Task2对应的数据合并为一个数据块(即摄像头3、2拍摄的图像),若计算摄像头3、2拍摄的图像所需的功耗落入了运算器G5的目标功耗余量范围内,则指示运算器G5执行Task1、Task2,计算摄像头3、2拍摄的图像。
需要说明的是,合并非时延敏感任务的输入数据是需要考虑运算器的计算资源,合并后的数据块应该尽可能小于运算器的计算资源。示例的,有3个非时延敏感任务Task4、Task5、Task6,可以首先将其中两个非时延敏感任务Task4、Task5的数据合并,并为合并后的数据分配运算器。等待有新的计算资源释放时可以为Task6分配运算器,如:某些运算器执行完计算后有剩余功耗,可以将Task6分配给该运算器。
另外,不管是时延敏感任务,还是非时延敏感任务,一旦将任务分配给运算器后,运算器都必须在任务的延迟要求时长内输出计算结果。
在一些实施例中,调度模块102可以参考图7所示的方法进行任务分配。具体地,参考图7,包括以下步骤:
步骤S1、调度模块102按照优先级等级从高到低的顺序排序需要执行的任务:Task0、Task1、Task2。
步骤S2、调度模块102取出优先级等级最高的任务Task0,计算Task0的功耗需求w0以及延迟要求时长t0。
步骤S3、调度模块102获取每个运算器的目标功耗余量范围以及每个运算器执行Task0所需的时长。
步骤S4、判断Task0的功耗需求是否落入运算器的目标功耗余量范围,以及运算器执行Task0的时长是否小于或等于Task0的延迟要求时长。
步骤S5、如果Task0落在某个运算器的目标功耗余量范围,则将Task0分配给该运算器,指示该运算器必须在t(当前时刻)+t0时刻返回Task0的计算结果。
步骤S6、如果Task0未落在所有运算器的目标功耗余量范围,则将Task0对应的数据拆分成多个子数据块,优先将计算量大的子数据块分配给可用资源多的运算器。
以下结合附图说明本发明实施例提供对时延敏感任务的调度。参考图8,需要执行的时延敏感任务按照优先级等级从高到低的顺序依次为Task0、Task1、Task2。Task0、Task1、Task2的功耗需求分别是10W,20W,30W。车载装置共有G0、G1两个运算器,运算器G0的最大功耗限值是40W,目标功耗是30W,运算器G1的最大功耗限值是60W,目标功耗是40W。假设G0、G1均满足Task0、Task1、Task2的延迟要求时长。在本发明实施例中可以按照优先级等级从高到低依次为各个任务分配运算器。
示例的,参考图8,初始状态时运算器G0的占用功耗是10W,目标功耗余量是20W,运算器G1是空闲状态,目标功耗余量是40W。首先,运算器G0的目标功耗余量是20W,Task0的功耗需求是10W,运算器G0的目标功耗余量可以满足Task0的10W的功耗需求,因此,可以将Task0分配给运算器G0,此时,运算器G0的目标功耗余量变为10W,运算器G1的目标功耗余量仍为40W。
随后,运算器G1的目标功耗余量可以满足Task1的10W的功耗需求,还可以将Task1分配给运算器G1,此时,运算器G0的目标功耗余量仍为10W,运算器G1的目标功耗余量变为20W。
最后,Task2的功耗需求大于运算器G0的目标功耗余量10W,大于运算器G0的目标功耗余量20W,因此可以把Task2的数据拆分成两部分。一部分的功耗需求是10W,与运算器G0的目标功耗余量10W匹配,那么可以将这部分数据分配给运算器G0进行计算。另一部分的功耗需求是20W,与运算器G1的目标功耗余量20W匹配,那么可以将这部分数据分配给运算器G1进行计算。
以下结合附图说明本发明实施例提供对非时延敏感任务的调度。结合图9,需要执行的时延敏感任务按照优先级等级从高到低的顺序依次为Task0、Task1、Task2。Task0、Task1、Task2的功耗需求分别是10W,20W,30W。车载装置共有G0、G1两个运算器,运算器G0的最大功耗限值是40W,目标功耗是30W,运算器G1的最大功耗限值是60W,目标功耗是40W。初始状态时运算器G0的占用功耗是10W,目标功耗余量是20W,运算器G1是空闲状态,目标功耗余量是40W。
参考图9,对于非时延敏感任务可以将延时延要求较低的任务合并,将合并后的任务分配给运算器。示例的,可以将Task0、Task1的数据合并成一个任务,合并后的数据的功耗需求是10W+20W=30W,与运算器G1的目标功耗余量匹配,因此可以将合并后的任务分配给运算器G1,运算器G1的目标功耗余量为10W,运算器G0的目标功耗余量为20W。虽然运算器G1、G0的目标功耗余量均不满足Task2的功耗需求,但是由于Task2同样为非时延敏感任务,可以暂时不为Task2分配运算器,等到有足够的计算资源时再为Task2分配运算器。
本发明实施例提供一种装置,所述装置可以是本发明实施例涉及的车载装置中的调度模块,如图2中所示的车载装置10的调度模块102。在采用对应各个功能划分各个功能模块的情况下,图10示出了上述通信设备的一种可能的结构示意图。如图10所示,所述装置包括确定单元1001、计算单元1002以及分配单元1003。
确定单元1001,用于支持所述装置执行上述实施例中的步骤401、步骤402,和/或用于本文所描述的技术的其它过程。
计算单元1002,用于支持所述装置执行上述实施例中的步骤403,和/或用于本文所描述的技术的其它过程;
分配单元1003,用于支持所述装置执行上述实施例中的步骤405,和/或用于本文所描述的技术的其它过程;
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
示例性的,在采用集成的单元的情况下,本申请实施例提供的装置的结构示意图如图11所示。在图11中,该装置包括:处理模块1101和通信模块1102。处理模块1101用于对装置的动作进行控制管理,例如,执行确定单元1001、计算单元1002以及分配单元1003执行的步骤,和/或用于执行本文所描述的技术的其它过程。通信模块1102用于支持装置与其他设备之间的交互。如图11所示,装置还可以包括存储模块1103,存储模块1103用于存储装置的程序代码和数据。
本发明实施例提供的任务调度方法可应用于图12所示的,所述装置可以是本发明实施例所述的调度模块102。如图12所示,该装置可以包括至少一个处理器1201,存储器1202、收发器1203以及通信总线1204。
下面结合图12对该装置的各个构成部件进行具体的介绍:
处理器1201是装置的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器120201是一个中央处理器(central processing unit,CPU),也可以是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(digital signalprocessor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)。
其中,处理器1201可以通过运行或执行存储在存储器1202内的软件程序,以及调用存储在存储器1202内的数据,执行装置的各种功能。
在具体的实现中,作为一种实施例,处理器1201可以包括一个或多个CPU,例如图12中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,装置可以包括多个处理器,例如图12中所示的处理器1201和处理器1205。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
存储器1202可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1202可以是独立存在,通过通信总线1204与处理器1201相连接。存储器1202也可以和处理器1201集成在一起。
其中,所述存储器1202用于存储执行本发明方案的软件程序,并由处理器1201来控制执行。
收发器1203,使用任何收发器一类的装置,用于与图2所示系统中的其他模块间的通信,如:IO逻辑101、运算器103等。还可以用于与通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(Wireless Local Area Networks,WLAN)等。收发器1203可以包括接收单元实现接收功能,以及发送单元实现发送功能。
通信总线1204,可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
图12中示出的设备结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例中,处理器1201可以运行存储器1202中的代码执行本发明实施例图4、图7所示的方法。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的数据库访问装置和方法,可以通过其它的方式实现。例如,以上所描述的数据库访问装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,数据库访问装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种任务调度方法,其特征在于,包括:
确定移动设备的运动状态,根据所述移动设备的运动状态确定需要执行的M个任务,确定所述M个任务中的N个时延敏感任务;所述M为大于等于1的整数,所述N为小于等于M的整数;
针对所述N个时延敏感任务中的每一个时延敏感任务,计算所述时延敏感任务的功耗需求,将目标功耗余量范围与所述时延敏感任务的功耗需求相匹配且能够在所述时延敏感任务的延迟要求时长内执行完所述时延敏感任务的运算器确定为执行所述时延敏感任务的目标运算器,并将所述时延敏感任务分配给所述时延敏感任务的目标运算器;
其中,所述目标功耗余量范围是根据所述移动设备的运算器的目标功耗范围与该运算器的当前功耗确定的;所述时延敏感任务的功耗需求是执行所述时延敏感任务所需的功耗;所述时延敏感任务的延迟要求时长是执行所述时延敏感任务所需的时长。
2.根据权利要求1所述的方法,其特征在于,所述确定所述M个任务中的N个时延敏感任务具体包括:
根据所述运动状态确定所述M个任务中每一个任务的时延敏感度;
根据所述M个任务中每一个任务的时延敏感度确定所述M个任务中每一个任务的优先级等级;所述优先级等级与时延敏感度成正比例关系;
将所述M个任务中优先级等级较高的N个任务确定为所述N个时延敏感任务。
3.根据权利要求1或2所述的方法,其特征在于,所述计算所述时延敏感任务的功耗需求,将目标功耗余量范围与所述时延敏感任务的功耗需求相匹配且能够在所述时延敏感任务的延迟要求时长内执行完所述时延敏感任务的运算器确定为执行所述时延敏感任务的目标运算器具体包括:
计算所述时延敏感任务的功耗需求;
针对所述移动设备的每一个运算器,确定所述运算器执行所述时延敏感任务的时长以及所述运算器的目标功耗余量范围;
判断所述时延敏感任务的功耗需求是否落入所述运算器的目标功耗余量范围内以及所述运算器执行所述时延敏感任务的时长是否未超过所述时延敏感任务的延迟要求时长;
若所述时延敏感任务的功耗需求落入所述运算器的目标功耗余量范围内且所述运算器执行所述时延敏感任务的时长未超过所述时延敏感任务的延迟要求时长,则确定所述运算器为所述时延敏感任务的目标运算器。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述时延敏感任务的功耗需求与所述移动设备的所有运算器的目标功耗余量范围均不匹配,则将所述时延敏感任务的输入数据拆分为至少两个子数据块;
针对所述至少一个子数据块中的每一个子数据块,确定计算所述子数据块所需的功耗,若所述移动设备的一个运算器的目标功耗余量范围与所述功耗相匹配,则确定所述运算器为所述子数据块对应的目标运算器;
将所有子数据块对应的目标运算器确定为所述时延敏感任务对应的目标运算器。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述将所述时延敏感任务分配给所述时延敏感任务的目标运算器具体包括:
计算所述N个时延敏感任务的执行时长,根据所述时延敏感任务的执行时长确定所述时延敏感任务的执行时长的延迟要求时长;
生成任务列表,所述任务列表用于记录所述N个时延敏感任务中的每一个时延敏感任务对应的目标运算器以及每一个目标运算器对应的延迟要求时长,以便所述移动设备的运算器根据所述任务列表确定待执行的时延敏感任务并在所述待执行的时延敏感任务的延迟要求时长内执行完所述待执行的时延敏感任务。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述N个时延敏感任务中的每一个时延敏感任务分配给对应的目标运算器后,针对所述M个任务中除所述N个时延敏感任务外的每一个任务,计算所述任务的功耗需求,将目标功耗余量范围与所述任务的功耗需求相匹配且能够在所述任务的延迟要求时长内执行完所述任务的运算器确定为执行所述任务的目标运算器,并将所述任务分配给所述时延敏感任务的目标运算器;
其中,所述任务的功耗需求是执行所述任务所需的功耗,所述任务的延迟要求时长是执行所述任务所需的时长。
7.根据权利要求3所述的方法,其特征在于,所述运算器执行所述时延敏感任务的时长T满足:
其中,Nc和Nm是运算器内部基本计算单元数量,f1为运算器上核心的频率;f2为运算器的内存的频率,Ci是执行完所述时延敏感任务所需的双精度浮点运算次数,mj是执行完所述时延敏感任务所需的内存访问频率;所述内存访问频率是每秒访问内存的次数。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述时延敏感任务的功耗需求W满足:W=n*w^,其中,n执行完所述时延敏感任务的所需的基本操作数,w^为运算器进行一次基本操作的功耗。
9.一种装置,其特征在于,包括:
确定单元,用于确定移动设备的运动状态,根据所述移动设备的运动状态确定需要执行的M个任务,确定所述M个任务中的N个时延敏感任务;所述M为大于等于1的整数,所述N为小于等于M的整数;
计算单元,用于针对所述N个时延敏感任务中的每一个时延敏感任务,计算所述时延敏感任务的功耗需求;
所述确定单元还用于,将目标功耗余量范围与所述时延敏感任务的功耗需求相匹配且能够在所述时延敏感任务的延迟要求时长内执行完所述时延敏感任务的运算器确定为执行所述时延敏感任务的目标运算器;
分配单元,用于将所述时延敏感任务分配给所述时延敏感任务的目标运算器;
其中,所述目标功耗余量范围是根据所述移动设备的运算器的目标功耗范围与该运算器的当前功耗确定的;所述时延敏感任务的功耗需求是执行所述时延敏感任务所需的功耗;所述时延敏感任务的延迟要求时长是执行所述时延敏感任务所需的时长。
10.根据权利要求9所述的装置,其特征在于,所述确定单元具体用于,根据所述运动状态确定所述M个任务中每一个任务的时延敏感度;
根据所述M个任务中每一个任务的时延敏感度确定所述M个任务中每一个任务的优先级等级;所述优先级等级与时延敏感度成正比例关系;
将所述M个任务中优先级等级较高的N个任务确定为所述N个时延敏感任务。
11.根据权利要求9或10所述的装置,其特征在于,
所述计算单元具体用于,计算所述时延敏感任务的功耗需求;针对所述移动设备的每一个运算器,确定所述运算器执行所述时延敏感任务的时长以及所述运算器的目标功耗余量范围;
所述确定单元具体用于,判断所述时延敏感任务的功耗需求是否落入所述运算器的目标功耗余量范围内以及所述运算器执行所述时延敏感任务的时长是否未超过所述时延敏感任务的延迟要求时长;若所述时延敏感任务的功耗需求落入所述运算器的目标功耗余量范围内且所述运算器执行所述时延敏感任务的时长未超过所述时延敏感任务的延迟要求时长,则确定所述运算器为所述时延敏感任务的目标运算器。
12.根据权利要求11所述的装置,其特征在于,所述确定单元还用于,若所述时延敏感任务的功耗需求与所述移动设备的所有运算器的目标功耗余量范围均不匹配,则将所述时延敏感任务的输入数据拆分为至少两个子数据块;
针对所述至少一个子数据块中的每一个子数据块,确定计算所述子数据块所需的功耗,若所述移动设备的一个运算器的目标功耗余量范围与所述功耗相匹配,则确定所述运算器为所述子数据块对应的目标运算器;
将所有子数据块对应的目标运算器确定为所述时延敏感任务对应的目标运算器。
13.根据权利要求9-12任一项所述的装置,其特征在于,所述分配单元具体用于,计算所述N个时延敏感任务的执行时长,根据所述时延敏感任务的执行时长确定所述时延敏感任务的执行时长的延迟要求时长;
生成任务列表,所述任务列表用于记录所述N个时延敏感任务中的每一个时延敏感任务对应的目标运算器以及每一个目标运算器对应的延迟要求时长,以便所述移动设备的运算器根据所述任务列表确定待执行的时延敏感任务并在所述待执行的时延敏感任务的延迟要求时长内执行完所述待执行的时延敏感任务。
14.根据权利要求10所述的装置,其特征在于,
所述计算单元还用于,将所述N个时延敏感任务中的每一个时延敏感任务分配给对应的目标运算器后,针对所述M个任务中除所述N个时延敏感任务外的每一个任务,计算所述任务的功耗需求;
所述分配单元还用于,将目标功耗余量范围与所述任务的功耗需求相匹配且能够在所述任务的延迟要求时长内执行完所述任务的运算器确定为执行所述任务的目标运算器,并将所述任务分配给所述时延敏感任务的目标运算器;
其中,所述任务的功耗需求是执行所述任务所需的功耗,所述任务的延迟要求时长是执行所述任务所需的时长。
15.根据根据权利要求11所述的装置,其特征在于,所述运算器执行所述时延敏感任务的时长T满足:
其中,Nc和Nm是运算器内部基本计算单元数量,f1为运算器上核心的频率;f2为运算器的内存的频率,Ci是执行完所述时延敏感任务所需的双精度浮点运算次数,mj是执行完所述时延敏感任务所需的内存访问频率;所述内存访问频率是每秒访问内存的次数。
16.根据根据权利要求9-15任一项所述的装置,其特征在于,所述时延敏感任务的功耗需求W满足:W=n*w^,其中,n执行完所述时延敏感任务的所需的基本操作数,w^为运算器进行一次基本操作的功耗。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810525810.7A CN110543148B (zh) | 2018-05-28 | 2018-05-28 | 一种任务调度方法及装置 |
PCT/CN2019/088450 WO2019228285A1 (zh) | 2018-05-28 | 2019-05-25 | 一种任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810525810.7A CN110543148B (zh) | 2018-05-28 | 2018-05-28 | 一种任务调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110543148A true CN110543148A (zh) | 2019-12-06 |
CN110543148B CN110543148B (zh) | 2021-04-09 |
Family
ID=68696622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810525810.7A Active CN110543148B (zh) | 2018-05-28 | 2018-05-28 | 一种任务调度方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110543148B (zh) |
WO (1) | WO2019228285A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258235A (zh) * | 2020-01-10 | 2020-06-09 | 浙江吉利汽车研究院有限公司 | 一种车载功能的实现方法、装置、设备及存储介质 |
CN112257486A (zh) * | 2019-12-23 | 2021-01-22 | 北京新能源汽车技术创新中心有限公司 | 算力分配方法、装置、计算机设备和存储介质 |
CN115061800A (zh) * | 2022-06-30 | 2022-09-16 | 中国联合网络通信集团有限公司 | 边缘计算任务的处理方法、边缘服务器及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113741788A (zh) * | 2020-05-27 | 2021-12-03 | 华为技术有限公司 | 分配运算任务量的方法、装置及存储介质 |
CN113759833B (zh) * | 2020-06-05 | 2023-06-06 | 航天科工惯性技术有限公司 | 一种多传感器采集任务调度方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604264A (zh) * | 2009-07-08 | 2009-12-16 | 深圳先进技术研究院 | 超级计算机的任务调度方法及系统 |
CN102508708A (zh) * | 2011-11-30 | 2012-06-20 | 湖南大学 | 基于改进遗传算法的异构多核节能任务调度方法 |
US20120159508A1 (en) * | 2010-12-15 | 2012-06-21 | Masanobu Katagi | Task management system, task management method, and program |
CN103096445A (zh) * | 2013-02-05 | 2013-05-08 | 清华大学 | 基于实际电池模型的无线传感网任务调度方法及系统 |
US20130262891A1 (en) * | 2012-03-30 | 2013-10-03 | Verizon Patent And Licensing Inc. | Method and system for managing power of a mobile device |
CN103902379A (zh) * | 2012-12-25 | 2014-07-02 | 中国移动通信集团公司 | 一种任务调度方法、装置及服务器集群 |
CN104838359A (zh) * | 2012-08-16 | 2015-08-12 | 微软技术许可有限责任公司 | 等待时间敏感的软件中断和线程调度 |
US20150242243A1 (en) * | 2014-02-21 | 2015-08-27 | International Business Machines Corporation | Processor power optimization with response time assurance |
CN104965754A (zh) * | 2015-03-31 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 任务调度方法及任务调度装置 |
CN105260005A (zh) * | 2015-09-22 | 2016-01-20 | 浙江工商大学 | 面向能耗的云工作流调度优化方法 |
CN105893126A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN107145388A (zh) * | 2017-05-25 | 2017-09-08 | 深信服科技股份有限公司 | 一种多任务环境下任务调度方法及系统 |
CN107450982A (zh) * | 2017-06-07 | 2017-12-08 | 上海交通大学 | 一种基于系统状态的任务调度方法 |
CN107678850A (zh) * | 2017-10-17 | 2018-02-09 | 合肥工业大学 | 中继卫星任务调度方法及装置 |
-
2018
- 2018-05-28 CN CN201810525810.7A patent/CN110543148B/zh active Active
-
2019
- 2019-05-25 WO PCT/CN2019/088450 patent/WO2019228285A1/zh active Application Filing
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604264A (zh) * | 2009-07-08 | 2009-12-16 | 深圳先进技术研究院 | 超级计算机的任务调度方法及系统 |
US20120159508A1 (en) * | 2010-12-15 | 2012-06-21 | Masanobu Katagi | Task management system, task management method, and program |
CN102508708A (zh) * | 2011-11-30 | 2012-06-20 | 湖南大学 | 基于改进遗传算法的异构多核节能任务调度方法 |
US20130262891A1 (en) * | 2012-03-30 | 2013-10-03 | Verizon Patent And Licensing Inc. | Method and system for managing power of a mobile device |
CN104838359A (zh) * | 2012-08-16 | 2015-08-12 | 微软技术许可有限责任公司 | 等待时间敏感的软件中断和线程调度 |
CN103902379A (zh) * | 2012-12-25 | 2014-07-02 | 中国移动通信集团公司 | 一种任务调度方法、装置及服务器集群 |
CN103096445A (zh) * | 2013-02-05 | 2013-05-08 | 清华大学 | 基于实际电池模型的无线传感网任务调度方法及系统 |
US20150242243A1 (en) * | 2014-02-21 | 2015-08-27 | International Business Machines Corporation | Processor power optimization with response time assurance |
CN104965754A (zh) * | 2015-03-31 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 任务调度方法及任务调度装置 |
CN105260005A (zh) * | 2015-09-22 | 2016-01-20 | 浙江工商大学 | 面向能耗的云工作流调度优化方法 |
CN105893126A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN107145388A (zh) * | 2017-05-25 | 2017-09-08 | 深信服科技股份有限公司 | 一种多任务环境下任务调度方法及系统 |
CN107450982A (zh) * | 2017-06-07 | 2017-12-08 | 上海交通大学 | 一种基于系统状态的任务调度方法 |
CN107678850A (zh) * | 2017-10-17 | 2018-02-09 | 合肥工业大学 | 中继卫星任务调度方法及装置 |
Non-Patent Citations (1)
Title |
---|
彭自然: "一种移动终端最优节能实时任务调度算法", 《计算机工程》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257486A (zh) * | 2019-12-23 | 2021-01-22 | 北京新能源汽车技术创新中心有限公司 | 算力分配方法、装置、计算机设备和存储介质 |
CN112257486B (zh) * | 2019-12-23 | 2023-12-29 | 北京国家新能源汽车技术创新中心有限公司 | 算力分配方法、装置、计算机设备和存储介质 |
CN111258235A (zh) * | 2020-01-10 | 2020-06-09 | 浙江吉利汽车研究院有限公司 | 一种车载功能的实现方法、装置、设备及存储介质 |
CN115061800A (zh) * | 2022-06-30 | 2022-09-16 | 中国联合网络通信集团有限公司 | 边缘计算任务的处理方法、边缘服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2019228285A1 (zh) | 2019-12-05 |
CN110543148B (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110543148B (zh) | 一种任务调度方法及装置 | |
US11181913B2 (en) | Autonomous vehicle fleet model training and testing | |
US11884294B2 (en) | Lane change planning and control in autonomous machine applications | |
CN113597613B (zh) | 用于图像分析的形状融合 | |
CN111133485B (zh) | 自主交通工具的对象预测优先级排序系统和方法 | |
JP2023514905A (ja) | 自律型車両のためのビヘイビア・プランニング | |
US10956211B2 (en) | Method and apparatus of allocating automotive computing tasks to networked devices with heterogeneous capabilities | |
US20200302250A1 (en) | Iterative spatial graph generation | |
CN112764927B (zh) | 一种车辆选择和资源联合优化方法、系统、介质及应用 | |
US20230102089A1 (en) | Monitoring execution of application schedules in computing systems | |
CN108801286B (zh) | 确定行驶轨迹的方法和装置 | |
CN115649195A (zh) | 前方目标汇流切入预测方法、装置、电子设备及存储介质 | |
JP2024534059A (ja) | 視覚に基づくシステムのための検出されたオブジェクト経路予測 | |
US11634123B2 (en) | Methods and systems for prioritizing computing methods for autonomous vehicles | |
US11328596B2 (en) | Parking prediction | |
WO2021000787A1 (zh) | 道路几何识别方法及装置 | |
CN109407662B (zh) | 无人驾驶车辆控制方法及装置 | |
US20230341234A1 (en) | Lane planning architecture for autonomous machine systems and applications | |
US12073244B2 (en) | Task scheduling for agent prediction | |
US11544899B2 (en) | System and method for generating terrain maps | |
CN114154510A (zh) | 自动驾驶车辆的控制方法、装置、电子设备及存储介质 | |
CN115973162B (zh) | 用于确定车辆行驶轨迹的方法、装置、电子设备和介质 | |
US20240296068A1 (en) | Execution schedule switching for task management of computing systems | |
US20240378896A1 (en) | Detected object path prediction for vision-based systems | |
US20230360255A1 (en) | Joint 2d and 3d object tracking for autonomous systems and applications |
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 |