随着汽车行业智能化和网联化的加速发展,在 5G、人工智能、云计算、大数据等新技术的加持下,汽车已经从交通工具变为新一代的智能终端。而自动驾驶作为汽车新四化(电动化、网联化、智能化、共享化)的核心,更是被视为汽车科技“皇冠上的明珠”。
根据相关预测,到 2030 年国内智能汽车将达到 3800 万辆,渗透率达到 95%,巨大的市场想象空间使自动驾驶系统成为汽车厂商的必争之地。而要实现这些目标,厂商还需要采取措施解决自动驾驶在技术、基础设施、数据、法律法规等方面的制约。
作为一种基于云端的开发与部署框架,云原生技术正被越来越多企业关注,用于实现应用的敏捷开发和快速交付,以高效响应用户需求、优化用户体验以及加速业务创新。本文以自动驾驶系统的开发和部署的关键环节之一——数据回灌为例,介绍火山引擎云原生服务如何帮助车企提升效率、加速商业化进程。
什么是数据回灌
在汽车软件研发领域,目前车企运用最广的开发模式是 RAD (Rap Application Development 快速应用开发) 模型,由于其模型构图形似字母 V,又叫 V 模型。这种模型通过开发和测试同时进行的方式来缩短开发周期,每一步都会对应着严格的测试步骤,以保证最终系统的可靠性、稳定性和安全性。
当下大部分自动驾驶系统都使用这种开发模式,整个开发流程通常涉及以下测试环节:
●模型在环(MiL)
●软件在环(SiL)
●硬件在环(HiL)
●车辆在环(ViL)
回灌测试是 HIL 在环测试一种方法。
从机器学习平台训练出的模型在导入车载域控制器系统时,需要进行充分的验证和测试,确保模型在异构硬件环境上的推理一致性。但如果仅仅依靠道路车测试,不仅存在测试时间周期长、成本高的问题,覆盖的场景也非常有限。
回灌测试就是用真实交通数据做仿真的一种方式。工程师可以通过把被测试域控制器和仿真系统连接,将从实际车辆采集到的数据再次注入到域控制器中,重现真实道路运行环境中的场景,对域控制器的性能和算法进行评估和验证。通过此方法,研发团队可以进行大规模的测试、验证和优化,加速自动驾驶系统的开发和部署。
传统数据回灌的挑战
在真实生产场景下,用于回灌测试的回灌系统的结构比较特殊。为了让训练好的模型经过编译后,能在异构车载芯片上保持准确、稳定的性能,研发团队在搭建测试环境时,往往需要单独购买服务器和域控制器进行硬件和软件集成,成本高、开发难度大、运维成本高。主要体现以下几个方面:
回灌硬件环境部署复杂:被测域控制器和仿真服务器之间一般采用网线连接,对有几百个域控制器的回灌测试环境,意味着需要同等数量的物理网线和对应的交换机端口,布线复杂,管理难度高。
域控制器资源利用率低:回灌测试任务执行时间变化很大,一个回灌任务的结束意味着使用的域控制器可以提供给其他回灌任务使用,以往的回灌测试环境缺少对动态域控制器资源的管理和调度,造成整体硬件的利用率低。
回灌任务自动化程度低:回灌任务缺少统一、标准化的管理和执行方式,以往通常采用手动部署执行,人工干预的方式。回灌任务的执行效率低而且错误率高。
火山引擎回灌集群解决方案
针对上述开发、部署和使用过程中问题,火山引擎云原生团队把容器引入到回灌系统的设计中,通过云原生的方式提升资源利用率、简化运维复杂度——
1. 被测域控制器采用 PCI-E 板卡方式集成到仿真服务器中。
如下图所示,回灌仿真服务器和域控制器通过虚拟网络的方式进行通讯,去掉了传统的物理网线连接方式,降低了环境网络布线的复杂度,同时为仿真服务和域控制器之间大量数据传输提供稳定的高带宽。
2. 利用 Kubernetes 提供的 device plugin framework,将平台全部域控制器抽象成池化可调度资源被容器平台使用。
通过充分利用 Kubernetes 原生的调度能力,研发团队可以为批量下发的回灌仿真任务快速匹配可用域控制器资源并执行回灌仿真任务。在仿真任务完成后,资源会被自动回收到可用资源池供后续回灌仿真任务使用,极大提高了回灌仿真任务的执行效率和域控制器的使用率。
3. 对回灌仿真程序进行容器化改造,制作成为标准的容器镜像存放在平台的镜像仓库。
自动驾驶工具链平台通过标准 Kubernetes 接口对接回灌仿真集群,将回灌仿真任务作为流程中的一项标准步骤加入到预定义的自动驾驶开发工作流中。平台按照 Kubernetes 的标准工作负载将回灌仿真任务下发到回灌仿真集群,并在任务执行过程中利用 Kubernetes 的 CNI/CSI 组件访问外部对象存储和高速并行文件系统,读取回灌仿真所需要的数据,在域控制器完成计算任务后返回仿真结果由仿真程序存储到外部存储。
通过上述方案,车企可以获得以下收益:
●开源兼容:兼容开源 Kubernetes 接口,有助于将回灌系统对接已有自动驾驶开发平台;内置丰富的 CSI/CNI 组件,提供多类型存储和网络系统的对接方式,轻松实现回灌业务对数据/外部网络的访问;
●生态亲和:支持适配丰富类型的自动驾驶硬件设备资源,实现资源池化统一管理;与车载芯片厂商有广泛合作,可提供成熟的软硬件方案;
●简单易用:提供成熟、便捷的可视化管理界面,可大幅简化回灌平台基础资源层运维工作;
●灵活观测:支持设备健康状态检测;支持对接外部监控 Prometheus 系统,配合用户自定义 Grafana 面板,实现回灌业务的状态监控、告警。
汽车行业落地案例
某汽车主机厂企业计划使用国内头部汽车智能芯片公司的 AI 芯片作为其一款主打车型的自动驾驶域控制器的算法处理器。为加速该车型的开发,同时保障系统的稳定性、安全性,该企业采用了火山引擎的云原生回灌解决方案。
该客户的回灌集群使用了 8 台回灌服务器作为工作节点,每个回灌服务器通过 PCI-E 挂载了 32 个集成了 AI 芯片的域控制器。在火山引擎云原生团队的支持下,客户通过 veStack 敏捷版实现了对 256 个域控制器的统一容器化管理和调度。同时结合业务使用方式,veStack 敏捷版也针对性提供了域控制器的健康检查方法和配合系统升级需要用到的域控制器手动离线、上线方法,帮助客户构建起完善的监控和故障感知能力。
在数据合规方面,为符合国家针对自动驾驶的相关规定,该客户使用的自动驾驶工具链平台均部署在火山引擎智驾专区,回灌集群通过标准 Kubernetes 接口与自动驾驶工具链平台进行对接。
结合客户自动驾驶工具链平台的队列能力,上述回灌系统能支持 7×24 小时并行 256 的回灌任务,极大提高了回灌测试效率和资源的使用率。
结语
随着汽车行业智能化和网联化的加速发展,软件定义汽车已经成为行业的共识,企业需要构建新的软件开发能力来应对软件定义时代的挑战,并通过安全的方式将硬件、软件和云服务整合到下一代汽车平台和组件中。
火山引擎云原生团队目前已经服务了多家头部车企和造车新势力,帮助客户充分利用和发挥云平台的弹性和分布式优势。未来,团队也将持续打磨产品和解决方案,为更多企业注入强劲创新动力。(作者:梁月)