CN115268336A - 硬件配置方法、装置、设备及存储介质 - Google Patents
硬件配置方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115268336A CN115268336A CN202210957837.XA CN202210957837A CN115268336A CN 115268336 A CN115268336 A CN 115268336A CN 202210957837 A CN202210957837 A CN 202210957837A CN 115268336 A CN115268336 A CN 115268336A
- Authority
- CN
- China
- Prior art keywords
- target
- hardware module
- hardware
- application
- target hardware
- 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
Links
Images
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/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- 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/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24215—Scada supervisory control and data acquisition
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Power Sources (AREA)
Abstract
本公开提供一种硬件配置方法、装置、设备及存储介质,涉及人工智能技术领域,具体涉及计算机、硬件配置、软件监控、自动驾驶等技术领域,可应用于自动驾驶车辆或自动驾驶计算平台动态配置硬件模块、优化功耗等场景下。具体实现方案包括:从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块;关闭目标硬件模块。本公开可以减小闲置的目标硬件模块所占用的带宽资源,降低闲置的目标硬件模块所造成的功耗。
Description
技术领域
本公开涉及人工智能技术领域,具体涉及计算机、硬件配置、软件监控、自动驾驶等技术领域,可应用于自动驾驶车辆或自动驾驶计算平台动态配置硬件模块、优化功耗等场景下,尤其涉及一种硬件配置方法、装置、设备及存储介质。
背景技术
自动驾驶计算平台可以用于对自动驾驶车辆进行数据分析、控制。自动驾驶计算平台可以包括操作系统和硬件层。其中,操作系统可以包括应用程序层和驱动层,应用程序层中部署了一个或多个上层应用程序,驱动层中部署了一个或多个驱动程序。硬件层中部署了一个或多个硬件模块,驱动层中的驱动程序可以驱动硬件层中对应的硬件模块运行。
在不同的应用场景下,自动驾驶计算平台中可能存在部分不需要用到的硬件模块。这部分不需要用到的硬件模块在当前应用场景下运行时会占据不必要的资源和造成不必要的功耗。
发明内容
本公开提供了一种硬件配置方法、装置、设备及存储介质,能够减小闲置的目标硬件模块所占用的带宽资源,降低闲置的目标硬件模块所造成的功耗。
根据本公开的第一方面,提供了一种硬件配置方法,所述方法包括:
从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块;关闭目标硬件模块。
根据本公开的第二方面,提供了一种硬件配置装置,所述装置包括:
查询单元,用于从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块;配置单元,用于关闭所述目标硬件模块。
根据本公开的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据第一方面所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面所述的方法。
根据本公开的第六方面,提供了一种自动驾驶车辆或自动驾驶计算平台,所述自动驾驶车辆或所述自动驾驶计算平台在运行时实现根据第一方面所述的方法。
本公开通过从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块,并关闭目标硬件模块,可以实现在至少一个目标应用程序所对应的应用场景下,根据目标应用程序与预设的硬件模块的数据交互情况,关闭闲置的目标硬件模块,从而实现了根据不同的应用场景,灵活地自动适配硬件模块。通过关闭闲置的目标硬件模块,减小了闲置的目标硬件模块所占用的带宽资源,降低了闲置的目标硬件模块所造成的功耗。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例提供的硬件配置方法的流程示意图;
图2为本公开实施例提供的自动驾驶计算平台的一种组成示意图;
图3为本公开实施例提供的图1中S101的一种实现流程示意图;
图4为本公开实施例提供的图1中S102的一种实现流程示意图;
图5为本公开实施例提供的自动驾驶计算平台的另一种组成示意图;
图6为本公开实施例提供的图5所示的场景中所涉及的交互流程示意图;
图7为本公开实施例提供的硬件配置装置的组成示意图;
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
应当理解,在本公开各实施例中,字符“/”一般表示前后关联对象是一种“或”的关系。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
自动驾驶计算平台可以用于对自动驾驶车辆进行数据分析、控制,通常可以在自动驾驶车辆的后台服务器上实现,或者,可以作为自动驾驶车辆的车载计算平台来实现。自动驾驶计算平台可以包括操作系统和硬件层。其中,操作系统可以包括应用程序层和驱动层,应用程序层中部署了一个或多个上层应用程序(如用于展示自动驾驶信息或对自动驾驶数据进行处理的应用程序等),驱动层中部署了一个或多个驱动程序。硬件层中部署了一个或多个硬件模块,驱动层中的驱动程序可以驱动硬件层中对应的硬件模块运行。也即,硬件模块可以连接驱动程序;驱动程序可以连接上层应用程序,为硬件模块到操作系统(或者说上层应用程序)提供接口以及协调二者之间的关系。
在不同的应用场景下,自动驾驶计算平台中可能存在部分不需要用到的硬件模块。这部分不需要用到的硬件模块在当前应用场景下运行时会占据不必要的资源和造成不必要的功耗。
目前,为提高自动驾驶计算平台的资源利用率和降低功耗,人工可以针对不同的应用场景,对自动驾驶计算平台的硬件模块进行动态配置,如:关闭部分不需要用到的硬件模块。
但是,随着自动驾驶技术的不断发展,自动驾驶计算平台的硬件设计越来越复杂,硬件模块的数量越来越多,硬件模块以及驱动程序与和上层应用程序的交互关系也越来越复杂、耦合越来越多,而人工对自动驾驶计算平台的硬件模块进行动态配置的方式灵活性较差,已经远远不能满足需求。
在此背景技术下,本公开提供了一种硬件配置方法,能够根据不同的应用场景,灵活地自动适配硬件模块,减小闲置的目标硬件模块所占用的带宽资源,降低闲置的目标硬件模块所造成的功耗。针对硬件设计越来越复杂的自动驾驶计算平台,该方法可以根据不同的应用场景,对自动驾驶计算平台实现高性价比的系统配置优化。
其中,不同的应用场景可以是指不同上层应用程序运行的场景。也即,不同的应用场景下,运行的上层应用程序不同,该不同可以包括上层应用程序的数量不同和/或类型不同。例如,一种应用场景中,运行的上层应用程序为应用1和应用2;另一种应用场景中,运行的上层应用程序为应用3和应用4。
可选地,上层应用程序可以是感知应用、决策应用、定位与规划应用等,在此对上层应用程序的类型不作限制。
该方法的执行主体可以是计算机或服务器,或者还可以是其他具有数据处理能力的设备。在此对该方法的执行主体不作限制。应当理解,对于自动驾驶计算平台而言,这里所述的计算机或服务器、又或者其他具有数据处理能力的设备均可以是自动驾驶计算平台的计算设备。
一些实施例中,服务器可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本公开对服务器的具体实现方式也不作限制。
可选地,本公开提供的硬件配置方法,可以适用于自动驾驶计算平台,减小自动驾驶计算平台中闲置的目标硬件模块所占用的带宽资源,降低自动驾驶计算平台中闲置的目标硬件模块所造成的功耗。或者,也可以适用于其他包括操作系统和硬件层的设备或平台,对其他设备或平台的硬件模块进行灵活地自动适配,在此对该硬件配置方法的适用对象并不限制。
下面将以自动驾驶计算平台为例,对该硬件配置方法进行示例性说明。
图1为本公开实施例提供的硬件配置方法的流程示意图。如图1所示,该方法可以包括:
S101、从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块。
示例性地,以自动驾驶计算平台为例,自动驾驶计算平台的硬件层可以包括:中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、现场可编程逻辑门阵列(field programmable gate array,FPGA)、微控制单元(microcontroller unit,MCU)等硬件模块。
对自动驾驶计算平台而言,S101中所述的预设的硬件模块可以是自动驾驶计算平台的硬件层中部署的一个或多个硬件模块。例如,可以人为设定哪几个硬件模块为预设的硬件模块。如:可以人为从自动驾驶计算平台的硬件层中部署的硬件模块中选择一个或多个硬件模块作为预设的硬件模块,或者,也可以将自动驾驶计算平台的硬件层中部署的全部硬件模块均作为预设的硬件模块。
通过人为设定预设的硬件模块可以使得目标硬件模块的选择范围更加灵活,能够根据人为设定的选择范围去筛选目标硬件模块。
如前文所述,自动驾驶计算平台的应用程序层中可以包括一个或多个上层应用程序。在本公开实施例中,S101中所述的目标应用程序即应用程序层中的上层应用程序。与预设的硬件模块类似,S101中所述的至少一个目标应用程序也可以是人为设定的。如:可以人为从自动驾驶计算平台的应用程序层中部署的上层应用程序中选择一个或多个上层应用程序作为目标应用程序,或者,也可以将自动驾驶计算平台的应用程序层中部署的全部上层应用程序均作为目标应用程序。也即,目标应用程序可以为至少一个。
可选地,不同的应用场景可以对应不同的目标应用程序的组合。例如,一种应用场景中,目标应用程序包括应用1和应用2;另一种应用场景中,目标应用程序包括应用3和应用4。
本公开实施例中,S101中可以比较每个预设的硬件模块与每个目标应用程序是否存在数据交互,从而从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的硬件模块作为目标硬件模块。
应当理解,S101所确定的目标硬件模块的数量可能为1个,也可能为多个,还可能为0个。当目标硬件模块的数量为0个,该方法可以不执行S102。
S102、关闭目标硬件模块。
本公开实施例中,在确定出目标硬件模块后,可以执行S102,以关闭目标硬件模块。
当目标硬件模块关闭后,目标硬件模块不再占用该目标硬件模块对应的驱动程序的总线资源,从而可以减少目标硬件模块在自动驾驶计算平台中所占用的带宽资源,另外,目标硬件模块所造成的功耗可以大大降低。
可以理解的,目标硬件模块与前述至少一个目标应用程序均没有数据交互,针对前述至少一个目标应用程序所对应的应用场景,目标硬件模块可以认为是闲置(或空闲)的硬件模块,关闭硬件模块也并不会影响前述至少一个目标应用程序所对应的应用场景下业务的正常运行。
由上所述,本公开实施例提供的硬件配置方法,通过从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块,并关闭目标硬件模块,可以实现在至少一个目标应用程序所对应的应用场景下,根据目标应用程序与预设的硬件模块的数据交互情况,关闭闲置的目标硬件模块,从而实现了根据不同的应用场景,灵活地自动适配硬件模块。通过关闭闲置的目标硬件模块,减小了闲置的目标硬件模块所占用的带宽资源,降低了闲置的目标硬件模块所造成的功耗。
尤其针对硬件设计越来越复杂的自动驾驶计算平台而言,该方法可以根据不同的应用场景,对自动驾驶计算平台实现高性价比的系统配置优化。
示例性,图2为本公开实施例提供的自动驾驶计算平台的一种组成示意图。如图2所示,假设自动驾驶计算平台包括操作系统和硬件层。其中,操作系统包括应用程序层和驱动层;应用程序层包括应用1、应用2、应用3,且应用1、应用2、应用3均为目标应用程序。驱动层包括驱动程序1、驱动程序2、驱动程序3。硬件层包括:硬件模块1、硬件模块2、硬件模块3,且硬件模块1、硬件模块2、硬件模块3均为预设的硬件模块。驱动程序1对应驱动硬件模块1,驱动程序2对应驱动硬件模块2,驱动程序3对应驱动硬件模块3。
在本公开实施例中,针对图2所示的场景,该硬件配置方法可以从硬件模块1、硬件模块2、以及硬件模块3中确定与应用1、应用2、以及应用3均没有数据交互的硬件模块作为目标硬件模块,并关闭该目标硬件模块。目标硬件模块可以是硬件模块1、硬件模块2、以及硬件模块3中的一个或多个。
以目标硬件模块为硬件模块1为例,该硬件配置方法通过关闭硬件模块1,可以减小闲置的硬件模块1所占用的带宽资源,降低闲置的硬件模块1所造成的功耗。
图3为本公开实施例提供的图1中S101的一种实现流程示意图。如图3所示,一些实施例中,S101可以包括:
S301、获取至少一个目标应用程序的初始化配置文件,每个目标应用程序的初始化配置文件包括与目标应用程序存在数据交互的硬件模块的标识信息。
在本公开实施例中,每个目标应用程序均可以包括该目标应用程序的初始化配置文件。初始化配置文件可以记录其对应的目标应用程序启动运行时所需要的一些初始化配置信息,如初始化配置参数。另外,初始化配置文件还可以包括与其对应的目标应用程序存在数据交互的硬件模块的标识信息。如:硬件模块的ID。
可以理解,硬件模块的标识信息可以用于在自动驾驶计算平台唯一标识硬件模块的身份。
S303、从预设的硬件模块中,确定标识信息在任意一个目标应用程序的初始化配置文件中均未出现的硬件模块作为目标硬件模块。
一些实施例中,S303可以通过查询每个目标应用程序的初始化配置文件,可以根据该目标应用程序的初始化配置文件中包括的硬件模块的标识信息,确定与该目标应用程序存在数据交互的硬件模块包括哪些。之后,可以将这些预设的硬件模块中与目标应用程序(可以是一个或多个)存在数据交互的硬件模块排除,剩余的硬件模块即与任意一个目标应用程序均没有数据交互(或者说与前述至少一个目标应用程序均没有数据交互)的目标硬件模块。该目标硬件模块即标识信息在任意一个目标应用程序的初始化配置文件中均未出现的硬件模块。
也即,这些预设的硬件模块中,当某个硬件模块的标识信息在任意一个目标应用程序的初始化配置文件中均未出现时,表示该硬件模块为闲置的目标硬件模块。另外一些实施例中,S303中可以直接从预设的硬件模块中,确定标识信息在任意一个目标应用程序的初始化配置文件中均未出现的硬件模块作为目标硬件模块。
本实施例中,通过获取至少一个目标应用程序的初始化配置文件,并从预设的硬件模块中,确定标识信息在任意一个目标应用程序的初始化配置文件中均未出现的硬件模块作为目标硬件模块,可以大大提升确定闲置的目标硬件模块的速度和准确度,更高效地确定闲置的目标硬件模块。
可选地,其他一些实施例中,也可以采用抓取目标应用程序与硬件模块之间地数据包、目标应用程序或硬件模块主动上报等方式,来判断哪些硬件模块为闲置的目标硬件模块,在此不作限制。
还有一些实施例中,S301可以包括:在至少两个不同的目标时刻获取至少一个目标应用程序的初始化配置文件,得到每个目标时刻对应的至少一个目标应用程序的初始化配置文件。S302可以包括:从预设的硬件模块中,确定标识信息在每个目标时刻对应的任意一个目标应用程序的初始化配置文件中均未出现的硬件模块作为目标硬件模块。
例如,以目标时刻包括第一时刻和第二时刻为例,首先可以在第一时刻获取至少一个目标应用程序的初始化配置文件,并从预设的硬件模块中,确定标识信息在第一时刻对应的任意一个目标应用程序的初始化配置文件中均未出现的硬件模块作为第一时刻对应的闲置硬件模块;然后,可以在第二时刻获取至少一个目标应用程序的初始化配置文件,并从预设的硬件模块中,确定标识信息在第二时刻对应的任意一个目标应用程序的初始化配置文件中均未出现的硬件模块作为第二时刻对应的闲置硬件模块。之后,可以将在第一时刻对应的闲置硬件模块中和第二时刻对应的闲置硬件模块中均出现的闲置硬件模块作为目标硬件模块。
可以理解的,这里仅以第一时刻和第二时刻为例,在实际实现时,还可以包括第三时刻、第四时刻等更多时刻,当某个硬件模块的标识信息在每个目标时刻对应的任意一个目标应用程序的初始化配置文件中均未出现时,该硬件模块可以作为目标硬件模块。
可选地,本实施例中在至少两个不同的目标时刻获取至少一个目标应用程序的初始化配置文件,从预设的硬件模块中,确定标识信息在每个目标时刻对应的任意一个目标应用程序的初始化配置文件中均未出现的硬件模块作为目标硬件模块,也可以理解为:对至少一个目标应用程序的初始化配置文件轮询至少两次,即每个目标时刻对应一次,当至少两次轮询中,某个硬件模块的标识信息在每次轮询时,均未出现在任意一个目标应用程序的初始化配置文件中时,该硬件模块可以作为目标硬件模块。示例性地,轮询次数可以为10次、15次等,在此不作闲置。
本实施例通过在至少两个不同的目标时刻获取至少一个目标应用程序的初始化配置文件,得到每个目标时刻对应的至少一个目标应用程序的初始化配置文件,从预设的硬件模块中,确定标识信息在每个目标时刻对应的任意一个目标应用程序的初始化配置文件中均未出现的硬件模块作为目标硬件模块,一方面可以提高确定闲置的目标硬件模块的准确性,保证某个硬件模块多次的确定结果均为闲置时才作为目标硬件模块;另一方面可以降低该硬件配置方法的灵敏度,避免关闭一些临时暂停数据交互的硬件模块。
可选地,本公开实施例中所述的初始化配置文件可以为可扩展标记语言(extensible markup language,XML)格式,且初始化配置文件还包括与目标应用程序相关的传感器的配置信息。
例如,目标应用程序可以是自动驾驶车辆的某个图像展示应用(如全景图像),图像展示应用的初始化配置文件可以包括摄像头、距离传感器等传感器的配置信息。
本实施例中,通过直接使用包括与目标应用程序相关的传感器的配置信息的初始化配置文件,作为前述包括与目标应用程序存在数据交互的硬件模块的标识信息的初始化配置文件,简化了应用程序的设计,降低了设计成本。
图4为本公开实施例提供的图1中S102的一种实现流程示意图。如图4所示,一些实施例中,S102可以包括:
S401、确定目标硬件模块的驱动程序。
S402、通过目标硬件模块的驱动程序关闭目标硬件模块。
例如,以本公开实施例提供的硬件配置方法应用于自动驾驶计算平台为例,本实施例中,自动驾驶计算平台在确定出闲置的目标硬件模块后,可以先确定目标硬件模块的驱动程序,然后通过目标硬件模块的驱动程序的通信接口向目标硬件模块的驱动程序下发一个指令(如关闭指令)。目标硬件模块的驱动程序接收到该指令后,可以执行关闭目标硬件模块的操作。
本实施例中,通过目标硬件模块的驱动程序关闭目标硬件模块,可以简化指令的交互流程和设计难度。例如,本实施例中仅需要对驱动程序执行关闭目标硬件模块进行适配修改即可,并不需要新增其他复杂的操作系统层面的指令来完成关闭目标硬件模块的操作。
可选地,其他一些实施例中,也可以通过CPU、MCU或其他方式(如系统组件)来关闭目标硬件模块,在此不做限制。
一些实施例中,本公开实施例中所述的关闭目标硬件模块,可以包括:关闭目标硬件模块的数据通讯接口。
示例性地,关闭目标硬件模块的操作可以直接在目标硬件模块的驱动程序的内部实现。例如,可以通过目标硬件模块的驱动程序将目标硬件模块总线(I2C/SPI/PCIe等)关闭,从而实现关闭目标硬件模块的数据通讯接口。当目标硬件模块的数据通讯接口关闭时,该目标硬件模块不再占用总线资源,相当于关闭了该目标硬件模块的数据IO,从而减小了该目标硬件模块占用的带宽资源。另外,由于该目标硬件模块的数据IO被关闭,所以也在一定程度上降低了该目标硬件模块造成的功耗。
本实施例中,通过关闭目标硬件模块的数据通讯接口,可以实现更加灵活地关闭目标硬件模块,能够在减小目标硬件模块占用的带宽资源、降低目标硬件模块造成的功耗地同时,避免了目标硬件模块后续因为重启时初始化所导致的延时。
另外一些实施例中,本公开实施例中所述的关闭目标硬件模块,可以包括:关闭目标硬件模块的电源。
示例性地,关闭目标硬件模块的操作可以通过自动驾驶计算平台的MCU来实现。例如,MCU可以包括一个通用输入/输出口(general-purpose input/output,GPIO),MCU可以通过GPIO对目标硬件模块的电源输入进行控制。当需要关闭目标硬件模块时,自动驾驶计算平台(或驱动程序)可以向MCU发送指令,MCU可以响应于指令,通过GPIO切断目标硬件模块的电源,实现关闭目标硬件模块。当目标硬件模块的电源关闭时,该目标硬件模块同样不再占用总线资源,相当于关闭了该目标硬件模块的数据IO,从而减小了该目标硬件模块占用的带宽资源。另外,由于该目标硬件模块的电源被关闭,该目标硬件模块不再产生功耗,从而明显降低了闲置的目标硬件模块造成的功耗,进而降低了自动驾驶计算平台的系统功耗。
本实施例中,通过关闭目标硬件模块的电源,可以实现更加彻底地关闭目标硬件模块,能够最大程度上降低目标硬件模块造成的功耗。
可选地,本公开实施例中,当目标硬件模块包括多个时,关闭目标硬件模块,包括:关闭多个目标硬件模块中的至少一个。
当目标硬件模块包括多个时,关闭多个目标硬件模块中的至少一个,也可以实现更灵活地关闭目标硬件模块。例如,多个目标硬件模块中可能存在部分目标硬件模块是不应该被关闭或者关闭后会影响某种性能地,那么可以提前将这部分目标硬件模块列入白名单,在关闭目标硬件模块时,可以选择性不关闭白名单上的目标硬件模块。
也即,本实施例中,关闭多个目标硬件模块中的至少一个,具体可以是指:按照预设规则关闭多个目标硬件模块中的至少一个。该预设规则中可以限定哪些目标硬件模块为白名单上的目标硬件模块,不应该被关闭。
可以理解的,前述实施例中所述的至少一个目标应用程序均部署于操作系统的应用程序层。可选地,本公开实施例中,应用程序层还包括代理应用程序。上述S101可以包括:代理应用程序从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块。上述S102可以包括:代理应用程序关闭目标硬件模块。
也即,本公开实施例所述的硬件配置方法可以通过部署在应用程序层中的一个代理应用程序来实现。代理应用程序也可以称为一个代理模块(agent)。
示例性地,图5为本公开实施例提供的自动驾驶计算平台的另一种组成示意图。如图5所示,假设自动驾驶计算平台的应用程序层包括应用1、应用2、应用3、以及代理应用程序,且应用1、应用2、应用3均为目标应用程序,代理应用程序用于实现本公开实施例所述的硬件配置方法。自动驾驶计算平台的驱动层包括GPU驱动程序。自动驾驶计算平台的硬件层包括:GPU1和GPU2两个预设的硬件模块。GPU驱动程序对应驱动GPU1和GPU2。也即,本公开实施例中,一个驱动程序可以对应驱动一个或多个硬件模块。
在本公开实施例中,针对图5所示的场景,该硬件配置方法可以从GPU1和GPU2中确定与应用1、应用2、以及应用3均没有数据交互的硬件模块作为目标硬件模块,并关闭该目标硬件模块。目标硬件模块可以是GPU1、或者GPU2、又或者GPU1和GPU2。
例如,针对图5所示的场景,在自动驾驶计算平台上电之后,GPU1和GPU2正常工作、且GPU1和GPU2共用GPU驱动程序。驱动程序对GPU1和GPU2分别可以进行单独配置。GPU驱动程序正常工作后,应用1、应用2、以及应用3都使用到了GPU资源(GPU1和/或GPU2的资源)进行响应的运算。
图6为本公开实施例提供的图5所示的场景中所涉及的交互流程示意图。如图6所示,代理应用程序可以读取应用1、应用2、以及应用3分别对应的初始化配置文件,通过对每个应用的初始化配置文件中GPU_ID(即GPU的标识信息,GPU1的标识信息可以为GPU_ID=1,GPU2的标识信息可以为GPU_ID=2)的读取,来判断每个应用与GPU1或GPU2之间是否存在数据交互(即是否使用了GPU1或GPU2)。如前述实施例中所述,这里代理应用程序可以轮询至少两次(如10次),当多次轮询的结果中,某个GPU的标识信息均未在应用1、应用2、以及应用3中任意一个应用的初始化配置文件中出现时,表示该GPU为闲置的GPU,可以作为目标硬件设备进行关闭。
请继续参考图6所示,当需要关闭某个GPU时,代理应用程序可以通过向GPU驱动程序发送关闭指令,指示GPU驱动程序关闭相应的GPU。例如,目标硬件设备可以是GPU2,代理应用程序可以通过向GPU驱动程序发送关闭指令,指示GPU驱动程序关闭GPU2。
示例性地,GPU驱动程序可以响应于关闭指令,关闭GPU2的数据通讯接口或电源。
以GPU驱动程序关闭GPU2的数据通讯接口为例,GPU驱动程序可以将GPU2的PCIe总线关闭,以切断GPU和CPU之间的数据交换,减小GPU2对另外一路PCIe总线(GPU1对应的总线)的带宽占用。
本实施例中,通过代理应用程序来实现本公开实施例所述的硬件配置方法,可以降低该方法的实现难度,减少开发成本。例如,开发人员只需要在应用程序层部署一个代理应用程序即可,并不需要对操作系统进行二次开发。
可选地,其他一些实施例中,代理模块也可以是一个系统服务或系统组件,在此并不作限制。
一般而言,自动驾驶运行设计域(operational design domain,ODD)应用场景非常丰富,传感器也有不同的配置,上层应用程序对于不同的应用场景对于硬件资源有不同的使用要求和资源利用,同时软件对不同的使用场景和硬件配置需要做很多兼容。而本公开实施例通过自适应的硬件配置,不用关心不同的使用场景,提升了软件的兼容性,降低了维护成本。
另外,在自动驾驶硬件设备中,系统功耗是非常重要的,影响车辆的行驶里程。而本公开实施例通过自适应的硬件模块配置,可以优化计算平台的功耗,提升系统的资源利用率。
示例性实施例中,本公开实施例还提供一种硬件配置装置,可以用于实现如前述实施例所述的硬件配置方法。图7为本公开实施例提供的硬件配置装置的组成示意图。如图7所示,该装置可以包括:查询单元701、配置单元702。
查询单元701,用于从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块。
配置单元702,用于关闭所述目标硬件模块。
可选地,查询单元701,具体用于获取至少一个目标应用程序的初始化配置文件,每个目标应用程序的初始化配置文件包括与目标应用程序存在数据交互的硬件模块的标识信息;从预设的硬件模块中,确定标识信息在任意一个目标应用程序的初始化配置文件中均未出现的硬件模块作为目标硬件模块。
可选地,查询单元701,具体用于在至少两个不同的目标时刻获取至少一个目标应用程序的初始化配置文件,得到每个目标时刻对应的至少一个目标应用程序的初始化配置文件;从预设的硬件模块中,确定标识信息在每个目标时刻对应的任意一个目标应用程序的初始化配置文件中均未出现的硬件模块作为目标硬件模块。
可选地,初始化配置文件为可扩展标记语言格式,且初始化配置文件还包括与目标应用程序相关的传感器的配置信息。
可选地,配置单元702,具体用于确定目标硬件模块的驱动程序;通过目标硬件模块的驱动程序关闭目标硬件模块。
可选地,配置单元702,具体用于关闭目标硬件模块的数据通讯接口。
可选地,配置单元702,具体用于关闭目标硬件模块的电源。
可选地,配置单元702,具体用于当目标硬件模块包括多个时,关闭多个目标硬件模块中的至少一个。
可选地,至少一个目标应用程序部署于操作系统的应用程序层;应用程序层还包括代理应用程序。代理应用程序包括查询单元701和配置单元702。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质、一种计算机程序产品、以及一种自动驾驶车辆或自动驾驶计算平台。
可选地,本公开实施例中所提到的自动驾驶车辆也可以是辅助驾驶车辆,在此不作限制。
示例性实施例中,电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上实施例所述的方法。该电子设备可以是上述自动驾驶车辆中部署的电子设备(如中控设备)、或者自动驾驶车辆的后台服务器、又或者控制自动驾驶车辆的计算机。
示例性实施例中,可读存储介质可以是存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据以上实施例所述的方法。
示例性实施例中,计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据以上实施例所述的方法。
示例性实施例中,自动驾驶车辆或自动驾驶计算平台在运行时实现根据以上实施例所述的方法。例如,自动驾驶车辆运行可以是指自动驾驶车辆启动后,自动驾驶车辆的操作系统运行。自动驾驶计算平台可以是控制自动驾驶车辆的后台或控制系统。自动驾驶车辆的操作系统或控制系统可以包括前述实施例中所述的应用程序层、驱动程序、硬件模块等。应用程序层可以包括前述实施例中所述的目标应用程序、代理应用等。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。该电子设备可以是与自动驾驶车辆连接以控制自动驾驶车辆的设备,也可以是部署于自动驾驶车辆上的设备(如车载中控设备)。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储电子设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如硬件配置方法。例如,在一些实施例中,硬件配置方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到电子设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的硬件配置方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行硬件配置方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (14)
1.一种硬件配置方法,所述方法包括:
从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块;
关闭所述目标硬件模块。
2.根据权利要求1所述的方法,所述从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块,包括:
获取所述至少一个目标应用程序的初始化配置文件,每个所述目标应用程序的初始化配置文件包括与所述目标应用程序存在数据交互的硬件模块的标识信息;
从所述预设的硬件模块中,确定标识信息在任意一个所述目标应用程序的初始化配置文件中均未出现的硬件模块作为所述目标硬件模块。
3.根据权利要求2所述的方法,所述获取所述至少一个目标应用程序的初始化配置文件,包括:
在至少两个不同的目标时刻获取所述至少一个目标应用程序的初始化配置文件,得到每个所述目标时刻对应的所述至少一个目标应用程序的初始化配置文件;
所述从所述预设的硬件模块中,确定标识信息在任意一个所述目标应用程序的初始化配置文件中均未出现的硬件模块作为所述目标硬件模块,包括:
从所述预设的硬件模块中,确定标识信息在每个所述目标时刻对应的任意一个所述目标应用程序的初始化配置文件中均未出现的硬件模块作为所述目标硬件模块。
4.根据权利要求2或3所述的方法,所述初始化配置文件为可扩展标记语言格式,且所述初始化配置文件还包括与所述目标应用程序相关的传感器的配置信息。
5.根据权利要求1-4任一项所述的方法,所述关闭所述目标硬件模块,包括:
确定所述目标硬件模块的驱动程序;
通过所述目标硬件模块的驱动程序关闭所述目标硬件模块。
6.根据权利要求1-5任一项所述的方法,所述关闭所述目标硬件模块,包括:
关闭所述目标硬件模块的数据通讯接口。
7.根据权利要求1-5任一项所述的方法,所述关闭所述目标硬件模块,包括:
关闭所述目标硬件模块的电源。
8.根据权利要求1-7任一项所述的方法,当所述目标硬件模块包括多个时,所述关闭所述目标硬件模块,包括:
关闭多个所述目标硬件模块中的至少一个。
9.根据权利要求1-8任一项所述的方法,所述至少一个目标应用程序部署于操作系统的应用程序层;所述应用程序层还包括代理应用程序;
所述从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块,包括:
所述代理应用程序从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块;
所述关闭所述目标硬件模块,包括:
所述代理应用程序关闭所述目标硬件模块。
10.一种硬件配置装置,所述装置包括:
查询单元,用于从预设的硬件模块中确定与至少一个目标应用程序均没有数据交互的目标硬件模块;
配置单元,用于关闭所述目标硬件模块。
11.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据权利要求1-9任一项所述的方法。
13.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9任一项所述的方法。
14.一种自动驾驶车辆或自动驾驶计算平台,所述自动驾驶车辆或所述自动驾驶计算平台在运行时实现根据权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210957837.XA CN115268336A (zh) | 2022-08-10 | 2022-08-10 | 硬件配置方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210957837.XA CN115268336A (zh) | 2022-08-10 | 2022-08-10 | 硬件配置方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115268336A true CN115268336A (zh) | 2022-11-01 |
Family
ID=83750916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210957837.XA Pending CN115268336A (zh) | 2022-08-10 | 2022-08-10 | 硬件配置方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115268336A (zh) |
-
2022
- 2022-08-10 CN CN202210957837.XA patent/CN115268336A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213611B (zh) | 跨进程通讯方法、装置、终端及存储介质 | |
CN113934464A (zh) | Linux系统中启动安卓应用的方法、装置和电子设备 | |
US8694992B2 (en) | Traversing memory structures to parse guest operating system instrumentation information in a hypervisor | |
CN113608812B (zh) | 远程控制方法、装置、系统及存储介质 | |
CN113986788B (zh) | 数据处理方法和装置、芯片、电子设备及介质 | |
CN107835089B (zh) | 管理资源的方法和装置 | |
CN109669787B (zh) | 数据传输方法及装置、存储介质、电子设备 | |
CN113849312A (zh) | 数据处理任务的分配方法、装置、电子设备及存储介质 | |
CN114077367A (zh) | Linux系统中实现安卓应用快捷方式的方法和装置 | |
US20150186102A1 (en) | Information processing device, terminal device, and image transmission management method | |
CN115567896A (zh) | 应用于车辆的通信方法、装置、电子设备、介质及车辆 | |
CN114064091A (zh) | Ota升级控制方法、装置、电子设备及自动驾驶车辆 | |
CN114417780A (zh) | 状态同步方法、装置、电子设备及存储介质 | |
US9170964B2 (en) | USB device interrupt signal | |
CN116980859A (zh) | 一种车辆和云端的信息同步交互方法及相关设备 | |
CN115268336A (zh) | 硬件配置方法、装置、设备及存储介质 | |
CN114170821B (zh) | 信号机的性能检测方法、装置、交通信号灯的控制系统 | |
CN115412580A (zh) | Phy芯片工作模式确定方法、装置、及自动驾驶车辆 | |
CN116016175A (zh) | 自动驾驶运营车辆的空中下载技术ota升级方法及其装置 | |
CN109933444A (zh) | 一种寄宿应用间的即时通讯方法 | |
CN114546444A (zh) | 车辆升级方法、装置、电子设备、介质及自动驾驶车辆 | |
CN115509850A (zh) | 日志处理方法、装置、设备、储存介质及计算机程序 | |
CN114398150A (zh) | 一种应用运行方法、装置、设备以及存储介质 | |
CN114564249A (zh) | 推荐调度引擎、推荐调度方法及计算机可读存储介质 | |
CN114567661A (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 |