大数跨境
0
0

技术详解 | 面向量产的异构平台软件工程之路

技术详解 | 面向量产的异构平台软件工程之路 鉴智机器人 PhiGent Robotics
2023-07-28
1
导读:鉴智机器人通过算法、软件、硬件协同优化,助力自动驾驶量产落地。



PhiGent Sharing:
鉴智机器人基于地平线征程®5+TC397,打造硬件简洁、更具性价比的高速NOA系统方案PhiGo Pro在与《汽车之心》联合推出的「基于地平线征程5的开发实践」系列分享中,鉴智机器人副总裁&软件技术负责人李博聚焦于软件系统,分享《面向量产的异构平台软件工程之路》。
01
量产引擎:鉴智机器人异构计算开发范式
自动驾驶存在“算法很丰满,落地很骨感”的工程化难题:
  • 不同硬件平台差异严重,算法迁移难;
  • 考虑量产成本,有限的硬件算力制约算法发挥。

鉴智机器人提出“异构平台开发范式”,通过软硬一体系统解决自动驾驶算法量产落地工程化难题,整体提升研发效率,缩短落地时间,降低维护成本。鉴智机器人优势体现如下:
  • 统一的异构平台开发范式,适配多个主流算力平台;
  • 算法、软件、硬件协同优化,充分挖掘硬件性能。

异构计算开发范式:多平台适配的算法引擎和推理引擎

鉴智机器人异构平台开发范式采用分层架构设计,包括算法引擎、推理引擎和平台抽象。其中算法引擎面向每个具体的深度学习算法,实现算法流程逻辑,本质上与平台无关;平台差异性则通过推理引擎封装平台抽象实现,确保在各个平台都能达到优异的性能。
具体而言,我们通过将算法引擎、推理引擎和平台抽象分层解耦的设计方式,降低相互依赖;对于不同的芯片平台,采用统一的算法和软件架构;新平台的移植适配可在1-3个月内快速完成部署。

当然,因为不同硬件平台架构存在差异,进行软件架构设计时必须充分考虑以下难题:

  • 应用层对数据流转策略的梳理;
  • 功能调度层面如何满足高效数据传递;
  • 硬件抽象层怎样将不同的平台访存实现封装为统一抽象接口。

算法流程调度框架:实现系统资源的充分利用

调度层面我们总结了一套通用算法流程调度框架,以实现系统资源的充分利用,减少延时。我们的调度框架整体基于有向图,全局为异步调度,除支持条件/周期调度以及多种QoS策略外,还支持环,这是区别于其他调度方法的一大特点。

自适应调度优化:实现全局时间片调度优化

自动驾驶面向的是异构计算系统,包含多种不同处理单元,一般会对应不同硬件单元。以常见的“前处理-模型推理-后处理”为例,基本应用流程为按部就班地依次进行“前处理-模型推理-后处理”,从整个时间轴看,不同硬件都会有相应的空闲周期;我们为不同硬件单元设计各自任务队列,通过自适应调度优化将不同任务并行推进,实现硬件资源的充分利用,在保证低延时的同时,实现全局时间片调度优化。

征程5部署实例:BEVDet运行效率数倍提升

算法层面,我们基于自研BEVDet范式在征程5芯片实现高时效性的BEV感知,模型运行效率可达到50+FPS(详见《面向征程5的自动驾驶感知算法研发和实践》);资源占用层面也进行了一系列针对性优化。具体而言:
  • 针对BPU特性,进行算力友好的等效算子替换;
  • 引入相机约束,重构神经网络结构;
  • 前后处理模型协同优化;

  • 针对地平线硬件特性的系统级数据流优化;
  • 模块调度优化,充分利用CPU时间片,减少延时。

02
性能挖掘!单征程5+TC397实现更具性价比的高速NOA系统方案

通过异构开发范式,我们对自动驾驶系统性能进行极致挖掘,推出基于单颗征程5+TC397的高速NOA系统方案PhiGo Pro,突破性实现在简洁架构基础上的系统效率提升,以及良好成本控制下的更高性能。

面向征程5,PhiGo Pro对视觉感知、环境模型、多传感器融合、融合定位+Map、预测、规划、系统功能等模块进行性能优化,整体CPU占用从156%降低至75%,整体延时从1100ms降低至280ms。

感知优化:延时降低超60%,CPU占用降低超50%

我们充分利用了各种性能分析工具对感知模块进行详细profiling。基于分析结果,做了如下优化:
在征程5进行感知算法部署时先进行了模型调整,具体包括:
  • 针对模型中段需要调度到CPU的op,进行等效替换;
  • 针对模型前/后段需要调度到CPU的op,从BPU中拿出在CPU上进行整体优化操作;
  • 与地平线团队进行联合编译器优化。

针对需要在CPU上进行操作的任务做模型+后处理联合优化,包括:
  • 面向定点结果的直接计算;
  • 结合后处理逻辑,设计节省计算的算法。
最后是对指令集进行优化。至此,PhiGo Pro感知性能的延时和CPU占用实现了同步优化,延时从180ms降低至60ms,CPU占用从54%降至24%。

环境模型/传感器融合/定位地图优化

环境模型、传感器融合和定位地图都是在CPU上实现优化,整体优化思路一致。
这里采用“算法优化先行”的基本原则,优先考虑整个计算过程能否在算法层面进行优化。因为调节参数和算法流程,可以显著降低计算量,收益明显。
之后采用一些通用的Arm CPU优化思路:
  • 减少用户态/内核态交互
  • 访存优化
  • 空间换时间

  • 指令集优化
  • 编译器优化
此外,我们不只要降低运行延时,也要降低CPU占用,因此要特别注意适量使用多线程,过多会引入大量线程切换开销;同时要从系统层面结合调度策略进行优化。
在该部分优化中,环境模型的延时从150ms降低至40ms,CPU占用从20%降低至8%;多传感器融合的延时从40ms降低至10ms,CPU占用从16%降低至4%;定位地图的延时从80ms降低至40ms,CPU占用从11%降低至9%。

规控优化:预测性能优化5倍+,规划性能优化5倍+

面向征程5的规控优化方面,我们通过“开源节流”的整体优化思路,实现了预测性能优化5倍+,规划性能优化5倍+,预测延时从160ms降低至30ms,规划延时从330ms降低至60ms(详见《如何打造极致性价比的NOA规控系统方案》)。

尤其要提到的是,我们充分利用DSP进行了优化,有效降低了CPU使用:

系统集成优化:延时降低75%,CPU占用降低近50%

基于全栈自研优势,我们在整个系统集成方面也进行了优化。
数据方面,地平线有独到的“在线模式”和“离线模式”,在线模式数据传递效率最高但有限制,离线模式数据直接到DDR无限制,但系统带宽负载大,因而我们的方案是:
  • 大图尽量走在线模式;
  • 需要crop&resize的数据从PYM走;
  • 6V/7V需要详细计算各硬件单元处理能力。

通信和调度方面,我们基于自研中间件优化:
  • 硬件节点内完全支持共享内存,实现zero-copy;
  • 跨节点/跨域支持主流通信协议,如SOMEIP、zmq等;
  • 同时支持事件触发式调度和时间确定性调度;

  • 高算力模块多采用事件触发调度,尽可能充分利用硬件资源;
  • 输入输出模块采用时间确定调度,确保系统响应时间和控制周期。

最终,系统功能部分延时从200ms降低至50ms,CPU占用从25%降低至14%。

了解软件系统细节,请关注《面向量产的异构平台软件工程之路》直播实录:

03
道阻且长,鉴智机器人软硬协同优化助力自动驾驶量产落地
从当前电子电气架构的演进看,异构计算会长期存在,算法、软件、硬件协同优化是必由之路。鉴智机器人自成立之初即坚持走软硬协同优化路线,建立起覆盖算法、规控、系统、软件、硬件的全栈技术团队,通过软、硬件协同优化的技术路线,实现智驾系统的极致性能提升与高效部署落地。
如今,鉴智机器人已基于征程5芯片推出了满足车企及合作伙伴不同维度需求的多个行业标杆产品,包括地平线生态内首个视觉标准感知产品PhiVision,首个基于征程5+TC397的“无外挂”高速NOA系统方案PhiGo Pro。
未来,鉴智机器人将继续坚持“Easy Mobility For Everyone”,持续为市场提供兼顾性价比与高阶智驾功能平衡的智驾产品,加速自动驾驶量产落地。



【声明】内容源于网络
0
0
鉴智机器人 PhiGent Robotics
鉴智机器人 PhiGent Robotics——以视觉3D理解为核心的下一代自动驾驶系统提供商。
内容 42
粉丝 0
鉴智机器人 PhiGent Robotics 鉴智机器人 PhiGent Robotics——以视觉3D理解为核心的下一代自动驾驶系统提供商。
总阅读11
粉丝0
内容42