一种自动驾驶负载均衡方法、装置、电子设备及存储介质转让专利

申请号 : CN202111144561.5

文献号 : CN114003371B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李丰军周剑光

申请人 : 中汽创智科技有限公司

摘要 :

本申请实施例提供一种自动驾驶负载均衡方法、装置、电子设备及存储介质,方法包括:确定数据采集模块对应的第一负载信息;接收计算模块发送的第二负载信息;若基于第二负载信息确定计算模块负载超载,则基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务;其中第二可迁移业务是负载均衡前由计算模块执行的业务中可迁移的业务,目标迁入业务是负载均衡后第二可迁移业务中由数据采集模块执行的业务;向计算模块发送第一通知消息。通过本申请实施例的一种自动驾驶负载均衡方法,可以动态地均衡数据采集模块和计算平台两部分负载,最大化地应用两侧的处理能力。

权利要求 :

1.一种自动驾驶负载均衡方法,其特征在于,应用于数据采集模块,所述方法包括:

确定所述数据采集模块对应的第一算力信息;

接收计算模块发送的第二算力信息;

基于所述第一算力信息和所述第二算力信息,确定负载权重;所述负载权重用于表征负载均衡后所述数据采集模块和所述计算模块的最佳负载配比;其中,所述第一算力信息包括第一CPU参数信息和第一内存参数信息,所述第二算力信息包括第二CPU参数信息和第二内存参数信息;

所有可迁移的业务在数据采集模块以及计算模块中均存在;

确定数据采集模块对应的第一负载信息;

接收计算模块发送的第二负载信息;

若基于所述第二负载信息确定所述计算模块负载超载,则基于所述第一负载信息和所述第二负载信息从第二可迁移业务中确定目标迁入业务;所述第二可迁移业务是负载均衡前由所述计算模块执行的业务中可迁移的业务;所述目标迁入业务是负载均衡后所述第二可迁移业务中由所述数据采集模块执行的业务;其中,所述第二可迁移业务包括位置信息的坐标系转换业务;

向所述计算模块发送第一通知消息,所述第一通知消息用于指示所述计算模块不执行所述目标迁入业务;

其中,所述第一负载信息包括第一总CPU占用率、第一总内存使用信息和第一可迁移业务的信息,所述第二负载信息包括第二总CPU占用率、第二总内存使用信息和所述第二可迁移业务的信息。

2.根据权利要求1所述的自动驾驶负载均衡方法,其特征在于,在所述接收计算模块发送的第二负载信息之后,所述方法还包括:若基于所述第一负载信息确定所述数据采集模块负载超载,和/或,基于所述第二负载信息确定所述计算模块负载余量充足,则基于所述第一负载信息和所述第二负载信息从所述第一可迁移业务中确定目标迁出业务;所述第一可迁移业务是负载均衡前由所述数据采集模块执行的业务中可迁移的业务;所述目标迁出业务是负载均衡后所述第一可迁移业务中由所述计算模块执行的业务;

向所述计算模块发送第二通知消息,所述第二通知消息用于指示所述计算模块执行所述目标迁出业务。

3.根据权利要求1所述的自动驾驶负载均衡方法,其特征在于,所述若基于所述第二负载信息确定所述计算模块负载超载,则基于所述第一负载信息和所述第二负载信息从第二可迁移业务中确定目标迁入业务,包括:若所述第二总CPU占用率大于第二总CPU占用率阈值,或所述第二总内存使用信息表征第二总内存使用量大于第二总内存使用量阈值,则确定所述计算模块负载超载,基于所述第一负载信息和所述第二负载信息从所述第二可迁移业务中确定目标迁入业务。

4.根据权利要求2所述的自动驾驶负载均衡方法,其特征在于,所述若基于所述第一负载信息确定所述数据采集模块负载超载,和/或,基于所述第二负载信息确定所述计算模块负载余量充足,则基于所述第一负载信息和所述第二负载信息从所述第一可迁移业务中确定目标迁出业务,包括:若所述第一总CPU占用率大于第一总CPU占用率阈值,或所述第一总内存使用信息表征第一总内存使用量大于第一总内存使用量阈值,则确定所述数据采集模块负载超载;和/或;

若所述第二总CPU占用率小于第三总CPU占用率阈值,且所述第二总内存使用信息表征第二总内存使用量小于第三总内存使用量阈值,则确定所述计算模块负载余量充足;

基于所述第一负载信息和所述第二负载信息从所述第一可迁移业务中确定目标迁出业务。

5.根据权利要求1所述的自动驾驶负载均衡方法,其特征在于,所述第一可迁移业务的信息包括多个第一可迁移业务对应的CPU占用率和内存使用信息,所述第二可迁移业务的信息包括多个第二可迁移业务对应的CPU占用率和内存使用信息。

6.根据权利要求5所述的自动驾驶负载均衡方法,其特征在于,所述若基于所述第二负载信息确定所述计算模块负载超载,则基于所述第一负载信息和所述第二负载信息从第二可迁移业务中确定目标迁入业务,包括:若基于所述第二负载信息确定所述计算模块负载超载,则基于所述负载权重、所述第一负载信息和所述第二负载信息,从所述第二可迁移业务中确定所述目标迁入业务。

7.一种自动驾驶负载均衡装置,其特征在于,所述装置包括:

权重确定模块,用于确定数据采集模块对应的第一算力信息;接收计算模块发送的第二算力信息;基于所述第一算力信息和所述第二算力信息,确定负载权重;所述负载权重用于表征负载均衡后所述数据采集模块和所述计算模块的最佳负载配比;其中,所述第一算力信息包括第一CPU参数信息和第一内存参数信息,所述第二算力信息包括第二CPU参数信息和第二内存参数信息;所有可迁移的业务在数据采集模块以及计算模块中均存在;

确定模块,用于确定数据采集模块对应的第一负载信息;

接收模块,用于接收计算模块发送的第二负载信息;

处理模块,用于若基于所述第二负载信息确定所述计算模块负载超载,则基于所述第一负载信息和所述第二负载信息从第二可迁移业务中确定目标迁入业务;所述第二可迁移业务是负载均衡前由所述计算模块执行的业务中可迁移的业务;所述目标迁入业务是负载均衡后所述第二可迁移业务中由所述数据采集模块执行的业务;其中,所述第二可迁移业务包括位置信息的坐标系转换业务;

通知模块,用于向所述计算模块发送第一通知消息,所述第一通知消息用于指示所述计算模块不执行所述目标迁入业务;

其中,所述第一负载信息包括第一总CPU占用率、第一总内存使用信息和第一可迁移业务的信息,所述第二负载信息包括第二总CPU占用率、第二总内存使用信息和所述第二可迁移业务的信息。

8.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现权利要求1‑6任意一项所述的自动驾驶负载均衡方法。

9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1‑6任意一项所述的自动驾驶负载均衡方法。

说明书 :

一种自动驾驶负载均衡方法、装置、电子设备及存储介质

技术领域

[0001] 本发明涉及汽车技术领域,尤其涉及一种自动驾驶负载均衡方法、装置、电子设备及存储介质。

背景技术

[0002] 随着自动驾驶技术的不断发展,实际使用中车辆自动驾驶功能的级别越来越高,自动驾驶在实际驾驶生活中的应用也越来越多。在高级别的自动驾驶控制系统中,涉及大量的数据的采集和处理,在数据感知、融合、决策、控制等多个环节对自动驾驶系统的算力都有极大的需求。自动驾驶的数据处理可以在车辆的数据采集模块和计算平台中进行,但是目前应用于两者的芯片的硬件算力还不足以满足L4级别的自动驾驶方案的需求。在单单依靠芯片自身的算力无法满足自动驾驶需求的情况下,需要通过负载动态均衡调度来调节自动驾驶的数据处理。
[0003] 目前应用于自动驾驶的负载均衡主要集中在单侧,基于单侧的操作系统提供的进程调度来进行负载均衡,这样数据采集模块和计算模块只能分开调节,导致负载均衡的效率和效果均受限。

发明内容

[0004] 针对现有技术存在的缺陷,本公开实施例提供一种自动驾驶负载均衡方法、装置、电子设备及存储介质,可以动态地均衡数据采集模块和计算平台两部分负载,最大化地应用两侧的处理能力。
[0005] 本申请实施例提供一种自动驾驶负载均衡方法,方法包括:确定数据采集模块对应的第一负载信息;接收计算模块发送的第二负载信息;若基于第二负载信息确定计算模块负载超载,则基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务;第二可迁移业务是负载均衡前由计算模块执行的业务中可迁移的业务;目标迁入业务是负载均衡后第二可迁移业务中由数据采集模块执行的业务;向计算模块发送第一通知消息,第一通知消息用于指示计算模块不执行目标迁入业务;其中,第一负载信息包括第一总CPU(central processing unit,中央处理器)占用率、第一总内存使用信息和第一可迁移业务的信息,第二负载信息包括第二总CPU占用率、第二总内存使用信息和第二可迁移业务的信息。
[0006] 具体地,在接收计算模块发送的第二负载信息之后,方法还包括:若基于第一负载信息确定数据采集模块负载超载,和/或,基于第二负载信息确定计算模块负载余量充足,则基于第一负载信息和第二负载信息从第一可迁移业务中确定目标迁出业务;第一可迁移业务是负载均衡前由数据采集模块执行的业务中可迁移的业务;目标迁出业务是负载均衡后第一可迁移业务中由计算模块执行的业务;向计算模块发送第二通知消息,第二通知消息用于指示计算模块执行目标迁出业务。
[0007] 具体地,若基于第二负载信息确定计算模块负载超载,则基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务,包括:若第二总CPU占用率大于第二总CPU占用率阈值,或第二总内存使用信息表征第二总内存使用量大于第二总内存使用量阈值,则确定计算模块负载超载,基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务。
[0008] 具体地,若基于第一负载信息确定数据采集模块负载超载,且基于第二负载信息确定计算模块负载余量充足,则基于第一负载信息和第二负载信息从第一可迁移业务中确定目标迁出业务,包括:若第一总CPU占用率大于第一总CPU占用率阈值,或第一总内存使用信息表征第一总内存使用量大于第一总内存使用量阈值,则确定数据采集模块负载超载;和/或;若第二总CPU占用率小于第三总CPU占用率阈值,且第二总内存使用信息表征第二总内存使用量小于第三总内存使用量阈值,则确定计算模块负载余量充足;基于第一负载信息和第二负载信息从第一可迁移业务中确定目标迁出业务。
[0009] 具体地,第一可迁移业务的信息包括多个第一可迁移业务对应的CPU占用率和内存使用信息,第二可迁移业务的信息包括多个第二可迁移业务对应的CPU占用率和内存使用信息。
[0010] 具体地,在确定数据采集模块对应的第一负载信息之前,方法还包括:确定数据采集模块对应的第一算力信息;接收计算模块发送的第二算力信息;基于第一算力信息和第二算力信息,确定负载权重;负载权重用于表征负载均衡后数据采集模块和计算模块的最佳负载配比;其中,第一算力信息包括第一CPU参数信息和第一内存参数信息,第二算力信息包括第二CPU参数信息和第二内存参数信息。
[0011] 具体地,若基于第二负载信息确定计算模块负载超载,则基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务,包括:若基于第二负载信息确定计算模块负载超载,则基于负载权重、第一负载信息和第二负载信息,从第二可迁移业务中确定目标迁入业务。
[0012] 本申请实施例提供一种自动驾驶负载均衡装置,装置包括:确定模块,用于确定数据采集模块对应的第一负载信息;接收模块,用于接收计算模块发送的第二负载信息;处理模块,用于若基于第二负载信息确定计算模块负载超载,则基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务;第二可迁移业务是负载均衡前由计算模块执行的业务中可迁移的业务;目标迁入业务是负载均衡后第二可迁移业务中由数据采集模块执行的业务;通知模块,用于向计算模块发送第一通知消息,第一通知消息用于指示计算模块不执行目标迁入业务;其中,第一负载信息包括第一总CPU(central processing unit,中央处理器)占用率、第一总内存使用信息和第一可迁移业务的信息,第二负载信息包括第二总CPU占用率、第二总内存使用信息和第二可迁移业务的信息。
[0013] 具体地,处理模块用于在接收计算模块发送的第二负载信息之后,若基于第一负载信息确定数据采集模块负载超载,和/或,基于第二负载信息确定计算模块负载余量充足,则基于第一负载信息和第二负载信息从第一可迁移业务中确定目标迁出业务;第一可迁移业务是负载均衡前由数据采集模块执行的业务中可迁移的业务;目标迁出业务是负载均衡后第一可迁移业务中由计算模块执行的业务;向计算模块发送第二通知消息,第二通知消息用于指示计算模块执行目标迁出业务。
[0014] 具体地,处理模块用于若第二总CPU占用率大于第二总CPU占用率阈值,或第二总内存使用信息表征第二总内存使用量大于第二总内存使用量阈值,则确定计算模块负载超载,基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务。
[0015] 具体地,处理模块用于若第一总CPU占用率大于第一总CPU占用率阈值,或第一总内存使用信息表征第一总内存使用量大于第一总内存使用量阈值,则确定数据采集模块负载超载;和/或;若第二总CPU占用率小于第三总CPU占用率阈值,且第二总内存使用信息表征第二总内存使用量小于第三总内存使用量阈值,则确定计算模块负载余量充足;基于第一负载信息和第二负载信息从第一可迁移业务中确定目标迁出业务。
[0016] 具体地,第一可迁移业务的信息包括多个第一可迁移业务对应的CPU占用率和内存使用信息,第二可迁移业务的信息包括多个第二可迁移业务对应的CPU占用率和内存使用信息。
[0017] 具体地,装置还包括负载权重确定模块,用于在确定数据采集模块对应的第一负载信息之前,确定数据采集模块对应的第一算力信息;接收计算模块发送的第二算力信息;基于第一算力信息和第二算力信息,确定负载权重;负载权重用于表征负载均衡后数据采集模块和计算模块的最佳负载配比;其中,第一算力信息包括第一CPU参数信息和第一内存参数信息,第二算力信息包括第二CPU参数信息和第二内存参数信息。
[0018] 具体地,处理模块用于若基于第二负载信息确定计算模块负载超载,则基于负载权重、第一负载信息和第二负载信息,从第二可迁移业务中确定目标迁入业务。
[0019] 相应地,本申请提供一种电子设备,包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述的自动驾驶负载均衡方法。
[0020] 相应地,本公开实施例提供一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述的自动驾驶负载均衡方法。
[0021] 本申请实施例具有如下有益效果:
[0022] (1)通过动态地均衡数据采集模块和计算平台两部分负载,尽可能避免两侧负载不均衡的情况,从而最大化地运用两侧的处理能力;
[0023] (2)负载均衡后,通过解析数据的参考标签可以获取数据是否被处理的信息,因此数据采集模块或者计算模块无需处理迁移业务数据中已经被处理过的数据,可以提高数据处理的效率,减少不必要的算力浪费;
[0024] (3)通过在优先保障计算模块负载不超载的同时,尽可能利用计算模块的处理能力,不仅可以避免数据处理延迟,还可以提高自动驾驶的数据处理效率。

附图说明

[0025] 为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0026] 图1是本申请实施例所提供的一种自动驾驶负载均衡方法的应用场景示意图;
[0027] 图2是本申请实施例所提供的一种自动驾驶负载均衡方法的第一流程示意图;
[0028] 图3是本申请实施例所提供的一种自动驾驶负载均衡方法的第二流程示意图;
[0029] 图4是本申请实施例所提供的一种自动驾驶负载均衡方法的第三流程示意图;
[0030] 图5是本申请实施例所提供的一种自动驾驶负载均衡方法的第四流程示意图;
[0031] 图6是本申请实施例所提供的一种自动驾驶负载均衡方法的第五流程示意图;
[0032] 图7是本申请实施例所提供的一种自动驾驶负载均衡装置的结构示意图;
[0033] 图8是本申请实施例所提供的一种自动驾驶负载均衡方法的服务器的硬件结构框图。

具体实施方式

[0034] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。显然,所描述的实施例仅仅是本申请一个实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0035] 此处所称的“实施例”是指可包含于本申请至少一个实现方式中的特定特征、结构或特性。在本申请实施例的描述中,需要理解的是,术语“上”、“下”、“左”、“右”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置/系统或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含的包括一个或者更多个该特征。而且,术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请实施例能够以除了在这里图示或描述以外的顺序实施。此外,术语“包括”和“具有”/“为”以及他们/其的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元/模块的过程、方法、系统/装置、产品或设备不必限于清楚地列出的那些步骤或单元/模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元/模块。
[0036] 请参阅图1,图1是本申请实施例提供的一种应用场景的示意图,包括车辆101,车辆101包括数据采集模块1011,以及计算模块1012。具体地,在本申请的应用场景中,车辆101的自动驾驶控制系统可以是L3、L4级别的,对数据感知、融合、决策、控制的多个环节的算力有极大的需求。其中,车辆101通过数据采集模块1011和计算模块1012可以进行数据的处理。数据采集模块1011可以采集传感器、定位信息、图像信息等各种数据,其中传感器可以包括毫米雷达波、激光、惯性传感器等;计算模块1012可以对数据进行融合决策控制。与此同时,由于数据采集模块1011也可以对数据进行处理,所以可以通过控制数据采集模块
1011和计算模块1012的负载平衡,来合理运用好双侧的处理能力,保证二者的芯片算力能够满足自动驾驶功能的需求。
[0037] 在一种具体地实施方式中,数据采集模块1011可以动态地确定需要在数据采集模块1011和计算模块1012之间迁移的业务,并将确定的结果通知计算模块1012,从而合理地使用两侧的计算能力,同时防止负载过高导致的数据处理延迟影响到自动驾驶的响应速度和安全度。具体地,可迁移的业务可以同时分别存在于数据采集模块1011和计算模块1012之中,迁移可以表征将本应由一侧处理的可迁移的业务改为由另一侧处理。
[0038] 下面介绍本申请提供的一种自动驾驶负载均衡方法的示例性流程。在本申请的方法实施例中,执行主语可以是数据采集模块。图2是本申请实施例提供的一种自动驾驶负载均衡方法的第一流程示意图,本说明书提供了如实施例或流程图所示的方法或者流程操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多执行顺序中的一种方式,不代表唯一的执行顺序,在实际执行时,可以按照实施例或者附图所示的方法或者流程顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,该方法包括:
[0039] 步骤S201:确定数据采集模块对应的第一负载信息。
[0040] 具体地,第一负载信息可以包括第一总CPU(central processing unit,中央处理器)占用率、第一总内存使用信息和第一可迁移业务的信息。第一总CPU(central processing unit,中央处理器)占用率、第一总内存使用信息和第一可迁移业务的信息均对应于数据采集模块。其中,第一可迁移业务可以是负载均衡前由数据采集模块执行的业务中可迁移的业务。第一可迁移业务的信息可以包括多个第一可迁移业务对应的CPU占用率和内存使用信息。
[0041] 具体地,步骤S201可以基于预设周期执行。
[0042] 步骤S202:接收计算模块发送的第二负载信息。
[0043] 具体地,第二负载信息可以包括第二总CPU占用率、第二总内存使用信息和第二可迁移业务的信息。第二总CPU占用率、第二总内存使用信息和第二可迁移业务的信息均对应于计算模块。其中,第二可迁移业务可以是负载均衡前由计算模块执行的业务中可迁移的业务。第二可迁移业务的信息可以包括多个第二可迁移业务对应的CPU占用率和内存使用信息。
[0044] 具体地,步骤S202可以基于预设周期执行,其执行周期可以和步骤S201一致。
[0045] 在一种具体的实施方式中,第一可迁移业务的内容可以和第二可迁移业务的内容完全相同,也就是说,所有可迁移的业务在数据采集模块以及计算模块中均存在。具体的,第一可迁移业务、第二可迁移业务可以包括位置信息的坐标系转换业务。
[0046] 在一种具体的实施方式中,由计算模块执行的业务可以包括第二可迁移业务和第二不可迁移业务,其中第二不可迁移业务可以是自动驾驶方案中的决策业务,例如驾驶决策业务等与汽车控制直接相关的业务。具体的,第二不可迁移业务还可以是根据用户业务需求确定的自动驾驶核心业务。
[0047] 步骤S203:判断是否基于第二负载信息确定计算模块负载超载;若是,转入步骤S204。
[0048] 步骤S204:基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务。
[0049] 具体地,目标迁入业务可以是负载均衡后第二可迁移业务中由数据采集模块执行的业务,也就是说,负载均衡后,目标迁入业务的执行主语由计算模块改为数据采集模块。通过执行步骤S204,可以确定从计算模块改为数据采集模块处理的业务,并且确定负载均衡后数据采集模块和计算模块分别处理哪些业务。
[0050] 下面基于图4进一步阐述步骤S203、S204。
[0051] 图4是本申请实施例提供的一种自动驾驶负载均衡方法的第三流程示意图。其中,步骤S401‑S403为图2中图示的步骤S203‑S204的示例性流程。在该示例性流程中。具体地如图4所示,该方法包括:
[0052] 步骤S401:判断是否第二总CPU占用率大于第二总CPU占用率阈值,或第二总内存使用信息表征第二总内存使用量大于第二总内存使用量阈值;若是,转入步骤S402。
[0053] 步骤S402:确定计算模块负载超载。
[0054] 步骤S403:基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务。
[0055] 在本申请实施例中,通过基于计算模块的CPU或者总内存的任一项超载,确定计算模块负载超载,并确定换由数据采集模块处理的目标迁入业务,可以在计算模块负载超载的时候减轻计算模块的负担。其中,步骤S401中的第二总CPU占用率阈值和第二总内存使用量阈值可以基于实际场景确定。
[0056] 下面继续基于图2阐述。如图2所图示,方法还包括:
[0057] 步骤S205:向计算模块发送第一通知信息。
[0058] 在一种具体的实施方式中,第一通知消息可以用于指示计算模块不执行目标迁入业务。在执行步骤S205的同时,数据采集模块开始将目标迁入业务纳入执行队列,目标迁入业务在数据采集模块中可以处于待处理或者开始处理的状态。
[0059] 在本申请实施例中,第一可迁移业务和第二可迁移业务可以分别由数据采集模块和计算模块处理,它们可能处于未处理或者队列中的状态,也可能处于处理中的状态。若确定出目标迁入业务的同时存在有目标迁入业务处于由计算模块处理中的状态,则第一通知信息可以用于指示计算模块发送目标迁入业务对应的数据至数据采集模块,且该数据打有参考标签,参考标签用于表征数据是否已被处理,数据采集模块通过解析数据的参考标签可以获取数据是否被处理的信息。如此,数据采集模块无需处理目标迁入业务的数据中已经被计算模块处理过的数据,可以提高数据处理的效率,减少不必要的算力浪费。
[0060] 在一种具体的实施方式中,通过基于预设频率周期性地执行步骤S201‑步骤S205,可以及时地处理计算模块负载超载导致的负载不均衡的情况,动态地均衡数据采集模块和计算平台两部分负载,从而最大化地运用两侧的处理能力。
[0061] 下面结合图6进一步阐述本申请实施例的一种自动驾驶负载均衡方法的步骤。图6是本申请实施例提供的一种自动驾驶负载均衡方法的第五流程示意图。在一种具体的实施方式中,在执行步骤S201之前,还包括步骤S601‑S603。具体地如图6所示,该方法包括:
[0062] 步骤S601:确定数据采集模块对应的第一算力信息。
[0063] 具体地,第一算力信息可以包括第一CPU参数信息和第一内存参数信息。第一CPU参数信息和第一内存参数信息均对应于数据采集模块。
[0064] 在一种具体的实施方式中,步骤S601可以在系统刚启动的时候执行。
[0065] 步骤S602:接收计算模块发送的第二算力信息。
[0066] 具体地,第二算力信息可以包括第二CPU参数信息和第二内存参数信息。第二CPU参数信息和第二内存参数信息均对应于计算模块。
[0067] 在一种具体的实施方式中,步骤S602可以在系统刚启动的时候执行。
[0068] 步骤S603:基于第一算力信息和第二算力信息,确定负载权重。
[0069] 在一种具体的实施方式中,负载权重可以用于表征负载均衡后数据采集模块和计算模块的最佳负载配比。需要注意的是,该最佳负载配比是在车辆总负载不超标的时候,数据采集模块和计算模块的最佳负载分配比例;若车辆总负载超标,则负载均衡方法将以保障计算模块负载不超标为首要目标,此时数据采集模块和计算模块的负载分配比例不是固定的数值。
[0070] 在一种具体的实施方式中,在图2中所图示的步骤S204中,可以基于负载权重、第一负载信息和第二负载信息,从第二可迁移业务中确定目标迁入业务。其中,在车辆总负载不超标的时候,可以基于负载权重确定数据采集模块和计算模块的负载分配比例,并且根据第一负载信息和第二负载信息表征的当前数据采集模块和计算模块各自的负载情况,以及各个第二可迁移业务的CPU占用率和内存使用信息,从第二可迁移业务中确定目标迁入业务,以保证负载均衡后的负载分配比例尽可能接近于负载权重。
[0071] 下面介绍本申请提供的另一种自动驾驶负载均衡方法的示例性流程。图3是本申请实施例提供的一种自动驾驶负载均衡方法的第二流程示意图,具体的如图3所示,该方法包括:
[0072] 步骤S301:确定数据采集模块对应的第一负载信息。
[0073] 步骤S302:接收计算模块发送的第二负载信息。
[0074] 步骤S303:判断是否基于第二负载信息确定计算模块负载超载;若是,转入步骤S304。
[0075] 步骤S304:基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务。
[0076] 步骤S305:向计算模块发送第一通知信息。
[0077] 具体地,步骤S301‑S305的详细描述请参照上文中对于步骤S201‑S205的阐述,此处不再赘述。
[0078] 步骤S306:判断是否基于第一负载信息确定数据采集模块负载超载;若是,转入步骤S307。
[0079] 步骤S307:判断是否基于第二负载信息确定计算模块负载余量充足;若是,转入步骤S308。
[0080] 步骤S308:基于第一负载信息和第二负载信息从第一可迁移业务中确定目标迁出业务。
[0081] 具体地,目标迁出业务可以是负载均衡后第一可迁移业务中由计算模块执行的业务,也就是说,负载均衡后,目标迁出业务的执行主语由数据采集模块改为计算模块。
[0082] 在一种具体的实施方式中,在步骤S301之前还可以包括图6中所图示的步骤S601‑S603;在步骤S308中,可以基于负载权重、第一负载信息和第二负载信息,从第一可迁移业务中确定目标迁出业务。具体地,在车辆总负载不超标的时候,可以基于负载权重确定数据采集模块和计算模块的负载分配比例,并且根据第一负载信息和第二负载信息表征的当前数据采集模块和计算模块各自的负载情况,包括CPU占用率信息和总内存使用量信息,以及各个第一可迁移业务的CPU占用率和内存使用信息,从第一可迁移业务中确定目标迁出业务,以保证负载均衡后的负载分配比例尽可能接近于负载权重。具体地,在车辆总负载超标的时候,若负载均衡后的负载分配比例接近于或者等于负载权重,则计算模块的负载超载;此时优先保障计算模块的负载在合理区间内,确定目标迁出业务,以使得迁出后的计算模块的负载接近于或者处于计算模块的最大负载能力,如调整使得第二总CPU占用率小于等于且接近于第二总CPU占用率阈值,且第二总内存使用信息表征第二总内存使用量小于且接近于第二总内存使用量阈值,以在保证计算模块不超载的同时,最大化使用计算模块的处理能力。
[0083] 在一种具体的实施方式中,S306‑S307还可以是:判断是否基于第一负载信息确定数据采集模块负载超载或者基于第二负载信息确定计算模块负载余量充足;若是,转入步骤S308。如此,即使在数据采集模块的负载未超载的情况下,如果计算模块负载余量充足,仍然可以将数据采集模块中的第一可迁移业务迁出。由于通常计算模块的硬件处理能力高于数据采集模块,因此可以最大化地利用计算模块,使自动驾驶的数据处理效率更高。
[0084] 下面基于图5进一步阐述步骤S306‑S308。
[0085] 图5是本申请实施例提供的一种自动驾驶负载均衡方法的第四流程示意图。其中,步骤S501‑S505为图3中图示的步骤SS06‑S308的示例性流程。在该示例性流程中。具体地如图5所示,该方法包括:
[0086] 步骤S501:判断是否第一总CPU占用率大于第一总CPU占用率阈值,或第一总内存使用信息表征第一总内存使用量大于第一总内存使用量阈值;若是,转入步骤S502。
[0087] 步骤S502:确定数据采集模块负载超载。
[0088] 步骤S503:判断是否第二总CPU占用率小于第三总CPU占用率阈值,且第二总内存使用信息表征第二总内存使用量小于第三总内存使用量阈值;若是,转入步骤S504。
[0089] 步骤S504:确定计算模块负载余量充足。
[0090] 步骤S505:基于第一负载信息和第二负载信息从第一可迁移业务中确定目标迁出业务。
[0091] 在本申请实施例中,通过基于数据采集模块的CPU或者总内存的任一项超载,确定数据采集模块负载超载,并基于计算模块的CPU和总内存均有余量,确定计算模块负载余量充足,然后确定换由计算模块处理的目标迁出业务,可以在数据采集模块负载超载、计算模块有负载余量的时候,减轻数据采集模块的负担,合理运用计算模块的负载余量。其中,步骤S501中的第一总CPU占用率阈值和第一总内存使用量阈值,以及步骤S503中的第三总CPU占用率阈值和第三总内存使用量阈值,均可以基于实际场景确定。其中,第三总CPU占用率阈值可以小于第二总CPU占用率阈值,第三总内存使用量阈值可以小于第二总CPU占用率阈值。
[0092] 在上文阐述中的S306‑S307的另一种实施方式中,S306‑S307是:判断是否基于第一负载信息确定数据采集模块负载超载或者基于第二负载信息确定计算模块负载余量充足;若是,转入步骤S308。在此具体的实施方式中,步骤S501‑步骤S502可以和步骤S503‑步骤S504可以是或的关系,也就是说,若步骤S501中判断结果为是,则执行步骤S502、S505;若步骤S503中判断结果为是,则执行步骤S504、S505。如此,在步骤S503中判断结果为是的情况中,即使数据采集模块的负载未超载,如果计算模块负载余量充足,仍然可以将数据采集模块中的第一可迁移业务迁出。由于通常计算模块的硬件处理能力高于数据采集模块,因此可以最大化地利用计算模块,使自动驾驶的数据处理效率更高。而在步骤S501中判断结果为是的情况中,数据采集模块负载超载,可以在执行步骤S505的时候,如果在基于第一负载信息和第二负载信息从第一可迁移业务中确定目标迁出业务的过程中确定不存在目标迁出业务可以满足负载均衡后计算模块不超载的要求,则不进行业务的迁出,优先保证计算模块的负载余量。
[0093] 下面继续基于图3阐述。如图3所图示,方法还包括:
[0094] 步骤S309:向计算模块发送第二通知信息。
[0095] 在一种具体的实施方式中,第二通知消息可以用于指示计算模块执行目标迁出业务。在执行步骤S309的同时,数据采集模块开始将目标迁出业务从执行队列中移除,目标迁出业务在计算模块中可以处于待处理或者开始处理的状态。
[0096] 在本申请实施例中,第一可迁移业务和第二可迁移业务可以分别由数据采集模块和计算模块处理,它们可能处于未处理或者队列中的状态,也可能处于处理中的状态。若确定出目标迁出业务的同时存在有目标迁出业务处于由数据采集模块处理中的状态,则数据采集模块可以发送目标迁出业务对应的数据至计算模块,且该数据打有参考标签,参考标签用于表征数据是否已被处理,计算模块通过解析数据的参考标签可以获取数据是否被处理的信息。如此,计算模块无需处理目标迁出业务的数据中已经被数据采集模块处理过的数据,可以提高数据处理的效率,减少不必要的算力浪费。
[0097] 在一种具体的实施方式中,通过基于预设频率周期性地执行步骤S301‑步骤S309,可以在计算模块有余量的时候,及时地处理数据采集模块负载超载导致的负载不均衡的情况,动态地均衡数据采集模块和计算平台两部分负载,从而最大化地运用两侧的处理能力。由于自动驾驶功能中的核心业务位于计算模块中,所以本申请实施例中的自动驾驶负载均衡方法可以优先保障计算模块的负载不超载,在计算模块的负载有余量的情况下,再根据实际情况确定目标迁出业务。
[0098] 相应地,本申请提供一种自动驾驶负载均衡装置。图7是本申请实施例所提供的一种自动驾驶负载均衡装置的结构示意图。如图 7所图示,自动驾驶负载均衡装置700包括:
[0099] 确定模块701,用于确定数据采集模块对应的第一负载信息。
[0100] 接收模块702,用于接收计算模块发送的第二负载信息。
[0101] 处理模块703,用于若基于第二负载信息确定计算模块负载超载,则基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务。
[0102] 具体地,第二可迁移业务可以是负载均衡前由计算模块执行的业务中可迁移的业务;目标迁入业务可以是负载均衡后第二可迁移业务中由数据采集模块执行的业务。
[0103] 通知模块704,用于向计算模块发送第一通知消息。
[0104] 具体地,第一通知消息可以用于指示计算模块不执行目标迁入业务。
[0105] 具体地,第一负载信息可以包括第一总CPU(central processing unit,中央处理器)占用率、第一总内存使用信息和第一可迁移业务的信息,第二负载信息包括第二总CPU占用率、第二总内存使用信息和第二可迁移业务的信息。
[0106] 具体地,处理模块703可以用于在接收计算模块发送的第二负载信息之后,若基于第一负载信息确定数据采集模块负载超载,和/或,基于第二负载信息确定计算模块负载余量充足,则基于第一负载信息和第二负载信息从第一可迁移业务中确定目标迁出业务;向计算模块发送第二通知消息。具体地,第一可迁移业务可以是负载均衡前由数据采集模块执行的业务中可迁移的业务;目标迁出业务可以是负载均衡后第一可迁移业务中由计算模块执行的业务;第二通知消息可以用于指示计算模块执行目标迁出业务。
[0107] 具体地,处理模块703可以用于若第二总CPU占用率大于第二总CPU占用率阈值,或第二总内存使用信息表征第二总内存使用量大于第二总内存使用量阈值,则确定计算模块负载超载,基于第一负载信息和第二负载信息从第二可迁移业务中确定目标迁入业务。
[0108] 具体地,处理模块703可以用于若第一总CPU占用率大于第一总CPU占用率阈值,或第一总内存使用信息表征第一总内存使用量大于第一总内存使用量阈值,则确定数据采集模块负载超载;和,或;若第二总CPU占用率小于第三总CPU占用率阈值,且第二总内存使用信息表征第二总内存使用量小于第三总内存使用量阈值,则确定计算模块负载余量充足,基于第一负载信息和第二负载信息从第一可迁移业务中确定目标迁出业务。
[0109] 具体地,第一可迁移业务的信息可以包括多个第一可迁移业务对应的CPU占用率和内存使用信息,第二可迁移业务的信息可以包括多个第二可迁移业务对应的CPU占用率和内存使用信息。
[0110] 具体地,装置还可以包括负载权重确定模块,用于在确定数据采集模块对应的第一负载信息之前,确定数据采集模块对应的第一算力信息;接收计算模块发送的第二算力信息;基于第一算力信息和第二算力信息,确定负载权重;负载权重用于表征负载均衡后数据采集模块和计算模块的最佳负载配比。具体地,第一算力信息可以包括第一CPU参数信息和第一内存参数信息,第二算力信息可以包括第二CPU参数信息和第二内存参数信息。
[0111] 具体地,处理模块703可以用于若基于第二负载信息确定计算模块负载超载,则基于负载权重、第一负载信息和第二负载信息,从第二可迁移业务中确定目标迁入业务。
[0112] 本申请实施例中的装置与方法实施例基于同样的申请构思。具体的,自动驾驶负载均衡装置700可以用于基于本申请的自动驾驶负载均衡方法,调节图1所图示的车辆101中的数据采集模块1011和计算模块1012的负载均衡。
[0113] 本申请实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图8是本申请实施例提供的自动驾驶负载均衡方法的服务器的硬件结构框图。如图8所示,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)810(中央处理器810可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器830,一个或一个以上存储应用程序823或数据822的存储介质820(例如一个或一个以上海量存储设备)。其中,存储器830和存储介质820可以是短暂存储或持久存储。存储在存储介质820的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器810可以设置为与存储介质820通信,在服务器800上执行存储介质820中的一系列指令操作。服务器800还可以包括一个或一个以上电源860,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口840,和/或,一个或一个以上操作系统821,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,
FreeBSDTM等等。
[0114] 输入输出接口840可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器800的通信供应商提供的无线网络。在一个实例中,输入输出接口840包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口840可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0115] 本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器800还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
[0116] 本申请实施例还提供一种电子设备,包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述的自动驾驶负载均衡方法。
[0117] 本申请实施提供一种存储介质,存储介质可设置于服务器之中以保存用于实现方法实施例中自动驾驶负载均衡方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述自动驾驶负载均衡方法。
[0118] 具体地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于包括:U盘、只读存储器(ROM,Read‑only Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0119] 在本发明中,除非另有明确的规定和限定,术语“相连”、“连接”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的相连或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0120] 需要说明的是:上述本申请实施例的先后顺序仅仅为了描述,不代表实施例的优劣,且上述本说明书对特定的实施例进行了描述,其他实施例也在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或者步骤可以按照不同的实施例中的顺序来执行并且能够实现预期的结果。另外,在附图中描绘的过程不一定要求示出特定顺序或者而连接顺序才能够实现期望的结果,在某些实施方式中,多任务并行处理也是可以的或者可能是有利的。
[0121] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的均为与其他实施例的不同之处。尤其,对于装置/系统的实施例而言,由于其基于相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0122] 以上是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。