CN114327842A - 多任务部署的方法及装置 - Google Patents

多任务部署的方法及装置 Download PDF

Info

Publication number
CN114327842A
CN114327842A CN202011047346.9A CN202011047346A CN114327842A CN 114327842 A CN114327842 A CN 114327842A CN 202011047346 A CN202011047346 A CN 202011047346A CN 114327842 A CN114327842 A CN 114327842A
Authority
CN
China
Prior art keywords
tasks
information
deployment
formal
state machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011047346.9A
Other languages
English (en)
Inventor
赵俊旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011047346.9A priority Critical patent/CN114327842A/zh
Priority to PCT/CN2021/119556 priority patent/WO2022068643A1/zh
Priority to EP21874304.5A priority patent/EP4209901A4/en
Publication of CN114327842A publication Critical patent/CN114327842A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Traffic Control Systems (AREA)

Abstract

本申请提供了一种多任务部署的方法,该方法包括:获取目标平台的第一信息,所述第一信息用于表示所述目标平台的属性;获取待部署的多个任务的第二信息,所述第二信息用于表示所述多个任务的需求;基于形式化语言对所述第一信息及所述第二信息进行形式化描述,得到形式化模型;使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署策略;根据所述部署策略对所述多个任务进行部署。本申请实施例中的方法,能够提高多任务部署的效率。

Description

多任务部署的方法及装置
技术领域
本申请涉及计算机应用技术领域,并且更具体地,涉及一种多任务部署的方法及装置。
背景技术
随着自动驾驶技术的快速发展,对传感器的感知精度、感知鲁棒性的要求也越来越高, 使得传感器所需的算力及资源也不断增加。同时,用于自动驾驶的高性能片上***(Systemonachip,SoC)也已逐步从高性能单核***向多核***演进,是否充分利用多核 ***的处理资源对传感器***的实时多任务进行部署,直接影响着传感器的精度和鲁棒性。但是,传感器***的多任务场景往往较为复杂,很难快速地确定出合理的部署策略,从而导致多任务部署的效率不高。
因此,如何提高多任务部署的效率成为一个亟需解决的技术问题。
发明内容
本申请提供一种多任务部署的方法及装置,能够提高多任务部署的效率。
第一方面,提供了一种多任务部署的方法,该方法包括:
获取目标平台的第一信息,所述第一信息用于表示所述目标平台的属性;获取待部署 的多个任务的第二信息,所述第二信息用于表示所述多个任务的需求;基于形式化语言对 所述第一信息及所述第二信息进行形式化描述,得到形式化模型;使用状态机,基于所述 形式化模型进行形式化分析,生成所述多个任务的部署策略;根据所述部署策略对所述多 个任务进行部署。
在本申请实施例中,对目标平台的属性和多个任务的需求进行形式化描述,得到形式 化模型,并使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署 策略,可以不受实际运行环境的影响,快速给出合理的部署策略,从而能够提高多任务部 署的效率。
结合第一方面,在第一方面的某些实现方式中,所述目标平台包括多个节点,所述第 一信息包括用于指示所述目标平台中的节点的个数、所述多个节点中的每个节点的类型、 所述每个节点的能力、所述目标平台的功耗模式及各功耗模式的触发条件的信息,所述第 二信息包括用于指示所述多个任务中的任务的个数、所述多个任务的依赖关系、所述多个 任务中的每个任务的时间约束及执行所述每个任务需要的资源的信息。
结合第一方面,在第一方面的某些实现方式中,所述使用状态机,基于所述形式化模 型进行形式化分析,生成所述多个任务的部署策略,包括:使用状态机,基于所述形式化模型进行形式化分析,确定所述多个任务的部署策略是否发生冲突;在所述多个任务的部署策略未发生冲突的情况下,生成所述多个任务的部署策略。
结合第一方面,在第一方面的某些实现方式中,所述使用状态机,基于所述形式化模 型进行形式化分析,生成所述多个任务的部署策略,包括:使用状态机,基于所述形式化模型进行形式化分析,确定所述多个任务的部署策略是否发生冲突;在所述多个任务的部署策略发生冲突的情况下,确定所述多个任务的部署策略的冲突信息;根据所述冲突信息调整所述形式化模型。
结合第一方面,在第一方面的某些实现方式中,所述使用状态机,基于所述形式化模 型进行形式化分析,生成所述多个任务的部署策略,包括:使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署策略及所述目标平台的资源利用信息。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:基于所述资源利用 信息,在所述部署策略中增加任务;根据增加的任务,更新所述资源利用信息。
结合第一方面,在第一方面的某些实现方式中,所述状态机包括平台状态机和任务状 态机,所述平台状态机包括平台的功耗模式、各功耗模式间的切换条件及各功耗模式的资 源约束,所述任务状态机包括任务状态和各任务状态间切换条件。
第二方面,提供了一种多任务部署的装置,包括:
第一获取单元,用于获取目标平台的第一信息,所述第一信息用于表示所述目标平台 的属性;第二获取单元,用于获取待部署的多个任务的第二信息,所述第二信息用于表示 所述多个任务的需求;形式化描述单元,用于基于形式化语言对所述第一信息及所述第二 信息进行形式化描述,得到形式化模型;形式化分析单元,用于使用状态机,基于所述形 式化模型进行形式化分析,生成所述多个任务的部署策略;部署单元,用于根据所述部署 策略对所述多个任务进行部署。
在本申请实施例中,对目标平台的属性和多个任务的需求进行形式化描述,得到形式 化模型,并使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署 策略,可以不受实际运行环境的影响,快速给出合理的部署策略,从而能够提高多任务部 署的效率。
结合第二方面,在第二方面的某些实现方式中,所述目标平台包括多个节点,所述第 一信息包括用于指示所述目标平台中的节点的个数、所述多个节点中的每个节点的类型、 所述每个节点的能力、所述目标平台的功耗模式及各功耗模式的触发条件的信息,所述第 二信息包括用于指示所述多个任务中的任务的个数、所述多个任务的依赖关系、所述多个 任务中的每个任务的时间约束及执行所述每个任务需要的资源的信息。
结合第二方面,在第二方面的某些实现方式中,所述形式化分析单元具体用于:使用 状态机,基于所述形式化模型进行形式化分析,确定所述多个任务的部署策略是否发生冲 突;在所述多个任务的部署策略未发生冲突的情况下,生成所述多个任务的部署策略。
结合第二方面,在第二方面的某些实现方式中,所述形式化分析单元具体用于:使用 状态机,基于所述形式化模型进行形式化分析,确定所述多个任务的部署策略是否发生冲 突;在所述多个任务的部署策略发生冲突的情况下,确定所述多个任务的部署策略的冲突 信息;根据所述冲突信息调整所述形式化模型。
结合第二方面,在第二方面的某些实现方式中,所述形式化分析单元具体用于:使用 状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署策略及所述目标 平台的资源利用信息。
结合第二方面,在第二方面的某些实现方式中,所述装置还包括更新单元,用于:基 于所述资源利用信息,在所述部署策略中增加任务;根据增加的任务,更新所述资源利用 信息。
结合第二方面,在第二方面的某些实现方式中,所述状态机包括平台状态机和任务状 态机,所述平台状态机包括平台的功耗模式、各功耗模式间的切换条件及各功耗模式的资 源约束,所述任务状态机包括任务状态和各任务状态间切换条件。
第三方面,提供了一种多任务部署的装置,所述装置包括存储介质和中央处理器,所 述存储介质可以是非易失性存储介质,所述存储介质中存储有计算机可执行程序,所述中 央处理器与所述非易失性存储介质连接,并执行所述计算机可执行程序以实现所述第一方 面或者第一方面的任一可能的实现方式中的方法。
第四方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数 据接口读取存储器上存储的指令,执行第一方面或第一方面的任一可能的实现方式中的方 法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令, 所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执 行第一方面或第一方面的任一可能的实现方式中的方法。
第五方面,提供一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的 程序代码,所述程序代码包括用于执行第一方面或者第一方面的任一可能的实现方式中的 方法的指令。
第六方面,提供一种控制器,所述控制器包括上述第二方面或第三方面所述的多任务 部署的装置。
可选地,作为一种实现方式,所述控制器可以为自动驾驶的域控制器(domaincontrol unit,DCU)。
第七方面,提供一种汽车,所述汽车包括上述第二方面或第三方面所述的多任务部署 的装置或上述第六方面所述的控制器。
在本申请实施例中,对目标平台的属性和多个任务的需求进行形式化描述,得到形式 化模型,并使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署 策略,可以不受实际运行环境的影响,快速给出合理的部署策略,从而能够提高多任务部 署的效率。
附图说明
图1为本申请实施例提供的一种自动驾驶车辆的结构示意图。
图2为本申请实施例提供的一种自动驾驶***的结构示意图。
图3为本申请实施例适用的一种***架构的结构示意图。
图4为本申请一个实施例提供的多任务部署的方法的示意性框图。
图5是本申请另一个实施例提供的平台状态机的示意性框图。
图6是本申请另一个实施例提供的任务状态机的示意性框图。
图7为本申请一个实施例提供的多任务部署的方法的示意性框图。
图8是本申请另一个实施例提供的多任务部署的装置的示意性框图。
图9是本申请另一个实施例提供的多任务部署的装置的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例的技术方案可以应用于各种需要在多核上(或多处理器上)部署多任务 的场景。例如,本申请实施例的技术方案可以应用于车辆中,将车辆的传感器***中的多 任务部署于控制器中的多个处理器上。
本申请实施例的技术方案可以应用于各种车辆,该车辆具体可以为内燃机车、智能电 动车或者混合动力车,或者,该车辆也可以为其他动力类型的车辆等,本申请实施例对此 并不限定。
本申请实施例中的车辆可以为自动驾驶车辆,例如,所述自动驾驶车辆可以配置有自 动驾驶模式,该自动驾驶模式可以为完全自动驾驶模式,或者,也可以为部分自动驾驶模 式,本申请实施例对此并不限定。
本申请实施例中的车辆还可以配置有其他驾驶模式,所述其他驾驶模式可以包括运动 模式、经济模式、标准模式、雪地模式及爬坡模式等多种驾驶模式中的一种或多种。所述 自动驾驶车辆可以在自动驾驶模式和上述多种(驾驶员驾驶车辆的)驾驶模型之间进行切 换,本申请实施例对此并不限定。
图1是本申请实施例提供的车辆100的功能框图。
在一个实施例中,将车辆100配置为完全或部分地自动驾驶模式。
例如,车辆100可以在处于自动驾驶模式中的同时控制自身,并且可通过人为操作来 确定车辆及其周边环境的当前状态,确定周边环境中的至少一个其他车辆的可能行为,并 确定该其他车辆执行可能行为的可能性相对应的置信水平,基于所确定的信息来控制车辆 100。在车辆100处于自动驾驶模式中时,可以将车辆100置为在没有和人交互的情况下 操作。
车辆100可包括各种子***,例如行进***102、传感器***104、控制***106、 一个或多个***设备108以及电源110、计算机***112和用户接口116。
可选地,车辆100可包括更多或更少的子***,并且每个子***可包括多个元件。另 外,车辆100的每个子***和元件可以通过有线或者无线互连。
行进***102可包括为车辆100提供动力运动的组件。在一个实施例中,推进***102可包括引擎118、能量源119、传动装置120和车轮/轮胎121。引擎118可以是内燃 引擎、电动机、空气压缩引擎或其他类型的引擎组合,例如,气油发动机和电动机组成的 混动引擎,内燃引擎和空气压缩引擎组成的混动引擎。引擎118将能量源119转换成机械 能量。
能量源119的示例包括汽油、柴油、其他基于石油的燃料、丙烷、其他基于压缩气体的燃料、乙醇、太阳能电池板、电池和其他电力来源。能量源119也可以为车辆100的其 他***提供能量。
传动装置120可以将来自引擎118的机械动力传送到车轮121。传动装置120可包括变速箱、差速器和驱动轴。
在一个实施例中,传动装置120还可以包括其他器件,比如离合器。其中,驱动轴可包括可耦合到一个或多个车轮121的一个或多个轴。
传感器***104可包括感测关于车辆100周边的环境的信息的若干个传感器。
例如,传感器***104可包括定位***122(定位***可以是GPS***,也可以是北斗***或者其他定位***)、惯性测量单元(inertial measurement unit,IMU)124、雷达126、激光测距仪128以及相机130。传感器***104还可包括被监视车辆100的内部系 统的传感器(例如,车内空气质量监测器、燃油量表、机油温度表等)。来自这些传感器 中的一个或多个的传感器数据可用于检测对象及其相应特性(位置、形状、方向、速度等)。 这种检测和识别是自主车辆100的安全操作的关键功能。
定位***122可用于估计车辆100的地理位置。IMU 124用于基于惯性加速度来感测 车辆100的位置和朝向变化。在一个实施例中,IMU 124可以是加速度计和陀螺仪的组合。
雷达126可利用无线电信号来感测车辆100的周边环境内的物体。在一些实施例中, 除了感测物体以外,雷达126还可用于感测物体的速度和/或前进方向。
激光测距仪128可利用激光来感测车辆100所位于的环境中的物体。在一些实施例中, 激光测距仪128可包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他 ***组件。
相机130可用于捕捉车辆100的周边环境的多个图像。相机130可以是静态相机或视频相机。
控制***106为控制车辆100及其组件的操作。控制***106可包括各种元件,其中包括转向***132、油门134、制动单元136、传感器融合算法138、计算机视觉***140、 路线控制***142以及障碍物避免***144。
转向***132可操作来调整车辆100的前进方向。例如在一个实施例中可以为方向盘 ***。
油门134用于控制引擎118的操作速度并进而控制车辆100的速度。
制动单元136用于控制车辆100减速。制动单元136可使用摩擦力来减慢车轮121。在其他实施例中,制动单元136可将车轮121的动能转换为电流。制动单元136也可采取 其他形式来减慢车轮121转速从而控制车辆100的速度。
计算机视觉***140可以操作来处理和分析由相机130捕捉的图像以便识别车辆100 周边环境中的物体和/或特征。所述物体和/或特征可包括交通信号、道路边界和障碍物。 计算机视觉***140可使用物体识别算法、运动中恢复结构(Structure from Motion,SFM) 算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉***140可以用于 为环境绘制地图、跟踪物体、估计物体的速度等等。
路线控制***142用于确定车辆100的行驶路线。在一些实施例中,路线控制***142可结合来自传感器138、GPS 122和一个或多个预定地图的数据以为车辆100确定行 驶路线。
障碍物避免***144用于识别、评估和避免或者以其他方式越过车辆100的环境中的 潜在障碍物。
当然,在一个实例中,控制***106可以增加或替换地包括除了所示出和描述的那些 以外的组件。或者也可以减少一部分上述示出的组件。
车辆100通过***设备108与外部传感器、其他车辆、其他计算机***或用户之间进 行交互。***设备108可包括无线通信***146、车载电脑148、麦克风150和/或扬声器152。
在一些实施例中,***设备108提供车辆100的用户与用户接口116交互的手段。例如,车载电脑148可向车辆100的用户提供信息。用户接口116还可操作车载电脑148来 接收用户的输入。车载电脑148可以通过触摸屏进行操作。在其他情况中,***设备108 可提供用于车辆100与位于车内的其它设备通信的手段。例如,麦克风150可从车辆100 的用户接收音频(例如,语音命令或其他音频输入)。类似地,扬声器152可向车辆100 的用户输出音频。
无线通信***146可以直接地或者经由通信网络来与一个或多个设备无线通信。例如, 无线通信***146可使用3G蜂窝通信,例如CDMA、EVD0、GSM/GPRS,或者4G蜂 窝通信,例如LTE。或者5G蜂窝通信。无线通信***146可利用WiFi与无线局域网 (wireless localarea network,WLAN)通信。在一些实施例中,无线通信***146可利用 红外链路、蓝牙或ZigBee与设备直接通信。其他无线协议,例如各种车辆通信***,例 如,无线通信***146可包括一个或多个专用短程通信(dedicated short range communications,DSRC)设备,这些设备可包括车辆和/或路边台站之间的公共和/或私有 数据通信。
电源110可向车辆100的各种组件提供电力。在一个实施例中,电源110可以为可再充电锂离子或铅酸电池。这种电池的一个或多个电池组可被配置为电源为车辆100的各种组件提供电力。在一些实施例中,电源110和能量源119可一起实现,例如一些全电动车 中那样。
车辆100的部分或所有功能受计算机***112控制。计算机***112可包括至少一个 处理器113,处理器113执行存储在例如数据存储装置114这样的非暂态计算机可读介质中的指令115。计算机***112还可以是采用分布式方式控制车辆100的个体组件或子系 统的多个计算设备。
处理器113可以是任何常规的处理器,诸如商业可获得的CPU。替选地,该处理器可以是诸如ASIC或其它基于硬件的处理器的专用设备。尽管图1功能性地图示了处理器、 存储器、和在相同块中的计算机110的其它元件,但是本领域的普通技术人员应该理解该 处理器、计算机、或存储器实际上可以包括在相同的物理外壳内的多个处理器、计算机、 或存储器。例如,存储器可以是硬盘驱动器或位于不同于计算机110的外壳内的其它存储 介质。因此,对处理器或计算机的引用将被理解为包括对可以或者可以不并行操作的处理 器或计算机或存储器的集合的引用。不同于使用单一的处理器来执行此处所描述的步骤, 诸如转向组件和减速组件的一些组件每个都可以具有其自己的处理器,所述处理器只执行 与特定于组件的功能相关的计算。
在此处所描述的各个方面中,处理器可以位于远离该车辆并且与该车辆进行无线通信。 在其它方面中,此处所描述的过程中的一些在布置于车辆内的处理器上执行而其它则由远 程处理器执行,包括采取执行单一操纵的必要步骤。
在一些实施例中,数据存储装置114可包含指令115(例如,程序逻辑),指令115 可被处理器113执行来执行车辆100的各种功能,包括以上描述的那些功能。数据存储装 置114也可包含额外的指令,包括向推进***102、传感器***104、控制***106和外 围设备108中的一个或多个发送数据、从其接收数据、与其交互和/或对其进行控制的指 令。
除了指令115以外,数据存储装置114还可存储数据,例如道路地图、路线信息,车辆的位置、方向、速度以及其它这样的车辆数据,以及其他信息。这种信息可在车辆100 在自主、半自主和/或手动模式中操作期间被车辆100和计算机***112使用。
用户接口116,用于向车辆100的用户提供信息或从其接收信息。可选地,用户接口116可包括在***设备108的集合内的一个或多个输入/输出设备,例如无线通信***146、车车在电脑148、麦克风150和扬声器152。
计算机***112可基于从各种子***(例如,行进***102、传感器***104和控制***106)以及从用户接口116接收的输入来控制车辆100的功能。例如,计算机***112 可利用来自控制***106的输入以便控制转向单元132来避免由传感器***104和障碍物 避免***144检测到的障碍物。在一些实施例中,计算机***112可操作来对车辆100及 其子***的许多方面提供控制。
可选地,上述这些组件中的一个或多个可与车辆100分开安装或关联。例如,数据存 储装置114可以部分或完全地与车辆100分开存在。上述组件可以按有线和/或无线方式来通信地耦合在一起。
可选地,上述组件只是一个示例,实际应用中,上述各个模块中的组件有可能根据实 际需要增添或者删除,图1不应理解为对本申请实施例的限制。
在道路行进的自动驾驶车辆,如上面的车辆100,可以识别其周围环境内的物体以确 定对当前速度的调整。所述物体可以是其它车辆、交通控制设备、或者其它类型的物体。在一些示例中,可以独立地考虑每个识别的物体,并且基于物体的各自的特性,诸如它的当前速度、加速度、与车辆的间距等,可以用来确定自动驾驶车辆所要调整的速度。
可选地,车辆100或者与车辆100相关联的计算设备(如图1的计算机***112、计算机视觉***140、数据存储装置114)可以基于所识别的物体的特性和周围环境的状态(例如,交通、雨、道路上的冰、等等)来预测所述识别的物体的行为。可选地,每一个所识 别的物体都依赖于彼此的行为,因此还可以将所识别的所有物体全部一起考虑来预测单个 识别的物体的行为。车辆100能够基于预测的所述识别的物体的行为来调整它的速度。换 句话说,自动驾驶车辆能够基于所预测的物体的行为来确定车辆将需要调整到(例如,加 速、减速、或者停止)什么稳定状态。在这个过程中,也可以考虑其它因素来确定车辆 100的速度,诸如,车辆100在行驶的道路中的横向位置、道路的曲率、静态和动态物体 的接近度等等。
除了提供调整自动驾驶车辆的速度的指令之外,计算设备还可以提供修改车辆100的 转向角的指令,以使得自动驾驶车辆遵循给定的轨迹和/或维持与自动驾驶车辆附近的物 体(例如,道路上的相邻车道中的轿车)的安全横向和纵向距离。
上述车辆100可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车和手推车等,本申请实施例不 做特别的限定。
图2是本申请实施例提供的自动驾驶***的示意图。
如图2所示的自动驾驶***包括计算机***101,其中,计算机***101包括处理器103,处理器103和***总线105耦合。处理器103可以是一个或者多个处理器,其中每 个处理器都可以包括一个或多个处理器核。显示适配器(video adapter)107,显示适配器 可以驱动显示器109,显示器109和***总线105耦合。***总线105通过总线桥111和 输入输出(I/O)总线113耦合。I/O接口115和I/O总线耦合。I/O接口115和多种I/O设备 进行通信,比如输入设备117(如:键盘,鼠标,触摸屏等),多媒体盘(media tray)121, (例如,CD-ROM,多媒体接口等)。收发器123(可以发送和/或接受无线电通信信号), 摄像头155(可以捕捉静态和动态数字视频图像)和外部USB接口125。其中,可选地, 和I/O接口115相连接的接口可以是USB接口。
其中,处理器103可以是任何传统处理器,包括精简指令集计算(reducedinstruction set computer,RISC)处理器、复杂指令集计算(complex instruction setcomputer,CISC)处理器 或上述的组合。可选地,处理器可以是诸如专用集成电路(application specific integrated circuit,ASIC)的专用装置。可选地,处理器103可以是神经网络处理器或者是神经网络 处理器和上述传统处理器的组合。
可选地,在本文所述的各种实施例中,计算机***101可位于远离自动驾驶车辆的地 方(例如,计算机***101可位于云端或服务器),并且可与自动驾驶车辆无线通信。在其它方面,本文所述的一些过程在设置在自动驾驶车辆内的处理器上执行,其它由远程处理器执行,包括采取执行单个操纵所需的动作。
计算机101可以通过网络接口129和软件部署服务器149通信。网络接口129是硬件网络接口,比如,网卡。网络127可以是外部网络,比如因特网,也可以是内部网络,比 如以太网或者虚拟私人网络(virtual private network,VPN)。可选地,网络127还可以是 无线网络,比如WiFi网络,蜂窝网络等。
硬盘驱动接口和***总线105耦合。硬件驱动接口和硬盘驱动器相连接。***内存135和***总线105耦合。运行在***内存135的数据可以包括计算机101的操作***137 和应用程序143。
操作***包括解析器139(shell)和内核(kernel)141。shell是介于使用者和操作系 统之内核(kernel)间的一个接口。shell是操作***最外面的一层。shell管理使用者与操 作***之间的交互:等待使用者的输入,向操作***解释使用者的输入,并且处理各种各 样的操作***的输出结果。
内核141由操作***中用于管理存储器、文件、外设和***资源的那些部分组成。直 接与硬件交互,操作***内核通常运行进程,并提供进程间的通信,提供CPU时间片管理、中断、内存管理、IO管理等等。
应用程序143也可以存在于软件部署服务器149(deploying server)的***上。在一 个实施例中,在需要执行应用程序143时,计算机***101可以从软件部署服务器149(deploying server)下载应用程序143。
传感器153和计算机***101关联。传感器153用于探测计算机101周围的环境。举例来说,传感器153可以探测动物,汽车,障碍物和人行横道等,进一步传感器还可以探 测上述动物,汽车,障碍物和人行横道等物体周围的环境,比如:动物周围的环境,例如, 动物周围出现的其他动物,天气条件,周围环境的光亮度等。传感器153还可以用于获取 车辆的状态信息。例如,传感器153可以探测车辆的位置、车辆的速度、车辆的加速度和 车辆的姿态等车辆的状态信息。可选地,如果计算机101位于自动驾驶车辆上,传感器可 以是摄像头,红外线感应器,化学检测器,麦克风等。
本申请中的技术方案可以应用于上述车辆(例如,自动驾驶车辆)的车载的传感器系 统的任务部署(或者,也可以称为任务编排)中。
图3为本申请实施例适用的一种传感器***的架构示意图。应理解,图3所示的架构 300仅为示例而非限定,架构300中可以包括更多或更少的步骤,本申请实施例中对此并不限定。
如图3所示,架构300可以包括车辆310、控制器320及传感器***330。
其中,车辆310可以为上述图1中的车辆100;控制器320可以为自动驾驶的域控制器(domain control unit,DCU),控制器320可以包括一个或多个处理器,该处理器可以 为高性能的多核处理器;传感器***330可以包括图1中所示的全球定位***122、惯性 测量单元124、雷达126、激光测距仪128及相机130等传感器,所述雷达126可以为毫 米波雷达、激光雷达、超声波雷达或其他雷达等,传感器***330还可以包括其他传感器, 本申请实施例中对此均不作限定。
根据本申请实施例中的多任务部署方法,可以将图3中传感器***330的多任务部署 在控制器320上(例如,部署在控制器320中的多个处理器上),从而可以提高多任务部署的效率。
图4是本申请实施例提供的多任务部署的方法400的示意性流程图。
图4所示的方法400可以包括步骤410、步骤420、步骤430、步骤440及步骤450, 应理解,图4所示的方法400仅为示例而非限定,方法400中可以包括更多或更少的步骤, 本申请实施例中对此并不限定,下面分别对这几个步骤进行详细的介绍。
图4所示的方法400可以由图1中的车辆100中的处理器113执行、或者,方法400 也可以由图2中的自动驾驶***中的处理器103执行,或者,方法400还可以由图3中的 控制器320执行。
S410,获取目标平台的第一信息。
其中,所述目标平台可以包括多个节点,所述第一信息可以用于表示所述目标平台的 属性。
可选地,所述目标平台可以车辆(例如,该车辆可以为自动驾驶车辆)的车载平台,所述目标平台中的多个节点可以包括计算节点(例如,芯片或处理器等)、存储节点(例 如,硬盘、内存或其他存储设备)及传输节点(例如,用于传输的接口或端口等)等。
需要说明的是,上述实施例仅为示例而非限定,所述目标平台中还可以包括其他类型 的节点,本申请实施例中对此并不限定。
例如,所述目标平台可以为自动驾驶车辆的片上***(Systemonachip,SoC)。
可选地,所述目标平台可以用于部署该车辆的传感器平台,或者说,在所述目标平台 上部署该车辆的传感器平台。
进一步地,所述第一信息可以包括用于指示所述目标平台中的节点的个数、所述多个 节点中的每个节点的类型、所述每个节点的能力、所述目标平台的功耗模式及各功耗模式 的触发条件的信息。
例如,所述第一信息可以用于指示所述目标平台中的节点的个数为10个,所述10个 节点包括4个计算节点(比如,芯片1、芯片2、芯片3及芯片4)、4个存储节点(比如, 硬盘1、硬盘2、硬盘3及硬盘4)及2个传输节点(比如,I/O接口1及I/O接口2)。
S420,获取待部署的多个任务的第二信息。
其中,所述第二信息可以用于表示所述多个任务的需求。
所述多个任务可以为车辆的传感器***中的各个传感器运行后得到的任务。
所述传感器***可以包括多个传感器,例如,所述传感器***可以包括全球定位***、 惯性测量单元、毫米波雷达、激光雷达、超声波雷达、激光测距仪、相机或其他传感器, 本申请实施例中对此均不作限定。
进一步地,所述第二信息可以包括用于指示所述多个任务中的任务的个数、所述多个 任务的依赖关系、所述多个任务中的每个任务的时间约束及执行所述每个任务需要的资源 的信息。
例如,所述多个任务中的任务的个数为4个(比如,分别为任务A、任务B、任务C 及任务D);所述多个任务的依赖关系可以包括:任务B需要先运行任务A、并在任务A 运行结束之后才能开始运行,任务C和任务D需要同时运行;所述多个任务中的每个任 务的时间约束可以包括:任务A需要在传感器***启动后的100毫秒(ms)之后才能开 始运行;所述每个任务需要的资源可以包括:任务A在每个计算节点中运行时需要的计算 资源、以及相应的存储资源及传输资源。
其中,所述每个任务需要的资源可以通过在所述目标平台上电运行所述每个任务的方 式来获取。
需要说明的是,由于所述目标平台中的多个节点的能力可能不同,因此,所述每个任 务在不同节点需要的资源可能不同。
例如,芯片1的计算能力强于芯片2,任务A在芯片1运行时需要的计算资源少于任务A在芯片2运行时需要的计算资源,相应地,任务A在芯片1运行时需要的存储资源 也可能小于任务A在芯片1运行时需要的存储资源,任务A在芯片1运行时需要的传输 资源也可能小于任务A在芯片1运行时需要的传输资源。
可选地,所述第二信息还可以包括用于指示所述每个任务的执行时间、所述每个任务 的周期约束、所述每个任务的前置依赖及所述每个任务与(所述多个任务中的)其他任务 之间的互斥属性等的信息。
或者,所述第二信息还可以包括其他用于表示所述多个任务的需求的信息,本申请实 施例中对此并不限定。
S430,基于形式化语言对所述第一信息及所述第二信息进行形式化描述,得到形式化 模型。
其中,所述形式化语言(formal language)可以指用精确的数学或机器可处理的公式 定义的语言。
例如,所述形式化语言可以通过正则文法,上下文无关文法,上下文相关文法,和无 约束文法等进行形式化描述。
或者,所述形式化语言也可以通过其他方式(或其他形式)进行形式化描述,本申请 实施例中对此并不限定。
可选地,所述形式化模型可以包括所述目标平台的属性及所述多个任务的需求的形式 化描述。
例如,所述形式化模型可以包括:计算节点(例如,芯片或处理器等)、存储节点(例如,硬盘、内存或其他存储设备)及传输节点(例如,用于传输的接口或端口等)等的形 式化描述。
再例如,所述形式化模型还可以包括:所述多个任务中的任务的个数、所述多个任务 的依赖关系、所述多个任务中的每个任务的时间约束、执行所述每个任务需要的资源、所 述每个任务的执行时间、所述每个任务的周期约束、所述每个任务的前置依赖及所述每个 任务与(所述多个任务中的)其他任务之间的互斥属性等的形式化描述。
需要说明的是,上述实施例仅为示例而非限定,所述形式化模型还可以包括其他类型 信息的形式化描述,本申请实施例中对此并不限定。
S440,使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署 策略。
其中,所述状态机可以包括平台状态机和任务状态机。
可选地,所述平台状态机可以包括平台的功耗模式、各功耗模式间的切换条件及各功 耗模式的资源约束。所述平台状态机可以为有限状态机(finitestate machine,FSM)。
例如,如图5所示,所述平台的功耗模式可以包括正常模式、低功耗模式、休眠模式等,各功耗模式间的切换条件可以包括环境温度、域控制器主动发起等,各功耗模式的资源约束可以包括计算节点休眠、计算节点降频等。
需要说明的是,上述图5中的平台状态机仅为示例而非限定,所述平台状态机还可以 包括其他的功耗模式,各功耗模式间的切换条件还可以包括其他的切换条件,各功耗模式 的资源约束也可以包括其他的资源约束,本申请实施例中对此并不限定。
同时,所述平台状态机还可以包括其他状态或条件,本申请实施例中对所述平台状态 机的具体形式并不作限定。
可选地,所述任务状态机可以包括任务状态和各任务状态间切换条件。所述任务状态 机可以为有限状态机(finitestate machine,FSM)。
例如,如图6所示,所述任务状态可以包括等待态、就绪态、运行态、异常态及完成态等,所述任务间切换条件可以包括超时、前置任务状态、资源节点状态等。
需要说明的是,上述图6中的任务状态机仅为示例而非限定,所述任务状态机还可以 包括其他的任务状态,所述任务间切换条件还可以包括其他的切换条件,本申请实施例中 对此并不限定。
同时,所述任务状态机还可以包括其他状态或条件,本申请实施例中对所述任务状态 机的具体形式并不作限定。
可选地,根据S440生成所述多个任务的部署策略是否发生冲突,可以分为以下两种 情况。
情况一:
使用状态机,基于所述形式化模型进行形式化分析,确定所述多个任务的部署策略是 否发生冲突;在所述多个任务的部署策略未发生冲突的情况下,生成所述多个任务的部署 策略。
也就是说,在所述多个任务的部署策略未发生冲突的情况下,可以直接生成所述多个 任务的部署策略。
例如,如图7所示,在所述多个任务的部署策略未发生冲突的情况下,可以直接生成 所述多个任务的部署策略,根据所述部署策略对所述多个任务进行部署。
情况二:
使用状态机,基于所述形式化模型进行形式化分析,确定所述多个任务的部署策略是 否发生冲突;在所述多个任务的部署策略发生冲突的情况下,确定所述多个任务的部署策 略的冲突信息;根据所述冲突信息调整所述形式化模型。
其中,所述冲突信息可以包括发生冲突的任务、发生冲突的任务的类型、发生冲突的 时刻及冲突的范围等。
也就是说,在所述多个任务的部署策略发生冲突的情况下,可以确定所述多个任务的 部署策略的冲突信息,并根据所述冲突信息调整所述形式化模型。
或者,也可以根据所述冲突信息调整所述目标平台的属性和/或所述传感器***的需 求(或者说所述多个任务的需求),即根据所述冲突信息调整所述第一信息(中的内容) 或所述第二信息(中的内容)。
例如,如图7所示,在所述多个任务的部署策略发生冲突的情况下,可以根据所述冲 突信息对所述目标平台的属性和/或所述传感器***的需求(或者说所述多个任务的需求) 进行调整。
可选地,所述使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务 的部署策略,可以包括:
使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署策略及 所述目标平台的资源利用信息。
即,在生成所述部署策略的同时,生成所述目标平台的资源利用信息。
可选地,所述资源利用信息可以用于表示所述目标平台的资源利用情况。
例如,所述资源利用信息可以包括所述目标平台中各个节点运行的起止时刻及各个节 点的资源利用率等。需要说明的是,本申请实施例中对所述资源利用信息的具体内容并不 限定。
进一步地,所述方法400还可以包括步骤442。
S442,基于所述资源利用信息,在所述部署策略中增加任务;根据增加的任务,更新 所述资源利用信息。
例如,可以根据所述资源利用信息确定所述目标平台中的空闲节点,对等增加任务进 行形式化描述,随后在所述空闲节点上增加任务,生成新的部署策略,并同时更新所述资 源利用信息。
S450,根据所述部署策略对所述多个任务进行部署。
图8是本申请一个实施例提供的多任务部署的装置800的示意性框图。应理解,图8示出的多任务部署的装置800仅是示例,本申请实施例的装置800还可包括其他模块或单元。应理解,装置800能够执行图4的方法中的各个步骤,为了避免重复,此处不再详述。
在本申请实施例的一种可能的实现方式中,所述多任务部署的装置800可以包括:
第一获取单元810,用于获取目标平台的第一信息,所述第一信息用于表示所述目标 平台的属性;
第二获取单元820,用于获取待部署的多个任务的第二信息,所述第二信息用于表示 所述多个任务的需求;
形式化描述单元830,用于基于形式化语言对所述第一信息及所述第二信息进行形式 化描述,得到形式化模型;
形式化分析单元840,用于使用状态机,基于所述形式化模型进行形式化分析,生成 所述多个任务的部署策略;
部署单元850,用于根据所述部署策略对所述多个任务进行部署。
可选地,所述目标平台包括多个节点,所述第一信息包括用于指示所述目标平台中的 节点的个数、所述多个节点中的每个节点的类型、所述每个节点的能力、所述目标平台的 功耗模式及各功耗模式的触发条件的信息,所述第二信息包括用于指示所述多个任务中的 任务的个数、所述多个任务的依赖关系、所述多个任务中的每个任务的时间约束及执行所 述每个任务需要的资源的信息。
可选地,所述形式化分析单元840具体用于:使用状态机,基于所述形式化模型进行 形式化分析,确定所述多个任务的部署策略是否发生冲突;在所述多个任务的部署策略未 发生冲突的情况下,生成所述多个任务的部署策略。
可选地,所述形式化分析单元840具体用于:使用状态机,基于所述形式化模型进行 形式化分析,确定所述多个任务的部署策略是否发生冲突;在所述多个任务的部署策略发 生冲突的情况下,确定所述多个任务的部署策略的冲突信息;根据所述冲突信息调整所述 形式化模型。
可选地,所述形式化分析单元840具体用于:使用状态机,基于所述形式化模型进行 形式化分析,生成所述多个任务的部署策略及所述目标平台的资源利用信息。
可选地,所述装置还包括更新单元860,用于:基于所述资源利用信息,在所述部署策略中增加任务;根据增加的任务,更新所述资源利用信息。
可选地,所述状态机包括平台状态机和任务状态机,所述平台状态机包括平台的功耗 模式、各功耗模式间的切换条件及各功耗模式的资源约束,所述任务状态机包括任务状态 和各任务状态间切换条件。
应理解,这里的多任务部署的装置800以功能模块的形式体现。这里的术语“模块”可 以通过软件和/或硬件形式实现,对此不作具体限定。例如,“模块”可以是实现上述功能的 软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处 理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它 支持所描述的功能的合适组件。
作为一个示例,本申请实施例提供的多任务部署的装置800可以是自动驾驶***中的 车机(或处理器),或者,也可以是自动驾驶车辆中的控制器(例如,域控制器),或者,还可以是配置于车机中的芯片,以用于执行本申请实施例所述的方法。
图9是本申请一个实施例的多任务部署的装置900的示意性框图。图9所示的装置900包括存储器901、处理器902、通信接口903以及总线904。其中,存储器901、处理 器902、通信接口903通过总线904实现彼此之间的通信连接。
存储器901可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器901可以存储程序, 当存储器901中存储的程序被处理器902执行时,处理器902用于执行本申请实施例的多 任务部署的方法的各个步骤,例如,可以执行图4所示实施例的各个步骤。
处理器902可以采用通用的中央处理器(central processing unit,CPU),微处理器, 应用专用集成电路(application specific integrated circuit,ASIC),或者一个或多个集成电 路,用于执行相关程序,以实现本申请方法实施例的多任务部署的方法。
处理器902还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申 请实施例的多任务部署的方法的各个步骤可以通过处理器902中的硬件的集成逻辑电路 或者软件形式的指令完成。
上述处理器902还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、 专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者 其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本 申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理 器也可以是任何常规的处理器等。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或 者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、 只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储 介质中。该存储介质位于存储器901,处理器902读取存储器901中的信息,结合其硬件 完成本申请实施例中多任务部署的装置包括的单元所需执行的功能,或者,执行本申请方 法实施例的多任务部署的方法,例如,可以执行图4所示实施例的各个步骤/功能。
通信接口903可以使用但不限于收发器一类的收发装置,来实现装置900与其他设备 或通信网络之间的通信。
总线904可以包括在装置900各个部件(例如,存储器901、处理器902、通信接口903)之间传送信息的通路。
应理解,本申请实施例所示的装置900可以是自动驾驶***中的车机(或处理器),或者,也可以是自动驾驶车辆中的控制器(例如,域控制器),或者,还可以是配置于车 机中的芯片,以用于执行本申请实施例所述的方法。
应理解,本申请实施例中的处理器可以为中央处理单元(central processingunit,CPU), 该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专 用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、 分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包 括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只 读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM), 其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(randomaccess memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随 机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、 双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强 型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存 储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM, DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使 用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机 程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指 令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机 可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可 以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存 储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通 过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质 可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三 种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三 种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象 是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一 项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任 意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的 先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程 构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及 算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以 硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可 以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本 申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装 置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通 过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显 示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的 部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络 单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各 个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储 在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现 有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机 软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计 算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而 前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随 机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代 码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟 悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖 在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (17)

1.一种多任务部署的方法,其特征在于,包括:
获取目标平台的第一信息,所述第一信息用于表示所述目标平台的属性;
获取待部署的多个任务的第二信息,所述第二信息用于表示所述多个任务的需求;
基于形式化语言对所述第一信息及所述第二信息进行形式化描述,得到形式化模型;
使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署策略;
根据所述部署策略对所述多个任务进行部署。
2.根据权利要求1所述的方法,其特征在于,所述目标平台包括多个节点,所述第一信息包括用于指示所述目标平台中的节点的个数、所述多个节点中的每个节点的类型、所述每个节点的能力、所述目标平台的功耗模式及各功耗模式的触发条件的信息,所述第二信息包括用于指示所述多个任务中的任务的个数、所述多个任务的依赖关系、所述多个任务中的每个任务的时间约束及执行所述每个任务需要的资源的信息。
3.根据权利要求1或2所述的方法,其特征在于,所述使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署策略,包括:
使用状态机,基于所述形式化模型进行形式化分析,确定所述多个任务的部署策略是否发生冲突;
在所述多个任务的部署策略未发生冲突的情况下,生成所述多个任务的部署策略。
4.根据权利要求1或2所述的方法,其特征在于,所述使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署策略,包括:
使用状态机,基于所述形式化模型进行形式化分析,确定所述多个任务的部署策略是否发生冲突;
在所述多个任务的部署策略发生冲突的情况下,确定所述多个任务的部署策略的冲突信息;
根据所述冲突信息调整所述形式化模型。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署策略,包括:
使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署策略及所述目标平台的资源利用信息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
基于所述资源利用信息,在所述部署策略中增加任务;
根据增加的任务,更新所述资源利用信息。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述状态机包括平台状态机和任务状态机,所述平台状态机包括平台的功耗模式、各功耗模式间的切换条件及各功耗模式的资源约束,所述任务状态机包括任务状态和各任务状态间切换条件。
8.一种多任务部署的装置,其特征在于,包括:
第一获取单元,用于获取目标平台的第一信息,所述第一信息用于表示所述目标平台的属性;
第二获取单元,用于获取待部署的多个任务的第二信息,所述第二信息用于表示所述多个任务的需求;
形式化描述单元,用于基于形式化语言对所述第一信息及所述第二信息进行形式化描述,得到形式化模型;
形式化分析单元,用于使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署策略;
部署单元,用于根据所述部署策略对所述多个任务进行部署。
9.根据权利要求8所述的装置,其特征在于,所述目标平台包括多个节点,所述第一信息包括用于指示所述目标平台中的节点的个数、所述多个节点中的每个节点的类型、所述每个节点的能力、所述目标平台的功耗模式及各功耗模式的触发条件的信息,所述第二信息包括用于指示所述多个任务中的任务的个数、所述多个任务的依赖关系、所述多个任务中的每个任务的时间约束及执行所述每个任务需要的资源的信息。
10.根据权利要求8或9所述的装置,其特征在于,所述形式化分析单元具体用于:
使用状态机,基于所述形式化模型进行形式化分析,确定所述多个任务的部署策略是否发生冲突;
在所述多个任务的部署策略未发生冲突的情况下,生成所述多个任务的部署策略。
11.根据权利要求8或9所述的装置,其特征在于,所述形式化分析单元具体用于:
使用状态机,基于所述形式化模型进行形式化分析,确定所述多个任务的部署策略是否发生冲突;
在所述多个任务的部署策略发生冲突的情况下,确定所述多个任务的部署策略的冲突信息;
根据所述冲突信息调整所述形式化模型。
12.根据权利要求8至11中任一项所述的装置,其特征在于,所述形式化分析单元具体用于:
使用状态机,基于所述形式化模型进行形式化分析,生成所述多个任务的部署策略及所述目标平台的资源利用信息。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括更新单元,用于:
基于所述资源利用信息,在所述部署策略中增加任务;
根据增加的任务,更新所述资源利用信息。
14.根据权利要求8至13中任一项所述的装置,其特征在于,所述状态机包括平台状态机和任务状态机,所述平台状态机包括平台的功耗模式、各功耗模式间的切换条件及各功耗模式的资源约束,所述任务状态机包括任务状态和各任务状态间切换条件。
15.一种多任务部署的装置,其特征在于,包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述程序指令来执行权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序指令,当所述程序指令由处理器运行时,实现权利要求1至7中任一项所述的方法。
17.一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行如权利要求1至7中任一项所述的方法。
CN202011047346.9A 2020-09-29 2020-09-29 多任务部署的方法及装置 Pending CN114327842A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202011047346.9A CN114327842A (zh) 2020-09-29 2020-09-29 多任务部署的方法及装置
PCT/CN2021/119556 WO2022068643A1 (zh) 2020-09-29 2021-09-22 多任务部署的方法及装置
EP21874304.5A EP4209901A4 (en) 2020-09-29 2021-09-22 METHOD AND APPARATUS FOR MULTITASKING DEPLOYMENT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011047346.9A CN114327842A (zh) 2020-09-29 2020-09-29 多任务部署的方法及装置

Publications (1)

Publication Number Publication Date
CN114327842A true CN114327842A (zh) 2022-04-12

Family

ID=80949539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011047346.9A Pending CN114327842A (zh) 2020-09-29 2020-09-29 多任务部署的方法及装置

Country Status (3)

Country Link
EP (1) EP4209901A4 (zh)
CN (1) CN114327842A (zh)
WO (1) WO2022068643A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115687165B (zh) * 2023-01-05 2023-05-05 军事科学院***工程研究院网络信息研究所 一种需求层形式化验证方法及***

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298525B (zh) * 2014-09-25 2017-10-31 南京航空航天大学 复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理***
CN107045456B (zh) * 2016-02-05 2020-03-10 华为技术有限公司 一种资源分配方法及资源管理器
CN111027736B (zh) * 2019-07-30 2022-05-20 中国人民解放军国防科技大学 多目标优化下的微服务组合部署与调度方法
CN110532096B (zh) * 2019-08-28 2022-12-30 深圳市云存宝技术有限公司 一种多节点分组并行部署的***和方法
CN110532078A (zh) * 2019-08-29 2019-12-03 中国科学院软件研究所 一种边缘计算调度优化方法及***

Also Published As

Publication number Publication date
EP4209901A1 (en) 2023-07-12
WO2022068643A1 (zh) 2022-04-07
EP4209901A4 (en) 2023-12-27

Similar Documents

Publication Publication Date Title
WO2022027304A1 (zh) 一种自动驾驶车辆的测试方法及装置
CN110550029B (zh) 障碍物避让方法及装置
CN113879295B (zh) 轨迹预测方法及装置
CN110379193B (zh) 自动驾驶车辆的行为规划方法及行为规划装置
WO2021102955A1 (zh) 车辆的路径规划方法以及车辆的路径规划装置
CN112703506B (zh) 车道线检测方法及装置
CN113460042A (zh) 车辆驾驶行为的识别方法以及识别装置
CN113498529B (zh) 一种目标跟踪方法及其装置
WO2022062825A1 (zh) 车辆的控制方法、装置及车辆
CN113968242B (zh) 自动驾驶场景生成方法、装置及***
US20230048680A1 (en) Method and apparatus for passing through barrier gate crossbar by vehicle
CN112810603B (zh) 定位方法和相关产品
CN112585045A (zh) 电子机械制动方法和电子机械制动装置
CN114531913A (zh) 车道线检测方法、相关设备及计算机可读存储介质
CN115039095A (zh) 目标跟踪方法以及目标跟踪装置
WO2022061702A1 (zh) 驾驶提醒的方法、装置及***
WO2022068643A1 (zh) 多任务部署的方法及装置
US20230107033A1 (en) Method for optimizing decision-making regulation and control, method for controlling traveling of vehicle, and related apparatus
CN113859265B (zh) 一种驾驶过程中的提醒方法及设备
CN113799794B (zh) 车辆纵向运动参数的规划方法和装置
US20230256970A1 (en) Lane Change Track Planning Method and Apparatus
CN114556251B (zh) 用于确定车辆可通行空间的方法和装置
WO2022061725A1 (zh) 交通元素的观测方法和装置
WO2022001432A1 (zh) 推理车道的方法、训练车道推理模型的方法及装置
CN113701746A (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