据外媒报道,自动驾驶汽车颇具挑战性,在过去数年时间内,汽车研发人员从ADAS设计中获益匪浅,可以归类为以下三大方面:
1.软件依赖性(Software reliance)
初代ADAS方案的研发人员竭力克服设计障碍。为此,他(她)们创建了复杂的软件。然而,事实证明,对于复杂的汽车系统而言,预编程算法难以发挥效用。
研究人员不得不为了传感器融合、视觉处理及安全性创建新算法,这必然要集成一个大代码基(code base),势必会增加成本及安全风险,因为工程师必须持续地维护并更新软件。
这意味着需要从在商用硬件上构建的软件中心型系统(software-centric systems)向专注于计算功能的定制化片上系统(系统级芯片,SoCs)及硬件加速器转型,使得ADAS研发人员将复杂的算法切割为较小的计算,使得ADAS设计对现实驾驶情境的响应性得到提升。
ADAS的技术演进为自动驾驶汽车工程设计团队提供了一个模板,指导其采用片上系统执行自动驾驶功能,该类功能的复杂程度超乎想象,还需要实现近实时(near-real-time)性能。
2.近实时设计
当谈到确保实时处理、传感器融合及其他关键任务(mission-critical tasks)时,自动驾驶的雅畈人员可从ADAS的研发过程中汲取经验。
在初期,ADAS研发人员依靠内置静态随机存取存储器(内存,SRAMs)实现片上计算子系统的信息交换,成对的内存可被用作输出邮箱,同时还将向其送入计算任务的输入值。软件中的通信管理成为技术挑战,当信息处理元件增多后,会导致信息延迟。
最后,ADAS芯片采用了异构缓存一致性(heterogeneous cache coherency)等技术,该项片上通信技术可高效地实现与片上系统内CPU、GPU及DPU等计算元件的连通,旨在增强处理带宽并缩短延迟时间。
最为关键的是,这类硬件加速器在自动驾驶车用片上系统中占据了主导地位,异构缓存一致性等片上通信技术也发挥着重要作用,允许片上系统执行近实时嵌入式处理,旨在应该对复杂的机器学习算法。
3.整合的挑战
自动驾驶片上系统的复杂程度令人胆寒,鉴于将超级计算机的强大功能、功能性安全要求及近实时内嵌式性能收敛(near-real-time embedded performance converge)集成到一块定制硅晶片后,这一感觉就变得尤为明显。
许多自动驾驶设计将硬件加速器用于研发工作,该类设备被用作为处理节点(processing nodes),以便特定的算法任务,如:高清雷达成像的计算机视觉。而许多自动驾驶车辆的片上系统正利用深度神经元网络执行机器学习功能,硬件加速器在该网络内发挥神经元的功能。
在这类片上系统基础架构内,可针对特定的自动驾驶算法精准调节硬件加速器或异构处理元件,片上互联可采用一致的方式连接所有的硬件加速器,确保能掌控不断提升的系统复杂性。