产业资讯方案大厅机构大厅

大规模分布式仿真平台 · Apollo 仿真平台

自动化技术机器学习分布式计算技术百度

产品描述

真实道路情况下,车载算法是在车载电脑上运行,实时性要求很高,所以往往需要保留较多的系统资源冗余(以应对随时到来的系统处理颠簸的情况),万一出现颠簸状态,实时系统会采用丢帧的方式以保证运行时消息处理的低延迟。在仿真系统里,这是在离线运行。如果不做任何处理,我们需要用更强力的服务器,保留更多的系统资源,或者降低运行速率,以保证不丢帧。很显然,这种做法一方面带来大量的运行资源的闲置,另一方面降低了我们的运行速度。所以 Apollo 仿真平台引入了动态变速仿真技术。通过这两项改造,可以达到:不等待,不丢帧,这样就可以充分的利用硬件资源,以最快速度运行。据实际测试,采用了动态变速仿真技术,在不影响仿真结果的前提下,单机仿真效率可以提升数倍以上。 度量算法的本质可以认为是:f(场景描述,车辆轨迹),即某种场景和轨迹的二元函数。当我们拥有大量的正例以及负例,我们通过机器学习方法,基于大量数据,是可以得到一种具有足够泛化能力的,并且能够达到图灵测试判定能力的度量能力。事实上,百度长期的无人车路测,使仿真拥有了大量的实际的运营 / 路跑数据,我们针对性的大量采集、标注了细粒度的体感异常的 badcase 样本,进而可以达到相当精准的异常判断能力。

Apollo 仿真平台通过 2 个不同层次的实现方式来进行大幅度优化。从宏观角度出发,通过大规模分布式化来进行;从微观角度出发,通过动态变速仿真来进行。1. 分布式仿真架构按层次和功能,由于分布式仿真平台的计算模型很像传统的 MapReduce。所以整个分布式调度服从传统的 MR 架构。下层是 Hardware Resource Scheduler。由于仿真节点的运行会用到 GPU+CPU/only CPU/CPU+FPGA 多种硬件组合,又由于仿真的运行是一种弹性的资源使用。所以单独的剥离出来一层 Hardware Resource Scheduler。这层 Scheduler 是支持更换的。上层是 Batch-job Scheduler。因为分布式仿真运行模式为 Batch-job,所以单独剥离了一层 Batch-job Scheduler。它负责 job 的整个生命周期的运行状态的推进,比如各种部署、启动、运行状态检查、重试、优先级、弹性伸缩……等逻辑。中间这层是仿真核心。它运行在 Docker container 中。仿真核心中运行的是客户的算法 + 仿真逻辑:包括场景重建 + 动力学模型 + 精细化度量。由于运行模型复杂,所以在 Container 内抽象了上下两层:上层,我们内部叫做 Task Engine,专门负责复杂的仿真执行流程调度。下层是 Sim-Core,用来放置用户的自己的算法。在外层有两个 Storage Component:Scene Store,Result Store。围绕着计算,统一管理了数据。Simulation-platform 主要提供了提交接口、数据分析、Dashboard 接口,串通起完整的仿真流程,供用户使用。2. 动态变速仿真技术,本质上是对无人车复杂数据流进行流控的过程。分解来讲:1)对于处理时间较短的帧,压缩了数据处理的间隔;2)对于处理时间较长的帧,等待处理完成再继续处理后续的帧。而整个调度系统是一种根据当前处理帧的耗时做弹性变化。

所用技术

研发机构

百度是全球最大的中文搜索引擎,是一家互联网综合信息服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。