CN111625949B - 一种仿真引擎***、仿真处理方法、设备和介质 - Google Patents
一种仿真引擎***、仿真处理方法、设备和介质 Download PDFInfo
- Publication number
- CN111625949B CN111625949B CN202010431771.1A CN202010431771A CN111625949B CN 111625949 B CN111625949 B CN 111625949B CN 202010431771 A CN202010431771 A CN 202010431771A CN 111625949 B CN111625949 B CN 111625949B
- Authority
- CN
- China
- Prior art keywords
- calculation
- clock
- simulation
- control module
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 200
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims abstract description 308
- 230000004044 response Effects 0.000 claims description 33
- 238000000034 method Methods 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种仿真引擎***、仿真处理方法、设备和介质,涉及自动驾驶技术,其中,该***包括:时钟控制模块,用于根据多节点调度模块发送的时钟推进指令,按照预设的时钟推进规则,依次向下推进虚拟时钟值;计算控制模块,用于根据多节点调度模块发送的计算指令进行仿真计算,并输出计算结果;多节点调度模块,用于根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令;根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,以并行调度各计算控制模块。本申请实施例保证了相同场景仿真结果的一致性,且提高了对资源的整体利用率,扩大了仿真的适用范围。
Description
技术领域
本申请实施例涉及计算机技术,具体涉及自动驾驶技术,尤其涉及一种仿真引擎***、仿真处理方法、设备和介质。
背景技术
自动驾驶技术中涉及的软件开发、自动驾驶***及整车验证与集成非常依赖于仿真技术的支撑,仿真技术为自动驾驶技术提供了安全检测和智能程度度量的能力。
现有技术在进行自动驾驶仿真时,主要有两种实现方式:1)基于物理时钟实现仿真***中计算模块的并行调度仿真。2)基于虚拟时钟实现仿真***中计算模块的串行调度仿真。
上述两个实现方式的缺陷在于:方案1)中由于使用物理时钟进行统一控制,没有对不同计算模块所需的时钟进行区别控制,无法保证相同场景仿真结果的一致性。方案2)运行过程对资源的整体利用率低,适用范围较为局限。
发明内容
本申请实施例公开一种仿真引擎***、仿真处理方法、设备和介质,以解决现有仿真技术中存在的无法保证相同场景仿真结果的一致性,以及对资源整体利用率低的问题。
第一方面,本申请实施例公开了一种仿真引擎***,包括:
仿真引擎以及多个计算控制模块,仿真引擎分别与各计算控制模块相连;仿真引擎中包括相连的时钟控制模块和多节点调度模块;
时钟控制模块,用于根据多节点调度模块发送的时钟推进指令,按照预设的时钟推进规则,依次向下推进虚拟时钟值;
计算控制模块,用于根据多节点调度模块发送的计算指令进行仿真计算,并输出计算结果;
多节点调度模块,用于根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令;根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,以并行调度各计算控制模块。
第二方面,本申请实施例公开了一种仿真处理方法,包括:
根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令,以指示时钟控制模块按照预设的时钟推进规则,依次向下推进虚拟时钟值;
根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,以并行调度各计算控制模块;
其中,所述计算指令用于指示计算控制模块进行仿真计算,并输出计算结果。
第三方面,本申请实施例还公开了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请实施例任一所述的仿真处理方法。
第四方面,本申请实施例还公开了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请实施例任一所述的仿真处理方法。
根据本申请实施例的技术方案,通过在仿真引擎中设置时钟控制模块,用于根据多节点调度模块发送的时钟推进指令,按照预设的时钟推进规则,依次向下推进虚拟时钟值;且设置有多节点调度模块,用于根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令,并根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,以并行调度各计算控制模块,从而实现了基于虚拟时钟实现计算控制模块的并行调度仿真,保证了相同场景仿真结果一致性的同时,提高了对资源的整体利用率,扩大了仿真的适用范围。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1A是根据本申请实施例公开的一种现有的仿真引擎***的结构示意图;
图1B是根据本申请实施例一公开的一种仿真引擎***的结构示意图;
图2是根据本申请实施例二公开的另一种仿真引擎***的结构示意图;
图3是根据本申请实施例三公开的一种仿真处理方法的流程图;
图4是根据本申请实施例公开的一种电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
仿真引擎的作用在于实现在虚拟场景回放过程中能够对各待检测车端模块进行合理调度,使得回放过程能够尽可能复现路测过程,借此还原路测效果,这也是仿真回放过程的价值所在。评判仿真回放过程的质量主要有两个标准:(1)模块调度的还原度:在仿真环境里,因为机器资源的限制,会出现模块计算效率相比车端机器环境有一定的衰减,对于不同时间复杂度和空间复杂度的计算模型,这种衰减的表现也不尽相同,因此仿真引擎需要克服这一问题,尽可能保留各模块调度拓扑结构。(2)消息一致性:场景回放要求复现问题,因此这种复现效果的稳定,因此消息一致性是场景复现可信度的重要指标。
申请人在研发过程中发现,现有的仿真引擎***通常情况下由仿真引擎模块和计算模块组成,如图1A所示,图1A为一种现有的仿真引擎***的结构示意图,其中包括一个仿真引擎以及与该仿真引擎相连的至少一个计算模块,其中计算模块分为车端模块和仿真模块。仿真引擎需要合理控制这些计算模块的调度顺序,并尽可能保证场景回放过程的可信度。现有的一种仿真方法为基于物理时钟实现计算模块的并行调度仿真,即按照车辆运行模式启动待测试车端模块和仿真模块,使得各模块在物理时钟下随机运行,通过调整仿真模块的触发时机来配合车端模块的运行,但这种方法由于是基于物理时钟,因此无法保证相同场景仿真结果的一致性。现有另一种仿真方法为基于虚拟时钟实现计算模块的串行调度仿真,即要求所有计算模块的消息拓扑能形成单调的串行结构,故而可以通过按拓扑结构顺序触发各计算模块的计算时机,形成消息闭环运行机制,此间,同时利用时钟控制手段设置虚拟时钟,然而这种方法由于以串行调度各计算模块,因此运行过程对资源的整体利用率低,适用范围较为局限。
如自动驾驶仿真蓝皮书里指出:“每个计算模块的任务不同,仿真消耗的资源不同,完成仿真任务的速度也就不同。使用真实时间对仿真节点进行同步约束很难保证他们的仿真结果一致性。计算机的模拟不同于现实情况,不需要严格遵守自然时间的流逝。每个计算模块的仿真频率是事先约定好的,只需要根据时间的流逝,按照设置的频率完成自身的仿真任务。”,因此,本申请中时钟控制是关键解决的问题之一。
图1B是根据本申请实施例一公开的一种仿真引擎***的结构示意图,本实施例可以适用于通过仿真驾驶环境,对待测试车端模块进行测试的情况。该仿真引擎***可执行本申请任一实施例所提供的一种仿真处理方法,该仿真引擎***可采用软件和/或硬件实现,并可集成在任意的具有计算能力的电子设备上,例如服务器等。
如图1B所示,本实施例公开的仿真引擎***可以包括:
仿真引擎10以及计算控制模块11、计算控制模块12和计算控制模块13,仿真引擎10分别与计算控制模块11、计算控制模块12和计算控制模块13相连;仿真引擎10中包括相连的时钟控制模块14和多节点调度模块15;在本实施例中,仅以三个计算控制模块为例,以对本实施例公开的仿真引擎***进行解释说明,而并不是对计算控制模块的具体数量的限定,在本申请的基础上,本领域技术人员在面对不同问题时,容易想到设置不同数量的计算控制模块。
时钟控制模块14,用于根据多节点调度模块15发送的时钟推进指令,按照预设的时钟推进规则,依次向下推进虚拟时钟值。
其中,时钟推进规则是根据各计算控制模块的计算速度预先制定的,时钟推进规则中包括若干的虚拟时钟值,每个虚拟时钟值都对应着至少一个计算控制模块,表示推进到该虚拟时钟值时,对应的计算控制模块需要进行仿真计算。例如,时钟推进规则包含虚拟时钟值2、5、9和10,虚拟时钟值“2”对应着计算控制模块A,虚拟时钟值“5”对应着计算控制模块B和计算控制模块C,虚拟时钟值“9”对应着计算控制模块D,虚拟时钟值“10”对应着计算控制模块E和计算控制模块F,则当虚拟时钟值推进到2时,计算控制模块A进行仿真计算;虚拟时钟值推进到5时,计算控制模块B和计算控制模块C进行仿真计算;虚拟时钟值推进到9时,计算控制模块D进行仿真计算;虚拟时钟值推进到10时,计算控制模块E和计算控制模块F进行仿真计算。
具体的,时钟控制模块14实时接收多节点调度模块15的时钟推进指令,当接收到时钟推进指令后,按照预设的时钟推进规则中的虚拟时钟值,将当前虚拟时钟值依次推进到下一虚拟时钟值。
计算控制模块,用于根据多节点调度模块15发送的计算指令进行仿真计算,并输出计算结果。
其中,计算控制模块包括待测试车端模块和仿真虚拟模块。待测试车端模块可以对无人驾驶车辆进行自动的车辆控制。仿真虚拟模块用于根据采集的环境数据模拟车辆的环境场景,进而通过将仿真虚拟模块与待测试车端模块进行配合,实现将待测试车端模块进行虚拟运行,从而支持对待测试车端模块涉及的算法进行优化的效果,并且由于是虚拟运行,避免了直接对自动驾驶车辆上路实测,效率低且会有安全风险的问题。
具体的,计算控制模块实时获取多节点调度模块15发送的计算指令进行,当接收到该计算指令后,根据各自对应的功能加载数据后进行计算,并输出计算结果。
多节点调度模块15,用于根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令;根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,以并行调度各计算控制模块。
具体的,多节点调度模块15与计算控制模块11、计算控制模块12和计算控制模块13相连,可实时获取各计算控制模块的计算结果,且与时钟控制模块14相连,可实时获取当前的虚拟时钟值。多节点调度模块15根据各计算控制模块的输出结果,确定当前输出结果是否满足时钟推进条件,若是则向时钟控制模块发送时钟推进指令,以控制时钟控制模块14按照预设的时钟推进规则,依次向下推进虚拟时钟值。同时,多节点调度模块15还会根据各计算控制模块的输出结果和/或当前的虚拟时钟值,确定是否满足任一计算控制模块的仿真计算条件,若是则向该计算控制模块发送计算指令,以控制该计算控制模块进行仿真计算,从而实现并行调度各计算控制模块的效果。
根据本实施例的技术方案,通过在仿真引擎中设置时钟控制模块,用于根据多节点调度模块发送的时钟推进指令,按照预设的时钟推进规则,依次向下推进虚拟时钟值;且设置有多节点调度模块,用于根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令,并根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,以并行调度各计算控制模块,从而实现了基于虚拟时钟实现计算控制模块的并行调度仿真,保证了相同场景仿真结果一致性的同时,提高了对资源的整体利用率,扩大了仿真的适用范围。
图2是根据本申请实施例二公开的另一种仿真引擎***的结构示意图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。如图2所示,该仿真引擎***可以包括:
仿真引擎10以及计算控制模块11、计算控制模块12和计算控制模块13,仿真引擎10分别与计算控制模块11、计算控制模块12和计算控制模块13相连;仿真引擎10中包括相连的时钟控制模块14和多节点调度模块15;在本实施例中,仅以三个计算控制模块为例,以对本实施例公开的仿真引擎***进行解释说明,而并不是对计算控制模块的具体数量的限定,在本申请的基础上,本领域技术人员在面对不同问题时,容易想到设置不同数量的计算控制模块。
在上述实施例的基础上,所述多节点调度模块15具体用于:
实时监控至少一个计算控制模块输出的计算结果;如果确定所述计算结果满足时钟推进条件,则向时钟控制模块发送时钟推进指令。
其中,时钟推进是根据各计算控制模块输出的计算结果确定的,即若当前各计算控制模块输出的计算结果满足了时钟推进条件中规定的计算结果,则时钟控制模块需要推进时钟。
示例性的,假设时钟推进条件中规定需要计算控制模块11以及计算控制模块12都输出了计算结果,则当多节点调度模块15监控到计算控制模块11以及计算控制模块12都输出了计算结果时,向时钟控制模块14发送时钟推进指令,以控制时钟控制模块14根据该时钟推进指令,将当前虚拟时钟值按照预设的时钟推进规则,推进到下一虚拟时钟值。
通过设置多节点调度模块实时监控至少一个计算控制模块输出的计算结果,如果确定计算结果满足时钟推进条件,则向时钟控制模块发送时钟推进指令,保证了本实例中时钟控制模块的虚拟时钟值的有序推进,进而保证了各计算控制模块根据推进后的虚拟时钟值进行仿真计算。
在上述实施例的基础上,所述仿真引擎中还包括:与所述时钟控制模块14相连的统计与监控模块26;
所述统计与监控模块26,用于实时监控至少一个计算控制模块输出的计算结果,和/或时钟控制模块的当前虚拟时钟值;根据所述计算结果,和/或当前虚拟时钟值,输出仿真过程信息;其中,仿真过程信息包括:仿真进度信息,和/或仿真故障信息。
具体的,统计与监控模块26根据从至少一个计算控制模块获取到的计算结果和/或从时钟控制模块14获取到的当前虚拟时钟值,与预设的仿真计划进行比对,以得到当前仿真进度信息和/或仿真故障信息。例如,根据当前虚拟时钟值与仿真计划中总虚拟时钟值,得到仿真进度信息;又例如,若当前虚拟时钟值时对应的计算结果,滞后于仿真计划中当前虚拟时钟值对应的期望计算结果,则生成仿真故障信息。
通过设置统计与监控模块,实时监控至少一个计算控制模块输出的计算结果,和/或时钟控制模块的当前虚拟时钟值,并根据计算结果,和/或当前虚拟时钟值,输出仿真过程信息,使得整个仿真引擎***的可控性更强。
在上述实施例的基础上,计算控制模块11包括:相连的适配器20以及计算单元21;计算控制模块12包括:相连的适配器22以及计算单元23;计算控制模块13包括:相连的适配器24以及计算单元25;仿真引擎分别与各计算控制模块中的适配器相连;
适配器,用于实时监控至少一个计算单元输出的计算结果,和/或时钟控制模块的当前虚拟时钟值;根据所述计算结果和/或当前虚拟时钟值,生成准备好响应发送至多节点调度模块。
具体的,在每个计算控制模块中,适配器实时监控至少一个计算单元的输出计算结果,以及实时监控仿真引擎10中时钟控制模块14的当前虚拟时钟值。并根据获取的输出的计算结果和/或当前虚拟时钟值,生成与适配器相连计算单元相匹配的准备好响应,并发送至多节点调度模块。
以本实施例为例,适配器20、适配器22和适配器24都可以实时监控计算单元21、计算单元23和计算单元25输出的计算结果,且适配器20、适配器22和适配器24都可以实时监控时钟控制模块14的当前虚拟时钟值。适配器20根据获取的输出的计算结果和/或当前虚拟时钟值,生成与计算单元21相匹配的准备好响应,并发送至多节点调度模块15;适配器22根据获取的输出的计算结果和/或当前虚拟时钟值,生成与计算单元23相匹配的准备好响应,并发送至多节点调度模块15;适配器24根据获取的输出的计算结果和/或当前虚拟时钟值,生成与计算单元25相匹配的准备好响应,并发送至多节点调度模块15。
其中,根据获取的输出的计算结果和/或当前虚拟时钟值,生成与计算单元相匹配的准备好响应,包括A、B和C三种情况:
A、若输出的计算结果满足该计算单元进行仿真计算所需的计算数据,则生成与该计算单元相匹配的准备好响应。
以适配器20以及与其相连的计算单元21为例,假设计算单元21进行仿真计算所需的计算数据为计算单元23和计算单元25输出的计算结果,则当适配器20监控到计算单元23和计算单元25的输出计算结果后,生成与计算单元21相匹配的准备好响应,并发送至多节点调度模块。
B、若当前虚拟时钟值为该计算单元在时钟推进规则中对应的虚拟时钟值,则生成与该计算单元相匹配的准备好响应。
以适配器20以及与其相连的计算单元21为例,假设计算单元21在时钟推进规则中对应的虚拟时钟值为“10”,若适配器20监控到时钟控制模块14的当前虚拟时钟值为“10”,则表示计算单元21需要开始进行仿真计算,则生成与计算单元21相匹配的准备好响应。
C、若输出的计算结果满足该计算单元进行仿真计算所需的计算数据,且当前虚拟时钟值为该计算单元在时钟推进规则中对应的虚拟时钟值,则生成与该计算单元相匹配的准备好响应。
以适配器20以及与其相连的计算单元21为例,假设计算单元21进行仿真计算所需的计算数据为计算单元23和计算单元25输出的计算结果;并且,计算单元21在时钟推进规则中对应的虚拟时钟值为“10”。若当适配器20监控到计算单元23和计算单元25的输出计算结果,且监控到时钟控制模块14的当前虚拟时钟值为“10”,则生成与计算单元21相匹配的准备好响应。
多节点调度模块15,具体用于:根据接收的准备好响应,向与所述准备好响应匹配的计算单元发送计算指令。
示例性的,假设多节点调度模块15接收到与计算单元21相匹配的准备好响应,则向计算单元21发送计算指令,以控制计算单元21进行仿真计算。
计算单元,用于根据接收的计算指令进行仿真计算,并输出计算结果。
以本实施例为例,计算单元21、计算单元23和计算单元25都实时接收多节点调度模块15发送的计算指令,当接收到计算指令后,加载各自所需的计算数据后进行仿真计算,并输出计算结果。
通过在计算模块中设置相连的适配器以及计算单元,且仿真引擎分别与各计算控制模块中的适配器相连,使得适配器可以根据监控得到的至少一个计算单元输出的计算结果和/或时钟控制模块的当前虚拟时钟值,生成与相连计算单元匹配的准备好响应,并发送至仿真引擎中的多节点调节模块,多节点调节模块根据接受的准备好响应,相对应的计算单元发送计算指令,最终该计算单元响应该计算指令,进行仿真计算,并输出计算结果,使得各计算单元都可以有序的进行仿真计算,保证了相同场景仿真结果一致性,并且多节点调节模块采用并行方式调用计算单元进行仿真计算,提高了对资源的整体利用率,扩大了仿真的适用范围。
在上述实施例的基础上,所述仿真引擎***内置于自动驾驶仿真***中;所述计算单元为自动驾驶车辆中感知组件中的计算单元,或者车机决策模块中的计算单元。
其中,感知组件包括但不限于高清摄像机或者高精雷达等。
通过将仿真引擎***内置于自动驾驶仿真***中,使得本实施例中的仿真引擎***能够完成与自动驾驶有关的仿真计算;通过将计算单元设置为自动驾驶车辆中感知组件中的计算单元,或者车机决策模块中的计算单元,保证了仿真引擎***能够获取仿真所需的环境数据以及,自动驾驶有关的驾驶数据。
图3是根据本申请实施例三公开的一种仿真处理方法的流程图,本实施例可以适用于通过仿真驾驶环境,对待测试车端模块进行测试的情况。本实施例方法可以由本发明实施例提供的任一仿真引擎***来执行,该装置可采用软件和/或硬件实现,并可集成在任意的具有计算能力的电子设备上,例如服务器等。
如图3所示,本实施例公开的仿真处理方法可以包括:
S301、根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令,以指示时钟控制模块按照预设的时钟推进规则,依次向下推进虚拟时钟值。
具体的,仿真引擎***中的多节点调度模块,根据检测到的时钟推进条件,向仿真引擎***中的时钟控制模块发送时钟推进指令,时钟控制模块接收到时钟推进指令后,按照预设的时钟推进规则,将当前的虚拟时钟值依次推进到下一个虚拟时钟值。
可选的,S301中“根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令”,包括:
实时监控至少一个计算控制模块输出的计算结果;如果确定所述计算结果满足时钟推进条件,则向时钟控制模块发送时钟推进指令。
其中,时钟推进是根据各计算控制模块输出的计算结果确定的,即若当前各计算控制模块输出的计算结果满足了时钟推进条件中规定的计算结果,则时钟控制模块需要推进时钟。
示例性的,假设时钟推进条件中规定需要计算控制模块11以及计算控制模块12都输出了计算结果,则当多节点调度模块监控到计算控制模块11以及计算控制模块12都输出了计算结果时,向时钟控制模块发送时钟推进指令,以控制时钟控制模块根据该时钟推进指令,将当前虚拟时钟值按照预设的时钟推进规则,推进到下一虚拟时钟值。
通过实时监控至少一个计算控制模块输出的计算结果,如果确定计算结果满足时钟推进条件,则向时钟控制模块发送时钟推进指令,保证了本实例中时钟控制模块的虚拟时钟值的有序推进,进而保证了各计算控制模块根据推进后的虚拟时钟值进行仿真计算。
S302、根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,以并行调度各计算控制模块;其中,所述计算指令用于指示计算控制模块进行仿真计算,并输出计算结果。
其中,仿真计算条件表示计算控制模块中的计算单元具备进行仿真计算的条件。
具体的,当多节点调度模块若确定检测到仿真计算条件,则与仿真计算条件匹配的计算控制模块中的计算单元,发送计算指令,该计算单元响应该计算指令,加载所需数据后进行仿真计算,得到输出的计算结果。
可选的,S302中“根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令”,包括:
如果接收到目标计算控制模块中的适配器发送的准备好响应,则确定检测到所述仿真计算条件;向所述目标计算控制模块中的计算单元发送所述计算指令。
其中,适配器根据获取的至少一个计算单元输出的计算结果和/或获取的时钟控制模块的当前虚拟时钟值,生成与其相连的计算单元相匹配的准备好响应。具体包括如下A、B和C三种情况:
A、若输出的计算结果满足该计算单元进行仿真计算所需的计算数据,则生成与该计算单元相匹配的准备好响应。
B、若当前虚拟时钟值为该计算单元在时钟推进规则中对应的虚拟时钟值,则生成与该计算单元相匹配的准备好响应。
C、若输出的计算结果满足该计算单元进行仿真计算所需的计算数据,且当前虚拟时钟值为该计算单元在时钟推进规则中对应的虚拟时钟值,则生成与该计算单元相匹配的准备好响应。
当多节点调度模块获取到某适配器发送的准备好响应,则向计算控制模块中与该适配器相连的计算单元发送计算指令,以控制该计算单元加载所需数据后进行仿真计算,并输出计算结果。
通过如果接收到目标计算控制模块中的适配器发送的准备好响应,则确定检测到所述仿真计算条件,并向目标计算控制模块中的计算单元发送所述计算指令,实现了并行调用计算单元进行仿真的技术效果,保证了相同场景仿真结果的一致性。
在本实施例中,通过根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令,以指示时钟控制模块按照预设的时钟推进规则,依次向下推进虚拟时钟值,并根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,以并行调度各计算控制模块,使得各计算单元都可以有序的进行仿真计算,保证了相同场景仿真结果一致性,并且多节点调节模块采用并行方式调用计算单元进行仿真计算,提高了对资源的整体利用率,扩大了仿真的适用范围。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图4所示,是根据本申请实施例的仿真处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图4所示,该电子设备包括:一个或多个处理器401、存储器402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图4中以一个处理器401为例。
存储器402即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的仿真处理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的仿真处理方法。
存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的仿真处理方法对应的程序指令/模块(例如,附图1A所示的多节点调度模块15)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的仿真处理方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据仿真处理方法的电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至仿真处理方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
仿真处理方法的电子设备还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。
输入装置403可接收输入的数字或字符信息,以及产生与仿真处理方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置404可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令,以指示时钟控制模块按照预设的时钟推进规则,依次向下推进虚拟时钟值,并根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,以并行调度各计算控制模块,使得各计算单元都可以有序的进行仿真计算,保证了相同场景仿真结果一致性,并且多节点调节模块采用并行方式调用计算单元进行仿真计算,提高了对资源的整体利用率,扩大了仿真的适用范围。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.一种仿真引擎***,其特征在于,包括:仿真引擎以及多个计算控制模块,仿真引擎分别与各计算控制模块相连;仿真引擎中包括相连的时钟控制模块和多节点调度模块;
时钟控制模块,用于根据多节点调度模块发送的时钟推进指令,按照预设的时钟推进规则,依次向下推进虚拟时钟值;
其中,时钟推进规则是根据各计算控制模块的计算速度预先制定的,时钟推进规则中包括若干的虚拟时钟值,每个虚拟时钟值都对应着至少一个计算控制模块,表示推进到该虚拟时钟值时,对应的计算控制模块需要进行仿真计算;
计算控制模块,用于根据多节点调度模块发送的计算指令进行仿真计算,并输出计算结果;
多节点调度模块,用于根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令;根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,以并行调度各计算控制模块。
2.根据权利要求1所述的仿真引擎***,其特征在于,计算控制模块包括:相连的适配器以及计算单元,仿真引擎分别与各计算控制模块中的适配器相连;
适配器,用于实时监控至少一个计算单元输出的计算结果,和/或时钟控制模块的当前虚拟时钟值;根据所述计算结果和/或当前虚拟时钟值,生成准备好响应发送至多节点调度模块;
多节点调度模块,具体用于:根据接收的准备好响应,向与所述准备好响应匹配的计算单元发送计算指令;
计算单元,用于根据接收的计算指令进行仿真计算,并输出计算结果。
3.根据权利要求1或2所述的仿真引擎***,其特征在于,所述多节点调度模块具体用于:
实时监控至少一个计算控制模块输出的计算结果;如果确定所述计算结果满足时钟推进条件,则向时钟控制模块发送时钟推进指令。
4.根据权利要求1所述仿真引擎***,其特征在于,所述仿真引擎中还包括:与所述时钟控制模块相连的统计与监控模块;
所述统计与监控模块,用于实时监控至少一个计算控制模块输出的计算结果,和/或时钟控制模块的当前虚拟时钟值;根据所述计算结果,和/或当前虚拟时钟值,输出仿真过程信息;
其中,仿真过程信息包括:仿真进度信息,和/或仿真故障信息。
5.根据权利要求2所述的仿真引擎***,其特征在于,所述仿真引擎***内置于自动驾驶仿真***中;
所述计算单元为自动驾驶车辆中感知组件中的计算单元,或者车机决策模块中的计算单元。
6.一种仿真处理方法,其特征在于,包括:
根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令,以指示时钟控制模块按照预设的时钟推进规则,依次向下推进虚拟时钟值;
根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,以并行调度各计算控制模块;
其中,所述计算指令用于指示计算控制模块进行仿真计算,并输出计算结果。
7.根据权利要求6所述的方法,其特征在于,根据检测到的时钟推进条件,向时钟控制模块发送时钟推进指令,包括:
实时监控至少一个计算控制模块输出的计算结果;
如果确定所述计算结果满足时钟推进条件,则向时钟控制模块发送时钟推进指令。
8.根据权利要求6所述的方法,其特征在于,根据检测到的仿真计算条件,向匹配的计算控制模块发送计算指令,包括:
如果接收到目标计算控制模块中的适配器发送的准备好响应,则确定检测到所述仿真计算条件;
向所述目标计算控制模块中的计算单元发送所述计算指令。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求6-8中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求6-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010431771.1A CN111625949B (zh) | 2020-05-20 | 2020-05-20 | 一种仿真引擎***、仿真处理方法、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010431771.1A CN111625949B (zh) | 2020-05-20 | 2020-05-20 | 一种仿真引擎***、仿真处理方法、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625949A CN111625949A (zh) | 2020-09-04 |
CN111625949B true CN111625949B (zh) | 2023-09-29 |
Family
ID=72259968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010431771.1A Active CN111625949B (zh) | 2020-05-20 | 2020-05-20 | 一种仿真引擎***、仿真处理方法、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625949B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256243B (zh) * | 2020-11-05 | 2024-04-02 | 苏州同元软控信息技术有限公司 | 行为定制方法、装置、设备和存储介质 |
WO2022120717A1 (zh) * | 2020-12-10 | 2022-06-16 | 华为技术有限公司 | 仿真任务调度方法、执行方法、仿真实现方法及装置 |
CN114036645B (zh) * | 2021-11-16 | 2022-04-22 | 中智行科技有限公司 | 一种基于ros的仿真方法、装置和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5081575A (en) * | 1987-11-06 | 1992-01-14 | Oryx Corporation | Highly parallel computer architecture employing crossbar switch with selectable pipeline delay |
JP2000011016A (ja) * | 1998-06-17 | 2000-01-14 | Hitachi Ltd | 並列論理シミュレーション方式 |
CN101937232A (zh) * | 2010-09-07 | 2011-01-05 | 北京航空航天大学 | 基于多路数据总线的嵌入式实时仿真与故障模拟*** |
CN106168993A (zh) * | 2016-06-30 | 2016-11-30 | 上海科梁信息工程股份有限公司 | 电网实时仿真分析平台 |
CN108074563A (zh) * | 2016-11-09 | 2018-05-25 | 珠海格力电器股份有限公司 | 时钟应用的控制方法及装置 |
CN109800054A (zh) * | 2018-12-24 | 2019-05-24 | 四川知周科技有限责任公司 | 一种分布式并行实时仿真调度实现方法 |
CN111123883A (zh) * | 2018-10-30 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | 双驱动无人车仿真方法、装置、设备及计算机可读介质 |
-
2020
- 2020-05-20 CN CN202010431771.1A patent/CN111625949B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5081575A (en) * | 1987-11-06 | 1992-01-14 | Oryx Corporation | Highly parallel computer architecture employing crossbar switch with selectable pipeline delay |
JP2000011016A (ja) * | 1998-06-17 | 2000-01-14 | Hitachi Ltd | 並列論理シミュレーション方式 |
CN101937232A (zh) * | 2010-09-07 | 2011-01-05 | 北京航空航天大学 | 基于多路数据总线的嵌入式实时仿真与故障模拟*** |
CN106168993A (zh) * | 2016-06-30 | 2016-11-30 | 上海科梁信息工程股份有限公司 | 电网实时仿真分析平台 |
CN108074563A (zh) * | 2016-11-09 | 2018-05-25 | 珠海格力电器股份有限公司 | 时钟应用的控制方法及装置 |
CN111123883A (zh) * | 2018-10-30 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | 双驱动无人车仿真方法、装置、设备及计算机可读介质 |
CN109800054A (zh) * | 2018-12-24 | 2019-05-24 | 四川知周科技有限责任公司 | 一种分布式并行实时仿真调度实现方法 |
Non-Patent Citations (1)
Title |
---|
李婷珽.并行分布实时仿真的时间管理算法研究.《***仿真学报》.2013,第25卷(第25期),正文第三节、附图10. * |
Also Published As
Publication number | Publication date |
---|---|
CN111625949A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625949B (zh) | 一种仿真引擎***、仿真处理方法、设备和介质 | |
CN111459816B (zh) | 故障注入测试方法、装置、***及存储介质 | |
JP7030177B2 (ja) | テスト方法及び装置 | |
CN112925651B (zh) | 应用资源部署方法、装置、电子设备和介质 | |
CN111930521A (zh) | 用于部署应用的方法、装置、电子设备及可读存储介质 | |
KR102339747B1 (ko) | 시뮬레이터, 시뮬레이션 장치, 및 시뮬레이션 방법 | |
CN112235417B (zh) | 调试指令的发送方法、装置 | |
CN112925652B (zh) | 应用资源部署方法、装置、电子设备和介质 | |
CN110706147B (zh) | 图像处理的环境确定方法、装置、电子设备和存储介质 | |
CN111835592B (zh) | 用于确定健壮性的方法、装置、电子设备及可读存储介质 | |
CN114089974B (zh) | 云端代码开发***、方法、装置、设备及存储介质 | |
CN111783952A (zh) | 配置方法、装置、***、电子设备以及存储介质 | |
CN112540914A (zh) | 单元测试的执行方法、执行装置、服务器和存储介质 | |
JP7132999B2 (ja) | アプリケーションの動作状態を検証する方法および装置 | |
CN109165261A (zh) | 数据同步方法、装置、服务器及计算机存储介质 | |
WO2022100033A1 (zh) | 调试小程序的方法、装置、电子设备和存储介质 | |
CN111859528A (zh) | 自动驾驶策略控制模块的仿真测试方法、设备及存储介质 | |
CN111740859A (zh) | 一种测试环境的部署方法、装置、电子设备及存储介质 | |
CN111399811A (zh) | 可视化页面开发的方法、装置、设备以及存储介质 | |
CN111125451B (zh) | 数据生产加工方法、装置、电子设备及存储介质 | |
CN111475572B (zh) | 区块生成方法、装置、设备和介质 | |
CN111767170A (zh) | 设备的操作复原方法、装置、设备以及存储介质 | |
CN112380065B (zh) | 一种数据修复方法、装置、电子设备及存储介质 | |
CN112559277A (zh) | 崩溃信息的处理方法、***、车载设备、服务器、电子设备及存储介质 | |
CN112148563B (zh) | 信息生成方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |